该分类模型是否过拟合?

时间:2019-10-03 14:38:21

标签: machine-learning scikit-learn classification text-classification sklearn-pandas

我正在执行url分类(网络钓鱼-非网络钓鱼),并为模型(梯度增强)绘制了学习曲线(训练与交叉验证分数)。

我的视图

这两条曲线似乎收敛,并且差异不明显。对于训练集,Tt的法线具有较高的准确性)。 (图1)

Gradient boost learning curves

问题

我在机器学习方面的经验有限,因此我想问您一些意见。我解决问题的方式正确吗?这个模型好吗?还是过度拟合?

注意:类是平衡的,功能是经过精心选择的

相关代码

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()

1 个答案:

答案 0 :(得分:1)

首先,您的图形中有8种不同的模型。

很难确定其中一个是否过度拟合,因为可以通过“历时与性能(训练/有效)”图(在您的情况下为8)检测到过度拟合。

过度拟合是指在一定时期后,随着时期数的增加,训练准确性将提高,而验证准确性将下降。例如,当关于问题复杂性的数据点太少时,就是这种情况,因此您的模型正在使用虚假相关。

对于您的图形,我们可以说的是,问题的复杂性似乎需要“高”个数或训练实例,因为随着添加更多的训练实例,验证性能会不断提高。 <10000的模型可能会过拟合,但您的> 50000可能也过拟合,我们看不到,因为您使用的是提前停止!

希望有帮助