diff --git a/docs/5.Logistic回归.md b/docs/5.Logistic回归.md index 2f80a147..b598da29 100644 --- a/docs/5.Logistic回归.md +++ b/docs/5.Logistic回归.md @@ -11,6 +11,12 @@ ### Sigmoid 函数 +#### 回归 概念 + +假设现在有一些数据点,我们用一条直线对这些点进行拟合(这条直线称为最佳拟合直线),这个拟合的过程就叫做回归。进而可以得到对这些点的拟合直线方程,那么我们根据这个回归方程,怎么进行分类呢?请看下面。 + +#### 二值型输出分类函数 + 我们想要的函数应该是: 能接受所有的输入然后预测出类别。例如,在两个类的情况下,上述函数输出 0 或 1.或许你之前接触过具有这种性质的函数,该函数称为 `海维塞得阶跃函数(Heaviside step function)`,或者直接称为 `单位阶跃函数`。然而,海维塞得阶跃函数的问题在于: 该函数在跳跃点上从 0 瞬间跳跃到 1,这个瞬间跳跃过程有时很难处理。幸好,另一个函数也有类似的性质(可以输出 0 或者 1 的性质),且数学上更易处理,这就是 Sigmoid 函数。 Sigmoid 函数具体的计算公式如下: ![Sigmoid 函数计算公式](../images/5.Logistic/LR_1.png) @@ -31,7 +37,17 @@ Sigmoid 函数的输入记为 z ,由下面公式得到: ### 梯度上升法 -梯度上升法基于的思想是: 要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为 ▽ ,则函数 f(x, y) 的梯度由下式表示: +#### 梯度的介绍 +需要一点点向量方面的数学基础 + +``` +向量 = 值 + 方向 +梯度 = 向量 +梯度 = 梯度值 + 梯度方向 +``` + +#### 梯度上升法的思想 +要找到某函数的最大值,最好的方法是沿着该函数的梯度方向探寻。如果梯度记为 ▽ ,则函数 f(x, y) 的梯度由下式表示: ![梯度上升计算公式](../images/5.Logistic/LR_5.png) @@ -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):代表沿着梯度变化的方向。 diff --git a/docs/8.预测数值型数据:回归.md b/docs/8.预测数值型数据:回归.md index a176198d..026c1e02 100644 --- a/docs/8.预测数值型数据:回归.md +++ b/docs/8.预测数值型数据:回归.md @@ -1,44 +1,71 @@ # 第8章 预测数值型数据:回归 -![预测数值型数据回归首页](/images/8.Regression/预测数值型数据回归首页.png "回归Regression首页") +![预测数值型数据回归首页](../images/8.Regression/预测数值型数据回归首页.png "回归Regression首页") -## 线性回归 +## 回归(Regression) 概述 -> 回归简介 +`我们前边提到的分类的目标变量是标称型数据,而回归则是对连续型的数据做出处理,回归的目的是预测数值型数据的目标值。` + +## 回归 场景 + +回归的目的是预测数值型的目标值。最直接的办法是依据输入写出一个目标值的计算公式。 + +假如你想要预测姐姐男友汽车的功率大小,可能会这样计算: + +HorsePower = 0.0015 * annualSalary - 0.99 * hoursListeningToPublicRadio + +这就是所谓的 `回归方程(regression equation)`,其中的 0.0015 和 -0.99 称作 `回归系数(regression weights)`,求这些回归系数的过程就是回归。一旦有了这些回归系数,再给定输入,做预测就非常容易了。具体的做法是用回归系数乘以输入值,再将结果全部加在一起,就得到了预测值。我们这里所说的,回归系数是一个向量,输入也是向量,这些运算也就是求出二者的内积。 + +说到回归,一般都是指 `线性回归(linear regression)`。线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出。 + +## 回归 原理 + +### 回归 须知概念 + +#### 1、矩阵求逆 + +因为我们在计算回归方程的回归系数时,用到的计算公式如下: + +![回归系数的最佳估计计算公式](../images/8.Regression/LinearR_1.png) + +需要对矩阵求逆,因此这个方程只在逆矩阵存在的时候适用,我们在程序代码中对此作出判断。 +判断矩阵是否可逆的一个可选方案是: + +判断矩阵的行列式是否为 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) 使用算法:使用回归,可以在给定输入的时候预测出一个数值,这是对分类方法的提升,因为这样可以预测连续型数据而不仅仅是离散的类别标签。 +优点:结果易于理解,计算上不复杂。 +缺点:对非线性的数据拟合不好。 +适用于数据类型:数值型和标称型数据。 ``` + > 线性回归的效果图 ![线性回归效果图](/images/8.Regression/线性回归效果图.png "线性回归效果图") diff --git a/images/8.Regression/LinearR_1.png b/images/8.Regression/LinearR_1.png new file mode 100644 index 00000000..01cac4f8 Binary files /dev/null and b/images/8.Regression/LinearR_1.png differ