python - 使用 sklearn cross_val_score 和 kfolds 来拟合和帮助预测模型

标签 python machine-learning scikit-learn cross-validation

我试图了解如何使用 sklearn python 模块中的 kfolds 交叉验证。

我了解基本流程:

  • 实例化一个模型,例如model = LogisticRegression()
  • 拟合模型,例如model.fit(xtrain, ytrain)
  • 预测,例如模型.预测(ytest)
  • 使用例如cross val 分数来测试拟合模型的准确性。

我感到困惑的是使用 sklearn kfolds 和 cross val 分数。据我了解,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)

因此,如果我有一个包含训练和测试数据的数据集,并且我将 cross_val_score 函数与 kfolds 一起使用,以确定算法在每次折叠的训练数据上的准确性,是 模型 现在适合并准备好预测测试数据了吗? 所以在上面的例子中使用 lr.predict

最佳答案

否,该模型未安装。看着 source code for cross_val_score :

scores=parallel(delayed(_fit_and_score)(clone(estimator),X,y,scorer,
                                        train,test,verbose,None,fit_params)

如您所见,cross_val_score 在将折叠训练数据拟合到估计器之前克隆了估计器。 cross_val_score 将为您输出一组分数,您可以分析这些分数以了解估算器如何针对不同的数据折叠执行操作,以检查它是否过度拟合数据。你可以know more about it here

一旦您对 cross_val_score 的结果感到满意,您需要将整个训练数据拟合到估计器,然后才能使用它来预测测试数据。

关于python - 使用 sklearn cross_val_score 和 kfolds 来拟合和帮助预测模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263915/

相关文章:

python - 匹配字典列表最有效的方法是什么?

python - 从单个列中为“日期”、“月”、“年”、“小时”、“分钟”、“秒”创建单独的列

python - Neurolab 的 newff 示例中出现错误

python - python中的序列匹配算法

python - 基于密度的聚类如何获取属于其簇的文档?

python - 是否有等同于 PyVirtualDisplay 的 Windows

python - 多维数组中列的平方和的平方根

python - 具有 None 类型形状张量的 TensorFlow 2.0 层

python - One-hot编码后的预测

python - scikit-learn:FeatureUnion 包含手工制作的功能