clf.score(X_train,Y_train) 在决策树中评估啥?

Posted

技术标签:

【中文标题】clf.score(X_train,Y_train) 在决策树中评估啥?【英文标题】:What does clf.score(X_train,Y_train) evaluate in decision tree?clf.score(X_train,Y_train) 在决策树中评估什么? 【发布时间】:2019-09-22 01:57:42 【问题描述】:

我是机器学习的初学者,现在正在为我的期末考试做一个项目。我正在尝试构建决策树,并在网上找到以下代码。

我的问题是:

clf.score(X_train,Y_train) 在决策树中评估什么?输出在以下屏幕截图中,我想知道那个值是什么?

clf = DecisionTreeClassifier(max_depth=3).fit(X_train,Y_train) print("Training:"+str(clf.score(X_train,Y_train))) print("Test:"+str(clf.score(X_test,Y_test))) pred = clf.predict(X_train)

输出:

在下面的代码中,我认为它为模型计算了几个分数。我设置的 max_depth 越高,分数越高。这对我来说很容易理解。但是,我想知道这些数字与上一个屏幕截图中训练和测试的值有什么区别?

我的目标是预测房价是否超过 20k。在选择最适合且简单的模型时,我应该考虑哪个分数?

【问题讨论】:

默认情况下 clf.score 使用平均准确度(您的准确度分数)。该指标将取决于数据集的平衡以及您对 FP 和 FN 的接受程度。答案不止一个。 感谢@Alexis 的回复!这就说得通了。我有另一个问题。当我将max_depth设置为5时,Training:0.89 Test:0.90,然后我将max_depth设置为6,就像0.899,0.91; 7 等于 0.88,0.89...我发现分数在 5 之后会在 0.9 左右移动。我可以选择 max_depth 作为预测最终价格的最佳拟合模型吗? 是的,您应该选择在测试集上得分最高的那个。这是一个超参数优化。但一定要交叉验证以避免过度拟合。我假设它是波士顿之家数据集?如果是这样,看看 kaggle 解决方案,其中一些很棒 非常感谢@Alexis。是的,这是 Kaggle 数据,但不是波士顿数据——类似的东西。我会找到一些其他好的内核来获得一些灵感!谢谢!你有一个很棒的! :) 【参考方案1】:

正如 cmets 中正确指出的那样,这确实是平均训练准确度;你应该已经猜到了,只需将第二张截图中的四个不同分数与第一张截图中的训练分数进行比较。但无论如何,在继续在这里提出此类问题之前,您应该先查阅相关的文档,这可以说是您在类似情况下的最好的朋友。引用scikit-learn的score方法DecisionTreeClassifierdocs:

得分 (X, y, sample_weight=None)

返回给定测试数据和标签的平均准确度。

【讨论】:

以上是关于clf.score(X_train,Y_train) 在决策树中评估啥?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn的score函数的参数是啥?

sklearn评分函数的参数是什么?

X_train 和 y_train 是啥?

如何为 LSTM keras 重塑 X_train 和 y_train

错误:未知标签类型:'unknown'....y_train 值与 x_train 值不一致

我正在尝试训练我的 X_train 和 y_train 但存在数组维度问题