hse*_*bie 9 python machine-learning scikit-learn cross-validation
我试图理解使用sklearn python模块中的kfolds交叉验证.
我理解基本流程:
model = LogisticRegression()
model.fit(xtrain, ytrain)
model.predict(ytest)
我很困惑的地方是使用具有交叉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)
Run Code Online (Sandbox Code Playgroud)
因此,如果我有一个包含训练和测试数据的数据集,并且我使用cross_val_score
kfolds函数来确定算法对每个折叠的训练数据的准确性,那么model
现在是否适合并准备好对测试数据进行预测?所以在上面的情况下使用lr.predict
谢谢你的帮助.
Viv*_*mar 14
没有安装模型.查看源代码cross_val_score
:
Run Code Online (Sandbox Code Playgroud)scores=parallel(delayed(_fit_and_score)(clone(estimator),X,y,scorer, train,test,verbose,None,fit_params)
如您所见,cross_val_score
在将折叠训练数据拟合到估计器之前克隆估计器.cross_val_score
将为您输出一组分数,您可以分析这些分数以了解估算器如何针对数据的不同折叠执行以检查其是否过度拟合数据.你可以在这里了解更多
在对结果感到满意之前,您需要将整个训练数据拟合到估计器中cross_val_score
,然后才能使用它来预测测试数据.
归档时间: |
|
查看次数: |
5374 次 |
最近记录: |