1.线性回归的重要性
1)Linear Regression:是回归问题的基础
2)Logistic Regression:是分类问题的基础
3)可扩展性:使用基函数来解决非线性问题
4)应用层面的重要性---在工业中最广泛应用的基础
2.什么是线性
线性回归分析:是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。本质上说,这种变量间依赖关系就是一种线性相关性,线性相关是线性回归分析模型的理论基础。
3.衡量预测值与真实值的距离
问题:如何衡量预测的准确性,即衡量f(x)和y之间的差异
1.误差平方和SSE判别
解释:由于误差有正有负,故使用平方和来抵消正负。
问题:1)使用平方后会放大方法(差>1)部分的误差,同时缩小(-1<差<1)部分的误差。
2)当不同维度之间的度量差异很大时无法处理。例如:衡量一个人有年龄和收入两个维度,两个维度相差100倍以上,模型会严重受到收入大小的影响,要求在建模前对数据进行归一化处理。
2.欧氏距离判别
问题:1)带根号求解麻烦
2)当不同维度之间的度量差异很大时无法处理。
3.曼哈顿距离判别
问题:不是连续函数,求导很麻烦,计算不方便,只能计算垂直、水平距离
使用场景:数据稀疏(自带归一化处理)
4.马氏距离判别
问题:带根号,求解麻烦
使用场景:多维数据(流行学习),解决不同维度之间的度量差异很大时的问题。
4.评价指标
但是从使用场景上讲,我们在上文提到的最小二乘法,是我们在用训练数据集训练建模时,为了调整模型参数而确定的评价指标,目的是为了优化模型参数。而这里我们要讲的评价指标,是衡量模型建立好以后,使用别的数据集时(测试数据集、真实数据集)这组模型参数的表现效果,目的是为了选择模型参数
这里给出准确定义:评价指标是针对将相同的数据,输入不同的算法模型,或者输入不同参数的同一种算法模型,而给出这个算法或者参数好坏的定量指标。
(1)均方误差(SSE)
真实值-预测值 然后平方之后求和平均
同样的数据集的情况下,SSE越小,误差越小,模型效果越好。
缺点:SSE数值大小本身没有意义,随着样本增加,SSE必然增加,也就是说,不同的数据集的情况下,SSE比较没有意义。
改进:MSE: 对SSE求平均。是线性回归中最常用的损失函数,线性回归过程中尽量让该损失函数最小。那么模型之间的对比也可以用它来比较。
(2)均方根误差(标准误差RMSE)
MSE是用来衡量一组数自身的离散程度,而RMSE是用来衡量观测值同真值之间的偏差,他们的研究对象和研究目的不同。它的意义在于开个根号后,误差的结果就与数据是一个级别的,可以更好地来描述。标准误差对一组测量中的特大或特小误差反映非常敏感,所以标准误差能够很好地反映出测量的精密度。这正是标准误差在工程测量中广泛被采用的原因。 当数据集中有一个特别大的异常值,这种情况下,data会被skew,RMSE会被明显拉大。所以对RMSE低估值(under-predicted)的判罚明显小于估值过高的情况。
(3)平均绝对误差(MAE)
平均绝对误差是绝对误差的平均值,平均绝对误差能更好地反应预测值误差的实际情况。MAE是一个线性的指标,所有个体差异在平均值上均等加权,所以它更加凸显出异常值。MSE和MAE适用于误差相对明显的时候,此时大的误差也有比较高的权重。
(4) R-square(决定系数)
对于回归类算法而言,只探索数据预测是否准确是不足够的。除了数据本身的数值大小之外,我们还希望模型能够步骤到数据的"规律",比如数据的分布规律,单调性等等,而是否捕获了这些信息并无法使用MSE或者MAE来衡量。
其中红色线是我们的真实标签,而蓝色线是我们的拟合模型。这是一种比较极端,但的确可能发生的情况。这张图前半部分的拟合非常成功,看上去真实标签和预测结果几乎重合,但后半部分的拟合缺非常糟糕,模型向着与真实标签完全相反的方向去了。
对于这样的一个拟合模型,如果我们使用MSE来对它判断,它的MSE会很小,因为大部分样本其实都完美拟合了,少数样本的真实值和预测值的巨大差异在被均分到每个样本上之后,MSE就会很小。但这样的拟合结果必然不是一个好结果,因为一旦新样本是处于拟合曲线的后半段的,预测结果必然会有巨大的偏差。所以,我们希望找到新的指标,除了判断预测的数值是否正确之外,还能够判断我们的模型是否拟合了足够多的,数值之外的信息。
在R2中,分子是真实值和预测值之差的差值,也就是我们的模型没有捕获到的信息总量,分母是真实标签所带的信息量,所以两者都衡量1-我们的模型没有捕获到的信息占真实标签中所带的信息量的比例,所以两者是越接近1越好。
缺点:数据集的样本越大,R2越大,因此不同数据集的模型结果比较会有一定的误差。
5.线性回归的适用场景及前提假设
使用线性回归,需要遵守下面几个假设:
1)线性回归是一个回归问题(regression)。
2)要预测的变量与自变量x的关系是线性的。
3)各项误差服从正态分布,均值为0,与x同方差。
4)变量x的分布要有变异性。
5)多元线性回归中不同特征之间应该是相互独立,避免线性相关。
回归问题与分类问题
与回归相对的是分类问题,分类问题要预测的变量y输出集合是有限的,预测值只能是有限集合内的一个。当要预测的变量y输出集合是无限且连续,我们称之为回归。比如,天气预报预测明天是否下雨,是一个二分类问题;预测明天的降雨量多少,就是一个回归问题。
变量之间是线性关系
线性通常是指变量之间保持等比例的关系,从图形上来看,变量之间的形状为直线,斜率为常数。这是一个非常强的假设,数据点的分布呈现复杂的曲线,则不能使用线性回归来建模。
误差服从均值为零的正态分布
前面最小二乘法求解过程已经提到了误差的概念,误差可以表示为误差 = 实际值 - 预测值。
可以这样理解这个假设:线性回归允许预测值与真实值之间存在误差,虽则数据量的增多,这些数据的误差平均值为0;
这是一个非常强的假设,乳沟要使用线性回归模型,那么必须假设数据的误差均值为0的正态分布。
变量x的分布要有变异性
线性回归对变量x也有要求,要有一定变化,不能像安斯库姆四重奏右下角的数据那样,绝大多数数据都分布在一条竖线上。
多元线性回归不同特征之间相互独立
如果不同特征不是相互独立,那么可能导致特征间产生共线性,进而导致模型不准确。举一个比较极端的例子,预测房价时使用多个特征:房间数量,房间数量*2,-房间数量等,特征之间是线性相关的,如果模型只有这些特征,缺少其他有效特征,虽然可以训练出一个模型,但是模型不准确,预测性差。
6.线性回归的优缺点
优点:可解释性好。
缺点:
1)需要严格的假设。
2)需要处理异常值,对异常值很敏感,对输入数据差异很敏感。
3)线性回归存在共线处,自相关、异方差等问题。
7.调用sklearn.linear_model.LinearRegression()所需参数:
1)fit_intercept: 布尔型参数,表示是否计算该模型截距。可选参数。
2)normalize:布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。
3)copy_X:布尔型参数,若为True,则X将被复制;否则将被覆盖,可选参数。默认值为True
4)n_jobs:整型参数,表示用于计算的作业数量;若为-1,则用所有的CPU。可选参数,默认值为1.
5)sample_weight:分配给各个样本的权重数组,一般不需要使用
LinearRegression的score函数返回的是R2