这个分类模型是不是过拟合?
Posted
技术标签:
【中文标题】这个分类模型是不是过拟合?【英文标题】:Is this classification model overfitting?这个分类模型是否过拟合? 【发布时间】:2020-02-01 21:51:45 【问题描述】:我正在执行 url 分类(网络钓鱼 - 非网络钓鱼),并为我的模型(梯度提升)绘制了学习曲线(训练与交叉验证分数)。
我的观点
这两条曲线似乎收敛并且差异不显着。 Tt 是正常的,训练集的准确度略高)。 (图一)
问题
我在机器学习方面的经验有限,因此我想征求您的意见。我处理问题的方式正确吗?这个模型好还是过拟合?
注意:类是平衡的,特征选择得很好
相关代码
from yellowbrick.model_selection import LearningCurve
def plot_learning_curves(Χ, y, model):
# Create the learning curve visualizer
cv = StratifiedKFold(n_splits=5)
sizes = np.linspace(0.1, 1.0, 8)
visualizer = LearningCurve(model, cv=cv, train_sizes=sizes, n_jobs=4)
visualizer.fit(Χ, y) # Fit the data to the visualizer
visualizer.poof()
【问题讨论】:
这是关于偏差与方差权衡的主题,请查看它以获取更多信息。此外,您可以通过增加示例来增加偏差而不是方差(过度拟合),这并不是过度拟合。 “训练实例”是您用于训练的点数吗? @FlorianMutel 是的。 作为对您现在deleted question 的最后评论的回应,请尝试Data Scince SE,但我建议您尝试使您的问题更加集中。 @desertnaut 非常感谢您的建议。非常感谢。 【参考方案1】:首先,您的图表中有 8 个不同的模型。
很难判断其中一个是否过拟合,因为可以使用“时期与性能(训练/有效)”图检测过拟合(在您的情况下将有 8 个)。
过拟合是指,经过一定数量的 epoch 后,随着 epoch 数量的增加,训练准确率上升,而验证准确率下降。例如,当关于问题复杂性的数据点太少时,可能会出现这种情况,因此您的模型使用了虚假相关性。
通过您的图表,我们可以说您的问题的复杂性似乎需要“高”数量或训练实例,因为您的验证性能会随着您添加更多训练实例而不断提高。 50000 也可能过度拟合,我们没有看到,因为您使用了提前停止!
希望对你有帮助
【讨论】:
您能否进一步解释一下为什么我的学习曲线中有 8 个模型?我只看到一个,随着数据点的增加,图表会显示其准确性。 我在主要问题中添加了代码,这可能会有所帮助。 图表的每个点都是一个模型,该模型使用 N 个数据点进行训练,参数由您的“模型”对象定义 感谢您的宝贵帮助。你知道如何在 python sklearn 上打印“epoch vs performance (train / valid)”图吗? 无法在 sklearn API 中快速找到某些内容,但它存储在您的估算器属性中。你可以看看这个问题***.com/questions/46912557/…即使它是一个不同的估计器API应该是相似的。以上是关于这个分类模型是不是过拟合?的主要内容,如果未能解决你的问题,请参考以下文章