如何在python中使用测试集大小进行10倍交叉验证

时间:2019-05-27 12:21:56

标签: python-3.x scikit-learn linear-regression cross-validation

如何使用SpendValue函数建立机器学习模型来为客户预测预期的LinearRegression()

还使用10倍交叉验证(测试集大小为20%)测量模型的性能。

enter image description here

X = sales.drop(['SpendValue'], axis=1).values
y = sales.SpendValue.values
print("The training dataset has {} examples and {} features.".format(X.shape[0], X.shape[1]))
lr = LinearRegression()
kfolds = KFold(n_splits=10, random_state=42, shuffle=False)
for train, test in kfolds.split(X):
    print("Train Index: ", train, "\n")
    print("Test Index: ", test)

我不确定在哪里提到测试规模以及如何进一步为客户预测预期的Spendvalue以及显示各种性能指标

1 个答案:

答案 0 :(得分:0)

我想开始解释交叉验证以及训练和测试分裂,here对此进行了解释。

enter image description here

首先,您必须进行火车测试拆分(如下所示)

>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.20, random_state=42)

然后对训练数据集进行交叉验证,并且您有一个测试数据集,其大小为原始数据集的20%。

kfolds = KFold(n_splits=10, random_state=42, shuffle=False)
for train, test in kfolds.split(X_train):
    print("Train Index: ", train, "\n")
    print("Test Index: ", test)