machine-learning - 这个分类模型是否过拟合?
问题描述
我正在执行 url 分类(网络钓鱼 - 非网络钓鱼),并为我的模型(梯度提升)绘制了学习曲线(训练与交叉验证分数)。
我的观点
似乎这两条曲线收敛,差异不显着。Tt 是正常的,训练集的准确度略高)。(图1)
问题
我在机器学习方面的经验有限,因此我在征求您的意见。我处理问题的方式正确吗?这个模型是好的还是过度拟合?
注:类均衡,特征选得好
相关代码
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()
解决方案
首先,在您的图表中有 8 个不同的模型。
很难判断其中一个是否过度拟合,因为可以使用“时期与性能(训练/有效)”图来检测过度拟合(在您的情况下将有 8 个)。
过拟合是指,经过一定数量的 epoch 后,随着 epoch 数量的增加,训练准确率上升,而验证准确率下降。例如,当您的问题复杂性数据点太少时,可能就是这种情况,因此您的模型使用了虚假相关性。
通过您的图表,我们可以说您的问题的复杂性似乎需要“高”数量或训练实例,因为随着您添加更多训练实例,您的验证性能会不断提高。<10000 的模型有可能过度拟合,但您的 >50000 也可能过度拟合,我们看不到这一点,因为您正在使用提前停止!
希望能帮助到你
推荐阅读
- html - 当以电子邮件形式发送并更改缩放(100% 缩放不起作用)时,如何修复 HTML 的 ImageMap 链接?
- python - Selenium Automate 单击“我们重视您的隐私”弹出窗口
- kubernetes - Kubernetes - 达到 pod 限制时,AutoScaling 不会增加节点数
- wpf - 当弹出窗口打开时,WPF如何防止与后台控件交互
- ios - 如何制作 swift listView 轮盘动画
- python - 如何检查另一个数据框中是否不存在字符串值?
- tensorflow - 使用 TensorFlow 数据集 from_generator() 使用自定义生成器和 ImageDataGenerator 创建多输入/输出
- flutter - 在 null 上调用了方法“子字符串”。接收方:null 尝试调用:substring(0, 1)
- json - 基于 pandas 列创建具有 json 格式的列
- php - 如何使用 htacces 文件隐藏 php 中的完整路径