模型误差 = 偏差(Bias) + 方差(Variance) + 不可避免地误差
方差 | 偏差 |
---|---|
数据的一点点扰动都会较大地影响模型 | – |
导致原因:使用的模型过于复杂 | 导致原因:对问题本身的假设不正确 |
如:使用高阶多项式回归 | 如:非线性数据使用线性回归 |
过拟合 | 欠拟合 |
非参数学习通常都是高方差算法。如:KNN | 参数学习通常都是高偏差算法。如:线性回归 |
解决高方差的通常手段:
- 降低模型复杂度
- 减少数据维度;降噪
- 增加样本数量
- 使用验证集
- 模型正则化
模型正则化
限制参数(系数)的大小
经过正则化后,得到的模型的方差会大大减小
- 岭回归
1、为了防止过拟合,加入theta
2、alpha取不同的值,可以控制theta在函数J中所占的比例
3、alpha越大,曲线越平滑
4、 岭回归不具有特征选择的能力,计算量会比较大
In [138]: from sklearn.linear_model import Ridge
...:
...: def RidgeRegression(degree,alpha):
...: return Pipeline([
.