机器学习入门(三)——简单线性回归

1.0 模型之母

        线性回归模型虽然看起来非常简单,但实际上,线性回归模型可以说是最重要的数学模型之一,很多模型都是建立在它的基础之上,可以被称为是“模型之母”。

        之前介绍的kNN算法属于分类(Classification),即label为离散的类别型(categorical variable),如:颜色类别、手机品牌、是否患病等。而简单线性回归是属于回归(regression),即label为连续数值型(continuous numerical variable),如:房价、股票价格、降雨量等。

        所谓简单线性回归,是指以线性方程的形式来描述一个特征(自变量)和label(因变量)之间的关联关系。线性方程,简单理解就是自变量的幂指数为1且只进行相加运算。简单线性回归的一般形式如下:y = ax+b

        对于每个样本点x^i ,根据线性方程有\hat{y} ^i=ax^i + b

        那么若回归方程预测效果越好,则预测值\hat{y} ^i
与真实值y^i
之间的差距应当越小。考虑到正负抵消与可导性,可以使用距离的概念来度量二者的差距。考虑所有的m个样本点,则有\sum_{i=1}^m ( y^i-\hat{y} ^i)^2 
,而模型预测的目标就是求上式的最小值。

2.0 损失函数

        损失函数(loss function),就是衡量模型的拟合结果与实际结果之间的差距部分,有时也被称为效用函数(utility function)。在确定完损失函数之后,通过最优化损失函数,得到相应的参数取值,最终获得机器学习模型。

        简单线性回归的损失函数形式即为\sum_{i=1}^m (y^i-\hat{y} ^i)^2 = \sum_{i=1}^m (y^i - ax^i - b)^2 

,而此时的目标就是求min \sum_{i=1}^m (\hat{y} ^i - ax^i - b)^2 

时的ab

        近乎所有参数学习算法都是这样的套路,区别是模型不同,建立的目标函数不同,优化的方式也不同。

3.0 最小二乘法

        简单线性回归模型就是求损失函数的\sum_{i=1}^m(y^i-\hat{y} ^i)^2,这里求最小值就是最小二乘法的“最小”,“二乘”的意思就是平方。

        使用最小二乘法的简单线性回归推导过程,设L(a,b) = \sum_{i=1}^m (y^i - ax^i - b)^2 

,分别对a和b进行求导,如下:

\frac{d L(a,b)}{da}  = \sum_{i=1}^m(y^i - ax^i - b)x^i =0

......(1)

\frac{d L(a,b)}{ d b}  = \sum_{i=1}^m(y^i - ax^i - b) =0


......(2)

        由(2)可推,\sum_{i=1}^my^i - a\sum_{i=1}^mx^i - mb =0

,进一步化简有

b = \frac{\sum_{i=1}^my^i}{m}  - \frac{a\sum_{i=1}^m x^i}{m} 
= \bar{y} -a\bar{x} 

......(3)

        把(3)代入(1),则可得:

a=
\frac{\sum_{i=1}^mx^i y^i  - \sum_{i=1}^mx^i
\bar{y}}{\sum_{i=1}^m(x^i)^2 -  \sum_{i=1}^mx^i
\bar{x} } 
......(4)

      由于\sum_{i=1}^mx^i\bar{y}=\bar{y}\sum_{i=1}^mx^i=
 \frac{m\bar{y}\sum_{i=1}^mx^i}{m} 
=m\bar{x}\bar{y}=\sum_{i=1}^m\bar{x}y^i

=\sum_{i=1}^m\bar{x}\bar{y}

,代入(4)中并适当 增添辅助项,得:

a=
\frac{\sum_{i=1}^mx^i y^i  - \sum_{i=1}^mx^i
\bar{y}}{\sum_{i=1}^m(x^i)^2 -  \sum_{i=1}^mx^i
\bar{x} } =
\frac{\sum_{i=1}^mx^i y^i  - \sum_{i=1}^mx^i
\bar{y} - \sum_{i=1}^m\bar{x}y^i + \sum_{i=1}^m\bar{x}\bar{y}
} 
{\sum_{i=1}^m(x^i)^2 -  \sum_{i=1}^mx^i
\bar{x}-\sum_{i=1}^mx^i
\bar{x}+\sum_{i=1}^m
(\bar{x})^2 }

        最终得简单线性回归的各项系数为:

