第五十篇 入门机器学习——线性回归(Linear Regression)

Posted xuezou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第五十篇 入门机器学习——线性回归(Linear Regression)相关的知识,希望对你有一定的参考价值。

 

 

No.1. 线性回归算法的特点

技术分享图片

 

No.2. 分类问题与回归问题的区别

技术分享图片

上图中,左侧为分类问题,右侧为回归问题。左侧图中,横轴和纵轴表示的都是样本的特征,用不同的颜色来作为输出标记,表示不同的种类;左侧图中,只有横轴表示的是样本特征,纵轴用来作为输出标记,这是因为回归问题所预测的是一个连续的数值,无法用离散的几种颜色来表示,它需要占据一个坐标轴的空间。在回归问题中,如果需要考虑两个样本特征,那就必须在三维空间中进行观察。
 
No.3. 简单线性回归与多元线性回归
样本特征只有一个的线性回归,就称之为简单线性回归;样本特征有多个的线性回归,就称之为多元线性回归。
 
No.4. 简单线性回归就是要找一条直线,这条直线要能最大程度地拟合样本特征点,这条直线的一般性表达式为:y=ax+b,其中,a 表示直线的斜率,b 表示直线的截距。对于任意一个样本点 i ,会有一个对应的样本特征 x(i),以及一个输出标记 y(i),如果我们确定了这条直线的两个参数 a 和 b 的话,我们就可以将 x(i) 这个特征值代入到直线方程 y=ax+b中,得到特征值 x(i) 的输出标记的预测值,表示如下:
技术分享图片
当然这个输出标记的预测值与真实值之间存在一定的差距,我们需要想办法使这个差距尽可能小。
 
No.5. 求解简单线性回归的过程大致如下:
技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

No.6. 最小二乘法的"套路"

技术分享图片

 

技术分享图片

技术分享图片

 

技术分享图片

 

技术分享图片

 

技术分享图片

 

No.7. 实现一个简单线性规划

技术分享图片

 

 No.8. 将上述逻辑封装到一个SimpleLinearRegression1类中

技术分享图片

 

No.9. 调用封装好的类

技术分享图片

 

No.10. 向量化运算
上面我们在计算参数 a 时使用了for循环,相较于for循环,向量之间相乘的效率要高很多,因此我们需要改进参数 a 的计算逻辑,采用向量化运算来提升性能。
将类SimpleLinearRegression1中有关计算参数 a 的业务逻辑修改为如下,得到类SimpleLinearRegression2:
技术分享图片

 

简单调用类SimpleLinearRegression2:

技术分享图片

 

No.11. 简单测试for循环和向量化运算的性能差异

技术分享图片

 

No.12. 衡量回归算法好坏的指标

技术分享图片

技术分享图片

                    技术分享图片

技术分享图片

                      技术分享图片

 

No.13. 用sklearn提供的波士顿房价数据集来实际衡量一下回归算法的好坏

准备工作

技术分享图片

查看数据集的描述信息

技术分享图片

根据上面的信息,该数据集共有506个样本实例,每个样本共有13个特征

我们本次只测试简单线性回归,因此仅选取一个特征进行研究,选取‘RM‘,即房间数量这一特征

技术分享图片

‘RM‘这个特征的索引为5,我们所选取的数据如下:

技术分享图片

在上图中,纵坐标50的地方有很多点散列,这个很可能是数据上限造成的,我们需要剔除掉这些点。

技术分享图片

切分数据集、计算回归系数、计算误差的过程如下:
技术分享图片

 

 

No.14. 封装三种误差计算方法的业务逻辑如下:

技术分享图片

简单调用测试一下:

技术分享图片

 

No.15. 调用sklearn中的MSE和MAE

技术分享图片

 

No.16. 最好的衡量线性回归的指标R Square

技术分享图片

技术分享图片

技术分享图片

技术分享图片

实际计算一下R Square

技术分享图片

将其封装到一个函数中

技术分享图片

调用一下:

技术分享图片

 

No.17. 最后,再往自定义的SimpleLinearRegression类中添加一个score方法,可以直接获取预测准确率,完整的业务逻辑如下:

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于第五十篇 入门机器学习——线性回归(Linear Regression)的主要内容,如果未能解决你的问题,请参考以下文章

机器学习TensorFlow/PyTorch/Sklearn实现的五十种机器学习模型

推荐|TensorFlow/PyTorch/Sklearn实现的五十种机器学习模型

机器学习线性回归api快速入门

机器学习基石:09 Linear Regression

机器学习------- 线性回归(Linear regression )

机器学习:局部加权线性回归(Locally Weighted Linear Regression)