向量相似理论:
线性回归:比如预测房价中学区属性0.4、居住体验0.2、通勤距离0.2、商业环境0.2等因素, 在同一价格区间,只有样本特征与上述属性分布一致时,各方面都加权均衡,才能取得高分;任一单一属性过高,必然导致其他属性降低,通常意义上不是一个好的选择(例子不太合适)。 常用的回归算法有: 线性回归、Robust 回归、Ridge 回归、LASSO 回归、Elastic Net、多项式回归、多层感知机、随机森林回归和支持向量机。
逻辑回归:判别是不是二哈,构造的特征如:身长分桶、体重分桶、眼睛、腿、尾巴长度分桶、等等指标,好的模型 在各个特征权重上根二哈是相符的,比如体重分桶在40-60斤 权重为0.8,其他分桶权重很低;身长在60~100区间时 权重为0.9,其他区间权重很低。同理样本只有在w这些特征权重取值高的区间时才能得到高分,所以最后取得分数最高的样本的特征一定是和这些权重分布高度一致的,也就是样本特征向量和模型权重向量高度相似。
同理也适用于多分类。
![](https://i-blog.csdnimg.cn/blog_migrate/87a6054204fbb3074120f9cf11c466cc.png)
线性学习中最基础的回归之一,本文从线性回归的数学假设,公式推导,模型算法以及实际代码运行几方面对这一回归进行全面的剖析~
一:线性回归的数学假设
1.假设输入的X和Y是线性关系,预测的y与X通过线性方程建立机器学习模型
2.输入的Y和X之间满足方程Y=X+
,
是误差项, 且
1,
2,
m之间独立同分布,且均值=0,方差为某一定值,根据中心极限定理推出
服从高斯分布(正态分布).
中心极限定理: 设随机变量X1,X2,......Xn,......独立同分布,并且具有有限的数学期望和方差:E(Xi)=μ, D(Xi)=0(k=1,2....),则对任意x,分布函数为:
二、线性回归建模
2.1方程式表示:
数学形式:
矩阵形式:
其中,X矩阵是m行(n+1)列的,每一行是一个样本,每一列是样本的某一个特征
矩阵(n+1)行一列的,它是X的权重,也是线性回归要学习的参数
2.2 损失函数(Loss function)
对数极大似然和最小二乘的联系:
由线性函数的假设知道,误差项满足高斯分布,其中一个样本的(概率分布)正态分布的数学表达为:(公式含义: 在已知x,y 的情况下, 模型参数=的概率)
那么m个样本的联合分布为, 这一概率随
的取值而变化,它是
的函数,称
为样本的似然函数。
经过数学运算和推导,求极大似然的最大值可以转化为求其log函数的最大值,推导过程如下:
转化为对数似然函数的原因:(这里log 省略的底数是e)
(1).取对数不影响函数的单调性,保证输入对应的概率的最大最小值对应似然函数的最值。
(2).似然函数往往是连城形式,直接求偏导不好搞,根据log可以把连乘变为连加方便计算。减少计算量,比如联合概率的连乘会变成加法问题,指数亦可???。
(3).概率的连乘将会变成一个很小的值,可能会引起浮点数下溢,尤其是当数据集很大的时候,联合概率会趋向于0,非常不利于之后的计算。依据ln曲线可知,很小的概率(越接近0)经过对数转换会转变为较大的负数,解决下溢问题。
要使得极大似然取得极大值,上式中的后一项就要最小,也可以将求线性回归的极大似然转化为求最小二乘的最小值,也就是常见到的线性函数的最小二乘求损失函数的数学形式:
由此就得到了线性函数的loss function
三、线性函数算法:求解参数![](https://i-blog.csdnimg.cn/blog_migrate/e336e3d0b9d5afec84059645c397855c.png)
机器算法的目的就是通过建立模型并通过选择合适的算法来求出参数下的y和实际的Y之间的差值尽量的小,也就是预测的准确率在训练集和测试集足够高
3.1 当矩阵
可逆(满秩)时,通过normal equation可以直接求解![](https://i-blog.csdnimg.cn/blog_migrate/e336e3d0b9d5afec84059645c397855c.png)
目标函数转化为矩阵形式:
对其求导并求驻点
另上式为0,可求得
此算法的缺点是:当矩阵很大是,计算非常耗时且占用资源
3.2 当矩阵
不可逆(非满秩)时,通过梯度下降求解
初始化,沿着负梯度方向进行迭代,知道变化很小或者不变化
梯度下降中设计到的参数是,步长alpha,迭代次数t,这些对于计算最终的都会影响,所以需要调参优化。
常用的梯度下降算法有SGD,BGD,mBGD,实际中以mBGD使用最多
四、线性回归防止overfitting
机器学习最忌讳的是死记硬背,像考试一样平时学习只记得死答案了,在考试的时候就不会做题目了,为了灵活变通,overfitting的方法就出现了,线性回归中最常用的是引入正则化项,也就惩罚项,给损失函数的参数赋予一个约束项,使其不能任意的无限大或者无限小,加入正则化损失函数变为:
4.1当矩阵满秩时,引入正则项后的变为:
4.2当矩阵不满秩时,引入正则项后的变为:
五、python代码实现
数据:仍然使用上海2015的气温数据
分别作图看2015上海的气温和气压的关系以及使用线性回归拟合的结果,