mirror of
https://github.com/apachecn/ailearning.git
synced 2026-05-09 15:52:33 +08:00
@@ -11,6 +11,12 @@
|
||||
|
||||
### Sigmoid 函数
|
||||
|
||||
#### 回归 概念
|
||||
|
||||
假设现在有一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归。进而可以得到对这些点的拟合直线方程,那么我们根据这个回归方程,怎么进行分类呢?请看下面。
|
||||
|
||||
#### 二值型输出分类函数
|
||||
|
||||
我们想要的函数应该是: 能接受所有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出 0 或 1.或许你之前接触过具有这种性质的函数,该函数称为 `海维塞得阶跃函数(Heaviside step function)`,或者直接称为 `单位阶跃函数`。然而,海维塞得阶跃函数的问题在于: 该函数在跳跃点上从 0 瞬间跳跃到 1,这个瞬间跳跃过程有时很难处理。幸好,另一个函数也有类似的性质(可以输出 0 或者 1 的性质),且数学上更易处理,这就是 Sigmoid 函数。 Sigmoid 函数具体的计算公式如下:
|
||||
|
||||

|
||||
@@ -31,7 +37,17 @@ Sigmoid 函数的输入记为 z ,由下面公式得到:
|
||||
|
||||
### 梯度上升法
|
||||
|
||||
梯度上升法基于的思想是: 要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为 ▽ ,则函数 f(x, y) 的梯度由下式表示:
|
||||
#### 梯度的介绍
|
||||
需要一点点向量方面的数学基础
|
||||
|
||||
```
|
||||
向量 = 值 + 方向
|
||||
梯度 = 向量
|
||||
梯度 = 梯度值 + 梯度方向
|
||||
```
|
||||
|
||||
#### 梯度上升法的思想
|
||||
要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为 ▽ ,则函数 f(x, y) 的梯度由下式表示:
|
||||
|
||||

