random-forest - 如何在 python/sklearn 中交叉验证随机森林的预测?

标签 random-forest prediction cross-validation

如果这是计算我的分类器交叉验证精度的正确方法,有人可以告诉我吗?我将我的数据集分为用于训练数据的 xtrain 和 ytrain 以及用于测试集的 xtest 和 ytest。

构建模型:

RFC = RandomForestClassifier(n_estimators=100)

将其拟合到训练集:

RFC.fit(xtrain, ytrain)

这是我不确定的部分:

scores = cross_val_score(RFC, xtest, ytest, cv = 10, scoring='precision')

使用上面的代码,“分数”会给我在训练数据上训练的模型的精度吗?我非常担心我曾经使用错误的代码并且我正在将模型拟合到 xtest,因为我的测试数据的召回率和精确率得分高于我的训练数据的得分,我无法弄清楚为什么!

最佳答案

在计算交叉验证分数时,您实际上不必自己对模型进行拟合。

进行交叉验证得分的正确(更简单)方法是像您一样创建模型

RFC = RandomForestClassifier(n_estimators=100)

然后计算分数

scores = cross_val_score(RFC, xtrain, ytrain, cv = 10, scoring='precision')

通常在机器学习/统计中,您会在训练集和测试集上拆分数据(就像您所做的那样)。在此之后,训练数据用于验证模型(训练参数、交叉验证等),然后在测试集上测试最终模型。因此,您实际上不会在交叉验证中使用您的测试集,只有在您想要获得模型的最终准确性时才会在最后阶段使用。

将数据分为训练集和测试集并对训练数据进行交叉验证的好处是,当您拥有仅在最后阶段。

您可以在此处了解更多信息:cross_val_scoreCross-Validation

关于random-forest - 如何在 python/sklearn 中交叉验证随机森林的预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31221060/

相关文章:

apache-spark - 如何处理 Spark 最新随机森林中的分类特征?

python - kfold CV 的 sklearn 内存错误

python - R 与 scikit-learn 中线性回归 R2 的交叉验证

python - tfidfvectorizer 在保存的分类器中预测

machine-learning - MLP Keras 预测的循环程序

python - auto arima python 中的预测区间

scikit-learn - scikit-learn 的 cross_val_score 中的 'score' 是什么意思?是否意味着准确?

scala - 在 Spark 中将列标记为分类

python - 如何在 scikit-learn 随机森林的 graphviz-graph 中找到一个类?

c++ - 带有 OpenCV 的普通随机森林不起作用,并且与 sklearn 不同