检查sklearn模型中的过拟合和欠拟合

时间:2020-02-09 08:57:39

标签: python scikit-learn random-forest

我正在使用sklearn RandomForestClassifier作为分类。我不知道如何评估sklearn模型的过拟合和欠拟合。

model = RandomForestClassifier(n_estimators=1000, random_state=1, criterion='entropy', bootstrap=True, oob_score=True, verbose=1)
model.fit(X_train, y_train)

当前,我正在使用其他指标来评估我的模型,例如-cross_val_score,confusion_matrix,classification_report,PermutationImportance。有人可以帮我这个忙。

1 个答案:

答案 0 :(得分:2)

有多种方法可以测试过度拟合和欠拟合。如果您想专门查看训练成绩和测试成绩并进行比较,可以使用sklearns cross_validate进行。如果您阅读了该文档,它将返回给您一本包含火车分数的字典(如果以train_score = True的形式提供),并以您提供的指标来测试分数。

示例代码

model = RandomForestClassifier(n_estimators=1000, random_state=1, criterion='entropy', bootstrap=True, oob_score=True, verbose=1)
cv_dict = cross_validate(model, X, y, return_train_score=True)

您还可以简单地使用火车测试拆分创建一个支持测试集,并使用测试数据集比较您的训练成绩和测试成绩。