|
||||
|
||||
@@ -50,7 +66,7 @@ Sigmoid 函数的输入记为 z ,由下面公式得到:
|
||||
介绍一下几个相关的概念:
|
||||
```
|
||||
例如:y = w1x1 + w2x2 + ... + wnxn
|
||||
梯度:参考上图的例子,二维图像,x方向是代表第一个系数,也就是 w1,y方向代表第二个系数也就是 w2,这样的向量就是梯度。
|
||||
梯度:参考上图的例子,二维图像,x方向代表第一个系数,也就是 w1,y方向代表第二个系数也就是 w2,这样的向量就是梯度。
|
||||
α:上面的梯度算法的迭代公式中的阿尔法,这个代表的是移动步长。移动步长会影响最终结果的拟合程度,最好的方法就是随着迭代次数更改移动步长。
|
||||
步长通俗的理解,100米,如果我一步走10米,我需要走10步;如果一步走20米,我只需要走5步。这里的一步走多少米就是步长的意思。
|
||||
▽f(w):代表沿着梯度变化的方向。
|
||||
|
||||
@@ -1,44 +1,71 @@
|
||||
# 第8章 预测数值型数据:回归
|
||||
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>
|
||||
|
||||

|
||||

|
||||
|
||||
## 线性回归
|
||||
## 回归(Regression) 概述
|
||||
|
||||
> 回归简介
|
||||
`我们前边提到的分类的目标变量是标称型数据,而回归则是对连续型的数据做出处理,回归的目的是预测数值型数据的目标值。`
|
||||
|
||||
## 回归 场景
|
||||
|
||||
回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。
|
||||
|
||||
假如你想要预测姐姐男友汽车的功率大小,可能会这样计算:
|
||||
|
||||
HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio
|
||||
|
||||
这就是所谓的 `回归方程(regression equation)`,其中的 0.0015 和 -0.99 称作 `回归系数(regression weights)`,求这些回归系数的过程就是回归。一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。我们这里所说的,回归系数是一个向量,输入也是向量,这些运算也就是求出二者的内积。
|
||||
|
||||
说到回归,一般都是指 `线性回归(linear regression)`。线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出。
|
||||
|
||||
## 回归 原理
|
||||
|
||||
### 回归 须知概念
|
||||
|
||||
#### 1、矩阵求逆
|
||||
|
||||
因为我们在计算回归方程的回归系数时,用到的计算公式如下:
|
||||
|
||||

|
||||
|
||||
需要对矩阵求逆,因此这个方程只在逆矩阵存在的时候适用,我们在程序代码中对此作出判断。
|
||||
判断矩阵是否可逆的一个可选方案是:
|
||||
|
||||
判断矩阵的行列式是否为 0,若为 0 ,矩阵就不存在逆矩阵,不为 0 的话,矩阵才存在逆矩阵。
|
||||
|
||||
#### 2、最小二乘法
|
||||
|
||||
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。
|
||||
|
||||
### 回归 工作原理
|
||||
|
||||
```
|
||||
回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。
|
||||
假如你想要预测姐姐男友汽车的功率大小,可能会这么计算:
|
||||
HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio
|
||||
这就是所谓的回归方程(regression equation),其中的0.0015和-0.99称作回归系数(regression weights),求这些回归系数的过程就是回归。
|
||||
一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。
|
||||
说到回归,一般都是指线性回归(linear regression),所以本章里的回归和线性回归代表同一个意思。线性回归意味着可以将输入项分别乘以一些常量,
|
||||
再将结果加起来得到输出。需要说明的是,存在另一种称为非线性回归的回归模型,该模型不认同上面的做法,比如认为可能是输入的乘积。
|
||||
这样,上面的功率计算公式也可以写做:
|
||||
HorsePower = 0.0015 * annualSalary / hoursListeningToPublicRadio
|
||||
这就是一个非线性回归的例子,但是对此不进行深入讨论。
|
||||
读入数据,将数据特征想、特征标签y存储在矩阵x、y中
|
||||
验证 x^Tx 矩阵是否可逆
|
||||
使用最小二乘法求得 回归系数 w 的最佳估计
|
||||
```
|
||||
|
||||
> 线性回归特点
|
||||
### 回归 开发流程
|
||||
|
||||
```
|
||||
优点:结果易于理解,计算上不复杂。
|
||||
缺点:对非线性的数据拟合不好。
|
||||
适用于数据类型:数值型和标称型数据。
|
||||
收集数据: 采用任意方法收集数据
|
||||
准备数据: 回归需要数值型数据,标称型数据将被转换成二值型数据
|
||||
分析数据: 绘出数据的可视化二维图将有助于对数据做出理解和分析,在采用缩减法求得新回归系数之后,可以将新拟合线绘在图上作为对比
|
||||
训练算法: 找到回归系数
|
||||
测试算法: 使用 R^2 或者预测值和数据的拟合度,来分析模型的效果
|
||||
使用算法: 使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签
|
||||
```
|
||||
|
||||
> 回归的一般方法
|
||||
### 回归 算法特点
|
||||
|
||||
```
|
||||
(1) 收集数据:采用任意方法收集数据。
|
||||
(2) 准备数据:回归需要数值型数据,标称型数据将被转换成二值型数据。
|
||||
(3) 分析数据:绘出数据的可视化二维图将有助于对数据做出理解和分析,在采用缩减法求得新回归系数之后,可以将新拟合线绘在图上作为对比。
|
||||
(4) 训练算法:找到回归系数。
|
||||
(5) 测试算法:使用 R^2 或者预测值和数据的拟合度,来分析模型的效果。
|
||||
(6) 使用算法:使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。
|
||||
优点:结果易于理解,计算上不复杂。
|
||||
缺点:对非线性的数据拟合不好。
|
||||
适用于数据类型:数值型和标称型数据。
|
||||
```
|
||||
|
||||
|
||||
> 线性回归的效果图
|
||||
|
||||

|
||||
|
||||
BIN
images/8.Regression/LinearR_1.png
Normal file
BIN
images/8.Regression/LinearR_1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
Reference in New Issue
Block a user