机器学习之线性回归
Posted love the future
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习之线性回归相关的知识,希望对你有一定的参考价值。
1.机器学习算法
**监督学习:**已经知道类别的样本,通过一定的模型或者是特定的算法,可以预测出某种特定的结果,例如预测房价,最终可以预测出房价是什么,或者是预测肿瘤疾病,判断肿瘤是良性还是恶性。比如回归和分类
**无监督学习:**我不知道最终的结果是什么,只知道有一堆的数据,我们将它放在一起,通过特定的算法,可以得到某种结果,比如聚类问题,将某些具有相同特征的人聚在一类。
一、线性回归算法
1.线性回归的概念
回归用于预测输入变量和输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。回归模型正是表示从输入变量到输出变量之间映射的函数,回归问题的学习等价于函数拟合:选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据。
2.线性回归模型
线性回归模型会根据自变量的个数分为一元线性回归模型和多元回归模型。比如房价对着房间的大小会发生改变,只有一个自变量,属于的是一元线性回归模型。再如,房价可能会随着房间的大小还有房龄的不同而不同,或者与其他的原因有关系,就属于是多元回归模型
3.一元线性回归模型
只有单个的特征,也就是说只有一个自变量,假设房价只是因为房间的大小而变化。
将训练集中的数据用图表的形式展现,然后寻找一条与数据点最拟合的曲线,去尽可能的匹配样本点的变化趋势。为了方便理解最基本的概念,假设这条曲线对应的函数是
最终就是要确定最合适的θ0和θ1.找到最接近样本点的解,这样就是最终的线性回归线。
确定θ0和θ1的函数称为代价函数,可以确定最忧的θ0和θ1
代价函数:
求解得到J取值最小的时候,就是该函数代价最小的时候,所以此时的θ0和θ1就是最终回归线的参数值。求解这个J的最小值通常使用的是梯度下降算法
梯度下降算法
这里用到的是 Batch 梯度下降算法,这个梯度下降算法的特点是每次梯度下降都会遍历整个训练集,但当选择不同的初始参数组合,可能会找到不同的局部最小值。梯度下降算法的实现:
(求偏导,直到θi不发生变化的时候就是局部最小值)
其中,α是学习率,用来控制梯度下降时的步长。若α 很大,则说明梯度下降会很迅速;若α \\alphaα很小,则说明梯度下降会很缓慢。并且在每次迭代的时候,θ0和θ1需要同步更新。
根据公式,最终确定的θ0和θ1就是线性回归方程的参数的解,这条直线就是线性回归方程,可以通过这个线性回归方程来预测不同房屋面积的房子的价格。
4.多变量线性回归
就是自变量有多个的时候,就会有多个xi,因此回归方程也是多元的。
所以在求解参数的时候,就会有多变量的梯度下降算法:
多变量梯度下降算法:
1.特征缩放
在多变量梯度下降算法的求解中,如果不同特征的取值相差很大的话,在求解最优解的时候,收敛会特别的慢,所以有一个比较忧的方法就是通过特征缩放,来调整特征值的取值范围,保证多个特征值的取值范围更加接近。
**方法一:**将特征值除以最大值。例如size/2000
**方法二:**利用均值归一化,就是正态分布中的标准正态分布类似。
2.学习率α的选择
正常的情况下,J的取值会因为迭代的次数不断增加而减少。如下图所示:
梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们可以通过绘制迭代次数和代价函数的图来观察算法在何时趋于收敛。如果在一次迭代中,J ( θ ) 的值小于1 0 − 3(10的-3次方) ,则可以说此次迭代是收敛的。
学习率α的选择:
- α太小:收敛很慢;
- α太大:每一次迭代中J ( θ ) 可能不总是下降的,可能会导致最后不收敛;
- 选择α时,可以尝试 . . . , 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 , 1 , . . .等值
5.正规方程求解参数
事实上,我们除了梯度下降法,还有另一种方法求解我们所需要的参数θ的方法,利用正规方程进行求解。
例如以下的特征:
我们希望求得一组θ值,能够假设函数能够很好地拟合最终的Price,其实我们不难列出我们的假设函数:
这里添加了X0=1这一项
利用这种方法如果特征值的个数太多>10000时,这个方法就不是很好,需要选择梯度下降算法
6.梯度下降算法和正规方程方法的区别
本文参考:https://zhuanlan.zhihu.com/p/151408238
以上是关于机器学习之线性回归的主要内容,如果未能解决你的问题,请参考以下文章