线性回归的缺陷--欠拟合和过拟合
欠拟合:
简介
训练集和测试集表现都不怎么样, 模型太简单
产生原因:
学习到的特征太少
改进方法:
1.添加其他特征
组合
泛化
相关性
上下文特征,平台特征等
2.添加多项式特征, 将低次项模型变成高次项模型
过拟合:
简介
原始特征过多,存在嘈杂特征,模型尝试兼顾各个测试点
产生原因:
训练集表现好,测试集表现不好, 模型过于复杂
改进方法:
1.重新清洗数据
过拟合可能因为数据不纯导致的
2.增大数据的训练量
过拟合可能因为训练的数据量太少,没有代表性,训练数据占总数据的比例过小
3.正则化
4.减少特征维度, 防止维灾难
改进方法-正则化:
通过限制高次项的系数来尽量减小高次项特征的影响,
以达到防止过拟合的目的
L1正则化
将某些高次项前面的系数W变为0, 去除该特征值的影响
应用
LASSO回归
缺点
模型不是平滑的曲线,会出现很多顶点不可导
L2正则化
让某些高次项系数W值很小,接近零,削弱该特征其影响
应用
Ridge回归
优点
模型是平滑曲线, 高次项参数越小, 说明模型越简单, 越不容易产生过拟合
正则化线性模型
1.RidgeRegression-岭回归
简介:
在系数前面添加平方项, 然后用α来限制系数值的大小,
α越大, 系数值越小, α越小, 系数值越大
api:
sklearn.linear_model.Ridge()
参数:
alpha--正则化强度
solver-选择的线性回归算法
默认SAG(随机平均梯度下降算法)
normalize-是否对数据进行标准化
normalize=True, 自动调用算法进行标准化
normalize=False, 不对数据进行标准化
2.Lasso回归
简介:
处理系数的绝对值, 用α来影响系数值大小,
α越大, 系数值越小, α越小, 系数值越大
3.Elastic Net 弹性网络
简介:
前两个的综合, 即
在系数前面添加平方项, 然后用rα来限制系数值的大小,
处理系数的绝对值, 用1-r/2α来影响系数值大小,
当r为0时, 算法变成lasso回归
当r为1时, 算法变成ridge回归
4.算法推荐:
常用算法: Ridge回归
当只有少部分特征可以使用时:
-
Elastic Net(弹性网络)
-
Lasso回归
弹性网络使用更广泛,因为在特征维度高于样本数时, 或者特征维度为强相关时, Lasso回归表现不佳
5.Early stopping(扩展, 了解即可)
通过限制错误率的阈值, 即时停止
当错误率最小时, 停止执行算法
扩展--维灾难:
随着维度增加,分类器性能逐步上升, 到达某一顶点之后, 性能逐渐下降
维数灾难的核心问题:
随着维数的增加,数据的体积指数级增长,导致可用数据变得稀疏。
这使得在统计学上获得正确且可靠的结果所需的数据量也呈指数级增长。
此外,高维空间中的数据分析和模型构建变得更加复杂和困难,容易导致过拟合等问题
我的唠叨--下述内容与上述内容无关
哦, 对于机器学习感兴趣的小伙伴, 推荐你们可以看一看
【不讲废话!北大教授花198小时整理出来的人工智能【机器学习+深度学习】教程,全程干货无废话,学不会自我反省!-哔哩哔哩】 https://b23.tv/XYti299
或者吴恩达的<机器学习>, 可能刚刚进去的时候容易被他的英文字幕给吓到, 但是没关系的,
国内b站上面的中文字幕到处都是, 而且这位大佬讲的确实浅显易懂,
我估摸着学习好点的高中生完全可以听得懂, 这里链接我就不推荐了
最近在学爬虫, 找了好多课程, 发现了一个内容质量挺高的一个博主<轻松学python>,
个人感觉, 搞爬虫, 他是专业的🤣, 话不多说, 要开始我下午的生活了