我正在尝试理解来自sklearn Python模块的kfolds交叉验证。
我理解基本流程:
- 实例化一个模型,例如
model = LogisticRegression()
- 拟合模型,例如
model.fit(xtrain, ytrain)
- 预测,例如
model.predict(ytest)
- 使用cross_val_score等函数测试拟合模型的准确性。
我感到困惑的是如何使用sklearn kfolds和cross_val_score。据我所知,cross_val_score函数将在kfolds上拟合模型并进行预测,从而为每个fold给出准确度分数。
例如,使用以下代码:
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
,因为它基本上就像一个可以拟合和预测的模型,对于调整模型参数非常有用。如果你不想调整任何参数,你可以传递{}
。 - justincai