如何在python中计算随机森林的训练和测试数据之间的准确性

Posted

技术标签:

【中文标题】如何在python中计算随机森林的训练和测试数据之间的准确性【英文标题】:How to calculate the accuracy between train and test data of random forest in python 【发布时间】:2021-01-01 12:37:27 【问题描述】:

我已经建立了一个随机森林模型,并用它来预测我的训练和测试数据,这些数据来自两个不同的数据框。

我想计算模型的准确率,但它不起作用,因为我的训练数据有 76 行,而我的测试数据只有 52 行。

如何在 python 中实现?

到目前为止,我所做的是尝试使用以下方法打印准确性:

print("Accuracy:", metrics.accuracy_score(y_pred_test, y_pred_train))

它给了我以下错误:

发现样本数量不一致的输入变量:[52, 76]

【问题讨论】:

【参考方案1】:

metrics.accuracy_score() 函数状态的 sklearn 文档

准确度分类得分。 在多标签分类中,此函数计算子集准确度:为样本预测的标签集必须与 y_true 中对应的标签集完全匹配。

所以这个函数应该严格在y_true == y_pred的形状时使用。

改为,您可以使用model.score() 方法。您将不得不使用该功能两次,一次用于测试,一次用于训练组。例如:

from sklearn.ensemble import RandomForestClassifier
rf_classifier = RandomForestClassifier(n_estimators=200)
rf.fit(X_train, y_train)
print(f'Final Training Accuracy: rf.score(X_train,y_train)*100%')
print(f'Model Accuracy: rf.score(X_test,y_test)*100%')

【讨论】:

以上是关于如何在python中计算随机森林的训练和测试数据之间的准确性的主要内容,如果未能解决你的问题,请参考以下文章

如何将经过训练和测试的随机森林模型应用于 tidymodels 中的新数据集?

如何在 python 中的大型数据集上训练随机森林?

训练和测试集中不同数量的特征 - 随机森林 sklearn Python

如何将使用 PCA 和随机森林训练的模型应用于测试数据?

如何在 Sklearn 的随机森林分类器中将训练模型用于另一个数据集?

R语言决策树bagging随机森林模型在训练集以及测试集的预测结果(accurayF1偏差Deviance)对比分析计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况