机器学习 + Python:绘制验证曲线

Posted

技术标签:

【中文标题】机器学习 + Python:绘制验证曲线【英文标题】:Machine Learning + Python : Drawing Validation curve 【发布时间】:2019-03-14 00:10:25 【问题描述】:

我想为我的朴素贝叶斯估计器绘制一条验证曲线,如下所示:

http://scikit-learn.org/stable/auto_examples/model_selection/plot_validation_curve.html

我不明白什么是训练分数。

谁能解释一下?

【问题讨论】:

训练分数是在训练集上的分数。在链接中给出的示例中,在应用交叉验证时计算平均值(即准确度)。该曲线显示了不同伽玛值的训练数据和验证数据的平均准确度。 @prashanth :我明白这一点,但我不知道训练分数是如何计算的。 nagrom97 已经解决了我的疑惑。 【参考方案1】:

训练分数是在训练过程中获得的分数。例如,当您调用 yourmodel.fit(x_train, y_train) 之类的名称时,在本例中为橙色线。在幕后,您的模型根据您的 y_train(您的标签/结果,例如下雨或不下雨)对您的 x_train 数据(您的特征,例如温度或湿度)进行预测)。 非常粗略,训练分数是根据您的模型正确预测的次数计算得出的。例如,您的模型的得分可能为 0.9436..(大约 94%),这意味着您的机器学习模型在 94% 的时间内输出了正确的决策。您经常会发现,在训练期间,模型的得分往往高于在测试集上的得分。您可以看到橙色线看起来好像是 1.0,有效得分为 100%,但交叉验证(测试)得分最高得分略低于 100%,这是更常见的景象。

假设得分为 1.0 意味着您的模型是完美的,这可能是危险的,这就是 过度拟合 出现的地方,这在较高的水平上意味着您的模型与您的训练过于紧密数据,并且不能很好地推广到新数据。我建议查看this 了解更多信息,Sci-Kit 学习网站有很好的文档。

【讨论】:

我无法理解。能否请您详细解释一下如何计算训练分数? 嘿@Debbie 我已经为你添加了更多细节。 这里没有指定任何指标来计算训练分数,就像我可以选择任何指标,如准确率、f1 分数我选择的任何指标来计算交叉验证分数:yourmodel.fit(x_train, y_train)跨度> @Debbie 我不确定你的意思。您需要帮助计算训练分数吗? 是的,我需要帮助。我问的是计算验证核心,我们可以明确提及一些指标。同样如何提及指标来计算训练分数?

以上是关于机器学习 + Python:绘制验证曲线的主要内容,如果未能解决你的问题,请参考以下文章

Python机器学习:6.3 使用学习曲线和验证曲线 调试算法

机器学习框架及评估指标详解

机器学习算法:ROC曲线的绘制

Python机器学习(六十七)Matplotlib 图形绘制

斯坦福大学公开课机器学习:advice for applying machine learning | learning curves (改进学习算法:高偏差和高方差与学习曲线的关系)

Sklearn机器学习——ROC曲线ROC曲线的绘制和AUC面积运用ROC曲线找到最佳阈值