【发布时间】:2017-07-04 23:19:34
【问题描述】:
我正在尝试了解如何使用 sklearn python 模块中的 kfolds 交叉验证。
我了解基本流程:
- 实例化一个模型,例如
model = LogisticRegression() - 拟合模型,例如
model.fit(xtrain, ytrain) - 预测例如
model.predict(ytest) - 使用例如cross val score 以测试拟合模型的准确性。
我感到困惑的是使用带有交叉 val 分数的 sklearn kfolds。据我了解,cross_val_score 函数将拟合模型并预测 kfolds,为您提供每个折叠的准确度分数。
例如使用这样的代码:
kf = KFold(n=data.shape[0], n_folds=5, shuffle=True, random_state=8)
lr = linear_model.LogisticRegression()
accuracies = cross_val_score(lr, X_train,y_train, scoring='accuracy', cv = kf)
因此,如果我有一个包含训练和测试数据的数据集,并且我使用带有 kfolds 的 cross_val_score 函数来确定每个折叠的训练数据上算法的准确性,那么 model 现在是否适合并准备好对测试数据的预测?
所以在上面的例子中使用lr.predict
【问题讨论】:
-
我不这么认为,但你应该看看
GridSearchCV。我几乎总是使用它而不是cross_val_score,因为它基本上就像一个可以拟合和预测的模型,并且对于调整模型的参数很有用。如果不想调任何参数,可以传{}。 -
这个问题,即最近的问题,应该关闭,而不是首先提出的实际关闭的问题。我真的很讨厌人们在没有任何良好判断力的情况下随意关闭问题。
标签: python machine-learning scikit-learn cross-validation