模型评估和超参数调整(三)——学习曲线和验证曲线 learning curves and validation curves

本文深入探讨了如何通过学习曲线和验证曲线来评估和优化机器学习模型。内容包括如何识别高偏差和高方差问题,对应的解决方案,以及使用sklearn库进行学习曲线和验证曲线的实践,以确定模型的最佳正则化参数C。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读《python machine learning》chapt 6 

Learning Best Practices for Model Evaluation and Hyperparameter Tuning

【主要内容】

(1)获得对模型评估的无偏估计

(2)诊断机器学习算法的常见问题

(3)调整机器学习模型

(4)使用不同的性能指标对评估预测模型

git源码地址 https://github.com/xuman-Amy/Model-evaluation-and-Hypamameter-tuning

【learning curves and validation curves】

高方差和高偏差情况下的学习曲线

【解决方法】

高偏差(high bias):训练集和交叉验证的正确率都很低

(1)增加模型参数,比如收集更多或者创建更多特征

(2)降低正则化参数(decreasing the degree of regularization),比如在SVM 或者LR 分类器中。

高方差(high variance):训练集和交叉验证的正确率相差太大

(1)增加更多的训练数据

(2)降低模型的复杂度

(3)增加模型的正则化参数

 

【利用sklearn库的学习曲线评估模型】

 

<
### 合格回归模型学习曲线特征 对于构建合格的回归模型而言,学习曲线提供了直观的方法来评估模型性能并诊断潜在的问题。当训练集得分验证集得分为相对接近且都处于较高水平时,这表明所建立的回归模型具有良好的泛化能力[^5]。 如果观察到随着样本数量增加: - **高偏差(欠拟合)情况**:训练分数与交叉验证分数均较低,并且两者之间的差距较小。这意味着无论有多少数据量,模型都无法很好地捕捉输入特征与目标变量间的映射关系。 - **高方差(过拟合)状况**:训练误差显著低于验证误差,在这种情形下,尽管模型能够完美记忆训练集中每一条记录的信息,但对于未曾见过的新实例却表现不佳。 理想状态下,一个合适的回归模型应该展现出如下特性——即两条曲线趋于收敛于某个可接受范围内的高性能区域,既不过度贴合也不过分疏远实际趋势。 ```python import numpy as np from sklearn.model_selection import learning_curve import matplotlib.pyplot as plt def plot_learning_curves(estimator, X, y): train_sizes, train_scores, test_scores = learning_curve( estimator, X, y, cv=10, scoring='neg_mean_squared_error', n_jobs=-1, train_sizes=np.linspace(.1, 1.0, 5)) train_scores_mean = -train_scores.mean(axis=1) test_scores_mean = -test_scores.mean(axis=1) plt.figure() plt.title('Learning Curves') plt.xlabel('|Training examples|') plt.ylabel('Score') plt.grid() plt.plot(train_sizes, train_scores_mean, 'o-', color="r", label="Training score") plt.plot(train_sizes, test_scores_mean, 'o-', color="g", label="Cross-validation score") plt.legend(loc="best") return plt ``` 此函数`plot_learning_curves`可用于绘制给定估计器在不同规模子集上的平均MSE变化图谱,从而帮助识别上述提到的各种模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值