机器学习复习 - 线性回归
概念
线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
原理
线性回归方程的公式表达(向量)
展开来就是常见的w1*x1+w2*x2+。。。。+w0=y1,其中x1,x2。。。。就是我们常说的特征,y1就是标签值了,其实线性回归可以处理回归问题也可以处理分类问题,只不过针对分类问题的0-1这类的标签,线性回归会很难收敛,具体解释(待补充)。
损失函数(默认是最小化损失函数)
更常见的形式是前面加上一个1/2,二者的最终优化的结果是一样的,只不过为了求解方便所以加了1/2
为什么线性回归使用的是平方差形式的损失函数?
使用平方形式的时候,使用的是“最小二乘法”的思想,这里的“二乘”指的是用平方来度量观测点与估计点的距离(远近),“最小”指的是参数值要保证各个观测点与估计点的距离的平方和达到最小。最小二乘法以估计值与观测值的平方和作为损失函数,在误差服从正态分布的前提下(这一点容易被忽视),与极大似然估计的思想在本质上是相同。也就是说不是我们特意去选择mse作为线性回归的损失函数而是因为我们假设误差服从正态分布,使用极大似然法(最大化误差项目为的样本总体出现的概率最大)来求解参数,进一步经过推导之后得到的mse的公式而已,具体流程见下:
我们设观测输出与预估数据之间的误差为:
我们通常认为服从正态分布,即:
我们求的参数的极大似然估计,即是说,在某个下,使得服从正态分布的取得现有样本的概率最大。那么根据极大似然估计函数的定义,令:
取对数似然函数:
分别求的偏导数,然后置0,最后求得参数的极大似然估计为:
我们在线性回归中要求得最佳拟合直线,实质上是求预估值与观测值之间的误差最小(最好是没有误差)的情况下的值。而前面提到过,是服从参数的正态分布,那最好是均值和方差趋近于0或越小越好。即:
趋近于0或越小越好
趋近于0或越小越好。
而这与最前面构建的平方形式损失函数本质上是等价的。
公式推导
(论文研究型工程师需要掌握)飞机
优点
实现简单,计算简单;
缺点
不能拟合非线性数据
改进
工具
sklearn
核心参数
fit_intercept 布尔型,默认为true
说明:是否对训练数据进行中心化,即是否需要b值,若果为False,则不需要。
normalize 布尔型,默认为false
说明:是否对数据进行归一化处理。
copy_X 布尔型,默认为true
说明:是否对X复制,如果选择false,则直接对原数据进行覆盖。(即经过中心化,归一化后,是否把新数据覆盖到原数据上),true则赋值X。
n_jobs 整型, 默认为1
说明:计算时设置的任务个数(number of jobs)。如果选择-1则代表使用所有的CPU。这一参数的对于目标个数>1(n_targets>1)且足够大规模的问题有加速作用。
返回值
coef_ 数组型变量, 形状为(nfeatures,)或(ntargets, nfeatures)
说明:对于线性回归问题计算得到的feature的系数,即权重向量。如果输入的是多目标问题,则返回一个二维数组(ntargets, nfeatures);如果是单目标问题,返回一个一维数组(n_features,)。
intercept_ 数组型变量
说明:线性模型中的独立项,即b值。
注:该算法仅仅是scipy.linalg.lstsq经过封装后的估计器。
模型评估
MSE
(r2_score)
经典案例:
问答:
持续更新,未完待续……
评论