这个分类模型是否过拟合?

我正在进行URL分类(钓鱼 – 非钓鱼),并为我的模型(梯度提升)绘制了学习曲线图(训练与交叉验证得分)。

我的看法

这两条曲线似乎趋于一致,差异并不显著。训练集的准确度略高一些是正常的。(图1)

Gradient boost learning curves

问题

我在机器学习方面的经验有限,因此我想听听您的意见。我解决这个问题的方法是否正确?这个模型是否正常,还是存在过拟合的情况?

注意:类别是平衡的,特征选择得当

相关代码

from yellowbrick.model_selection import LearningCurvedef plot_learning_curves(Χ, y, model):       # 创建学习曲线可视化工具       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)  # 拟合数据到可视化工具       visualizer.poof()

回答:

首先,您的图表中展示了8个不同的模型。

很难判断其中一个是否过拟合,因为过拟合可以通过“轮数 vs 性能(训练/验证)”图表来检测(在您的案例中会有8个这样的图表)。

过拟合意味着,在一定轮数之后,随着轮数的增加,训练准确度上升而验证准确度下降。例如,当您的数据点相对于问题的复杂度太少时,可能会出现这种情况,因此您的模型可能在利用虚假的相关性。

根据您的图表,我们可以说您的问题的复杂性似乎需要“高”数量的训练实例,因为随着训练实例的增加,您的验证性能持续提高。可能少于10000个实例的模型存在过拟合,但您的超过50000个实例的模型也可能过拟合,我们没有看到这一点是因为您使用了提前停止机制!

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注