线性回归算法梳理
一.机器学习的一些概念
1.监督学习
简单来说就是训练集的每个数据都是一组(特征值, 标签值), 也就是每个数据有对应明确的标签值.举个例子垃圾邮件分类的例子:
我们手上有一百封有标签的垃圾邮件, 也就是说对于里面每一封邮件我们都被告知了是否为垃圾邮件.然后我们用这个100个训练集数据对我们的算法进行训练, 最终用训练好的算法来预测没有标签值的邮件, 也就是最终训练完成的算法需要对任意一封邮件进行判断,这封邮件是否为垃圾邮件.
简而言之,就是有标签的训练集就是监督学习.
2.非监督学习
跟上面的概念相反,也就是训练集不带标签.
比如你开个服装店,你想根据客人的身高,体重,这两个特征值,来划分衣服S,M,L三个型号.现在你手上有100个客户资料(即身高,体重),然后你告诉你的算法要对这个100个训练集分3个类,然后算法就会根据每个客户已有的特征值,自动学习,自己找出这些特征间的规律,然后划出3个区间.最终我们会用这个新算法,对新客户进行预测,他将落入哪个区间.
以上就是非监督学习的例子.
3.泛化能力
也就是训练好的算法,对新样本的适应能力.拿准确率指标举个例子,假设我们已经设计好了一个算法,这个算法对训练集的数据已经能够达到95%的准确率(我们认为这个算法对训练集的准确率已经达到了较高的水平), 现在我们要用这个算法对新样本进行预测.假设100个新样本,我们对其也能够达到 90% 的准确率,那么我们就认为这个新算法的泛化能力较 强. 但是如果我们对这100个新样本的预测,只能够达到 **60%**的准确率,那么我们就认为这个模型算法的泛化能力较 弱, 需要对算法进行改进.
4.过拟合 及对应解决方法
通过泛化能力的了解, 我们对训练集达到95%准确率(假设瞎蒙只能达到50%的准确率),而对新样本集只能达到60%的准确率的这情况 称为过拟合, 也就是模型在训练集上表现的很好, 但是推广效果不好.
举个过拟合的图形化例子:
上图来自 吴恩达-机器学习课程讲义:
其中红X表示训练集上的每个数据, 蓝色的线段表示模型拟合出来的曲线.很明显,这个曲线能够完美的符合训练集上的每个数据,但是我们会预感到,对于新样本上的数据,很有可能完全不在这个曲线上,并且离曲线的距离较远.也就是说我们用了过于复杂的模型去拟合这个数据的走向.比如假设数据坐落在x关于y的二次方程上,我们却用了x关于y的三次,四次甚至是十次方程去拟合,从而导致泛化能力很差.
解决方法:
1.简化模型,选择一个参数更少的模型(比如用线性模型, 而不是高阶多项式模型), 减少训练数据的特征数量或限制模型
2.收集更多的训练数据,也就是增大训练集
3.减小训练数据的噪声(比如,修改错误数据和去除异常值)
限制模型,降低过拟合风险的办法我们成为正则化(regularization).也就是在算法中增加参数用以降低(惩罚)W,b两个参数对算法的影响水平.这个新增的参数若设定的大,那么就是对(W,b)的惩罚大,也就是大幅降低他们本身对算法的影响,使得模型的斜率几乎