|
1 | 1 | # 第8章 预测数值型数据:回归 |
2 | 2 | <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script> |
3 | 3 |
|
4 | | - |
| 4 | + |
5 | 5 |
|
6 | | -## 线性回归 |
| 6 | +## 回归(Regression) 概述 |
7 | 7 |
|
8 | | -> 回归简介 |
| 8 | +`我们前边提到的分类的目标变量是标称型数据,而回归则是对连续型的数据做出处理,回归的目的是预测数值型数据的目标值。` |
| 9 | + |
| 10 | +## 回归 场景 |
| 11 | + |
| 12 | +回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。 |
| 13 | + |
| 14 | +假如你想要预测姐姐男友汽车的功率大小,可能会这样计算: |
| 15 | + |
| 16 | +HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio |
| 17 | + |
| 18 | +这就是所谓的 `回归方程(regression equation)`,其中的 0.0015 和 -0.99 称作 `回归系数(regression weights)`,求这些回归系数的过程就是回归。一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。我们这里所说的,回归系数是一个向量,输入也是向量,这些运算也就是求出二者的内积。 |
| 19 | + |
| 20 | +说到回归,一般都是指 `线性回归(linear regression)`。线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出。 |
| 21 | + |
| 22 | +## 回归 原理 |
| 23 | + |
| 24 | +### 回归 须知概念 |
| 25 | + |
| 26 | +#### 1、矩阵求逆 |
| 27 | + |
| 28 | +因为我们在计算回归方程的回归系数时,用到的计算公式如下: |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +需要对矩阵求逆,因此这个方程只在逆矩阵存在的时候适用,我们在程序代码中对此作出判断。 |
| 33 | +判断矩阵是否可逆的一个可选方案是: |
| 34 | + |
| 35 | +判断矩阵的行列式是否为 0,若为 0 ,矩阵就不存在逆矩阵,不为 0 的话,矩阵才存在逆矩阵。 |
| 36 | + |
| 37 | +#### 2、最小二乘法 |
| 38 | + |
| 39 | +最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。 |
| 40 | + |
| 41 | +### 回归 工作原理 |
9 | 42 |
|
10 | 43 | ``` |
11 | | - 回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。 |
12 | | - 假如你想要预测姐姐男友汽车的功率大小,可能会这么计算: |
13 | | - HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio |
14 | | - 这就是所谓的回归方程(regression equation),其中的0.0015和-0.99称作回归系数(regression weights),求这些回归系数的过程就是回归。 |
15 | | - 一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。 |
16 | | - 说到回归,一般都是指线性回归(linear regression),所以本章里的回归和线性回归代表同一个意思。线性回归意味着可以将输入项分别乘以一些常量, |
17 | | - 再将结果加起来得到输出。需要说明的是,存在另一种称为非线性回归的回归模型,该模型不认同上面的做法,比如认为可能是输入的乘积。 |
18 | | - 这样,上面的功率计算公式也可以写做: |
19 | | - HorsePower = 0.0015 * annualSalary / hoursListeningToPublicRadio |
20 | | - 这就是一个非线性回归的例子,但是对此不进行深入讨论。 |
| 44 | +读入数据,将数据特征想、特征标签y存储在矩阵x、y中 |
| 45 | +验证 x^Tx 矩阵是否可逆 |
| 46 | +使用最小二乘法求得 回归系数 w 的最佳估计 |
21 | 47 | ``` |
22 | 48 |
|
23 | | -> 线性回归特点 |
| 49 | +### 回归 开发流程 |
24 | 50 |
|
25 | 51 | ``` |
26 | | - 优点:结果易于理解,计算上不复杂。 |
27 | | - 缺点:对非线性的数据拟合不好。 |
28 | | - 适用于数据类型:数值型和标称型数据。 |
| 52 | +收集数据: 采用任意方法收集数据 |
| 53 | +准备数据: 回归需要数值型数据,标称型数据将被转换成二值型数据 |
| 54 | +分析数据: 绘出数据的可视化二维图将有助于对数据做出理解和分析,在采用缩减法求得新回归系数之后,可以将新拟合线绘在图上作为对比 |
| 55 | +训练算法: 找到回归系数 |
| 56 | +测试算法: 使用 R^2 或者预测值和数据的拟合度,来分析模型的效果 |
| 57 | +使用算法: 使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签 |
29 | 58 | ``` |
30 | 59 |
|
31 | | -> 回归的一般方法 |
| 60 | +### 回归 算法特点 |
32 | 61 |
|
33 | 62 | ``` |
34 | | - (1) 收集数据:采用任意方法收集数据。 |
35 | | - (2) 准备数据:回归需要数值型数据,标称型数据将被转换成二值型数据。 |
36 | | - (3) 分析数据:绘出数据的可视化二维图将有助于对数据做出理解和分析,在采用缩减法求得新回归系数之后,可以将新拟合线绘在图上作为对比。 |
37 | | - (4) 训练算法:找到回归系数。 |
38 | | - (5) 测试算法:使用 R^2 或者预测值和数据的拟合度,来分析模型的效果。 |
39 | | - (6) 使用算法:使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。 |
| 63 | +优点:结果易于理解,计算上不复杂。 |
| 64 | +缺点:对非线性的数据拟合不好。 |
| 65 | +适用于数据类型:数值型和标称型数据。 |
40 | 66 | ``` |
41 | 67 |
|
| 68 | + |
42 | 69 | > 线性回归的效果图 |
43 | 70 |
|
44 | 71 |  |
|
0 commit comments