本文首发于公众号:荻确如此
欢迎转载,甚至无需保留以上声明
机器学习首当其冲的应该就是线性回归,什么叫线性?回想起“自然辩证法”课上老师问一个同学什么是线性,那同学把矩阵论里的基的概念都搬出来了。。。结果老师一脸懵逼并批评他:搞这么麻烦,什么鸡,还鸭呢!爆笑全场。线性就是y = ax + b嘛!
回归就是自然界将分布约束在相对稳定而不产生两级分化的整体水平,如下图,最经典的线性回归还是房价的预测。横坐标可以是不同的特征:面积,地理位置,还有是否朝阳。
拿到多维的就是如下公式,这里的θ其实就是特征的权重,我们是对房子的面积看好还是是否是学区房还是喜欢阳光充足。所以我们要求出的就是θ
那么怎么去求呢?
我们预测的y和实际的θx有一个差值,这里有一个用极大似然估计来解释我们的最小二乘。
因为误差我们看成是高斯分布,所以误差的概率密度函数就可以用如下图的公式表示:
这里如果学过概率论的童鞋应该很清楚这里的似然函数L(θ)需要对他取log,这样连乘就能够被化为连加。
你看,我们要求极大似然解,就是最后一个等号需要让他最大,那么就相当于减号后面的那一部分最小。得到的J(θ)就是我们要的最小二乘(就是使得预测的和实际的所得到的误差的均方值最小)。
也就是我们得到的上面那个最小二乘函数J(θ)达到最小的时候我们要找到权重θ是什么。在另一种方式我们可以用θ的解析式去求解,就是用到了矩阵的知识。
嗯,最后得到的θ就是这个了。
什么?这些个矩阵看的一脸懵逼?不要紧,最小二乘函数的解析解适合于计算机运行特殊的库去搞定,这个是目的。我们还可以用梯度下降这个手段去找到最优化问题的最优解。这就是数值方法了。
我们不断迭代θ,让新的θ能够使得J(θ)更小,如上图二维坐标系,小到二次函数的最低点我们就找到了最优的θ值对吧?那么你会问上面的那一坨公式是什么。其实就是θ的迭代公式,J(θ)对θ求偏导这里我们把这个步骤就叫做求梯度,α代表着学习率(步长),就是我们随着负梯度的方向一直迭代θ,步子大了会扯淡,小了要学习好多次,所以要找一个适合的步长。
下图是具体的二乘函数(损失函数)求偏导的推导过程,放心食用~
这里如果模型训练的不好,就会出现过拟合和欠拟合的情况,过拟合相当于模型太敏感了,拟合的太过了,莫须有的感觉;而欠拟合就是能力不行,有须莫。欠拟合好解决,多给点数据或者干脆换种算法。可是如果线性回归遇到了过拟合的情况,就要用到正则化,正则化的方式根据使用的惩罚项的不同可以分为“岭回归”和“Lasso”回归。你敢过拟合?那我就惩罚你,我在训练中误差上升一点,因为加了惩罚的机制,但是我测试的时候误差就降下来了,还是可以接受的。
今天介绍了线性回归的基本原理,希望大家能够看明白,看不明白的可以跑去Coursera听听吴恩达的课程~
领取专属 10元无门槛券
私享最新 技术干货