a=
\frac{\sum_{i=1}^m(x^i -\bar{x})(y^i -\bar{y})}
{\sum_{i=1}^m(x^i -\bar{x})^2}

b = \bar{y} -a\bar{x}

4.0 (简单)线性回归的评价指标

        由前面可知线性回归的损失函数形式为\sum_{i=1}^m (y^i -\hat{y}^i )^2,那么当数据集的长度增加是,损失势必然也是随之增加的。为了消除数据量大小带来的影响,就需要了解均方差等指标的概念。

4.1 均方误差MSE

        均方差MSE(mean squared error),通过对损失求均值来消除数据量的影响,MSE =\frac{\sum_{i=1}^m (y^i -\hat{y}^i )^2}{m}

        sklearn中的MSE:


from sklearn.metrics import mean_squared_error

mean_squared_error(y_test, y_predict)


4.2 均方根误差RMSE

        由于预测损失或误差有时需要进行解读,此时平方计算后的数值在单位上不具备可解释性(如万元变成万元平方),因此需要急性开方,此时得到的值为均方根误差(root mean square error),RMSE =\sqrt{\frac{\sum_{i=1}^m (y^i -\hat{y}^i )^2}{m} } 
=\sqrt{MSE}

        sklearn中没有RMSE的直接计算方法,可手动对MSE开方。

4.3 平均绝对误差MAE

        从距离的角度看,均方误差计算的是预测值与真实值之间的欧式距离,当然还可以使用曼哈顿距离来描述这一误差,这就是平均绝对误差(mean absolute error),MAE =\frac{\sum_{i=1}^m \vert y^i -\hat{y}^i \vert }{m}

        sklearn中的MAE:


from sklearn import mean_absolute_error

mean_absolute_error(y_test, y_predict)


4.4 R squared

        对于分类模型,模型的各评价指标是在0-1之间取值,但RMSE和MAE没有这样的性质,因此RMSE和MAE就有这样的局限性。此外,当预测标签的量纲不同时,如身高和体重,一个模型的RMSE值是4.9(公斤) ,一个模型的RMSE是10(厘米)。此时无法判断哪个模型预测得更准确,因为二者的量纲根本就不是一类东西。

        以上的局限性,可以使用指标R Squared解决,即R^2 =1-

\frac{\sum_{i=1}^m (y^i -\hat{y}^i )^2}
{\sum_{i=1}^m (\bar{y} -y^i )^2} =1-\frac{\frac{1}{m} \sum_{i=1}^m (y^i -\hat{y}^i )^2}
{\frac{1}{m} \sum_{i=1}^m (\bar{y} -y^i )^2}
=1-\frac{MSE}{var}

        分子其实就是模型预测的所有误差或损失。分布是标签真实值的方差,也可以理解为用均值去估计所有预测值所产生的误差,是一个基准模型(baseline model)。使用baseline模型产生的错误较多,使用回归模型的错误较少。因此用1减去较少的错误除以较多的错误,实际上是衡量了回归模型拟合住数据的地方,即没有产生错误的相应指标

        因此R^2 <=1R^2越大越好;当R^2=0时,说明回归模型等效于基准模型;当

R^2<0时,说明回归模型不如基准模型,还有可能数据间没有任何线性关系。

        sklearn中的R Squared:


from sklearn.metrics import r2_score

r2_score(y_test, y_predict)


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归...
    派派森森阅读 638评论 0 0
  • 机器学习的目的是使学到的模型不仅对已知数据,而且对未知数据都能有很好的预测能力。当损失函数给定时,基于损失函数的模...
    隐士飞猪阅读 2,917评论 0 3
  • 这个世界上没有无杂念的人,世人皆有烦恼,有不可能完成的梦想,和追求! 然而有这么多我们得不到的东西,但我们都努力的...
    阳光生命阅读 731评论 0 0
  • 【R】控制情绪_“收情绪” 选自《你为什么总焦虑》1.转移自己的注意力,把情绪的焦点吸引到那些愉快和积极的...
    彤彤妈_子叶阅读 146评论 1 0
  • 初冬的上午,因为工作去了乡下一趟,在毛毛细雨中穿梭。 天气说不上冷,但是这个季节,树已经开始掉叶子了。天幕是灰色的...
    手执阳光阅读 156评论 0 1

友情链接更多精彩内容