小白的机器学习笔记系列之二——从线性感知器到线性回归

1. 什么是线性回归模型?

上一篇文章,我们讲了一个非常朴素而直观的学习模型——线性感知器,这个学习模型主要用于分类问题, 如我们之前说到的原鸢尾花分类例子。那么,对应另外一些非分类问题,比如信用额度评估,房屋价格评估等,我们又有什么办法呢?

通过对线性感知器进行一些改良,我们得到一个称作线性回归的学习算法,可以用来解决这类问题。

2. 举个栗子

我们以房屋价格评估为例,来看一下线性回归是如何实现的。假设影响房屋价格的因素有地上建筑面积, 地下室面积, 占地面积,卧室数, 洗手间数, 楼层数,景观,房屋状况,建造年限这些因素, 暂且不考虑地段和不动产市场的波动,并且假设房屋的价格和以上房屋的基本情况成线性关系。

那么我们是否可以找到一组合适的权重参数,使得他们的线性组合恰好是房屋的价格?

让我们用数学的语言来描述以上问题。

输入参数x:

卧室数 (x1)

洗手间数(x2)

地上建筑面积(x3)

地下室面积(x4)

房屋占地面积(x5)

楼层数(x6)

景观(x7) (0 - 5 打分, 5分为最好,0分为最差)

房屋状况(x8) ( 0 - 5 打分, 5分为最好,0分为最差)

建造年限(x9)

权重参数w:

对应每一组输入参数xi都分配一个权重参数记作wi,共有9个权重参数。

输出predict_pricepredict_price:

3. 最优化权重参数

此时,我们并不知道输入参数中哪些比较重要,权重值应当比较大,哪些比较次要, 数值应当比较小。那么要如何来获得这个最优权重参数呢?

在这里我们必须注意到“最优”两个字,最优就是意味着衡量评估的正确率达到最佳。实际上,评估价格很难完全等同于实际成交价格,但是我们可以衡量评估价格和实际成交价格的差距。

我们将xy放到二维平面里,可以这样来理解线性回归,下图左中的空心点是房屋的实际成交价格,紫色小点则是我们的预测价格,空心点到实心点的距离就是我们预测的偏差值,而我们的任务就是求一组权重值w使得整个偏差值最小。但x的个数增加到2个,则线性函数就是个平面,如右图所示,实际上但x大于2个以上则就无法再用图像来表示了。

图一

很自然的,我们会想到用方差来衡量。考虑全部的样本数据,我们可以通过以下算式求得均方差。

此处,我们可以把最优化权重参数这个问题归结为对全部的样本,如何获得最小化方差。为了解决这个问题,我们首先要矢量化参数。

4. 矢量化参数

为了方便计算,我们将以上参数矢量化。在机器学习中,我们需要进行大量的数值计算,比如累加,乘积等,相比使用循环语句,矢量化可以大大提高计算效率。

输入参数矢量化

每组输入参数构建成列矢量形式如下:

x = (x1,x2,x3,x4,x5,x6,x7,x8,x9)

假设共有N组这样的训练数据, 每一组输出参数记为

构建输入矩阵(N x 9):

权重参数矢量化

我们将w1w9权重参数也构建成列矢量 (9 x 1):

样本标签矢量化

我们把输入样本的标签也构造成列矢量 (N x 1):

5. 计算最优权重参数

如果我们把所有样本评估价格的方差加在一起,再除以样本个数,就可以求得该样本的平均方差。那我们矢量化后的均方差计算公式,则可表示如下。

我们要获得正确率最大,也就是要最小化这个均方差,我们可以用求极点的方法来获得,即对该计算公式求W

W

的导数,并令其为0。

此处,我们发现W

W

可以通过简单的矩阵变化来得到。

此处

X+被称为伪逆矩阵。我们知道逆矩阵的存在条件是比较苛刻的,但是线性代数的知识告诉我们任何矩阵必存在其相应的伪逆矩阵。

线性回归是一个非常简单朴素的算法,只要一步运算我们就可以得到我们需要的权重参数。

6. 线性回归算法总结

第一步:构造输入参数矩阵X和 输入样本标签矢量Y

如下:

第二步:计算伪逆矩阵

第三步:获得最优权重

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181119G0JBXH00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券