监督学习线性回归算法
Posted kseven77
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监督学习线性回归算法相关的知识,希望对你有一定的参考价值。
假设(基于二维)
训练集
[
egin{bmatrix}
1&x_{11}&{cdots}&x_{1n}1&x_{21}&{cdots}&x_{2n}{vdots}&{vdots}&{ddots}&{vdots}1&x_{m1}&{cdots}&x_{mn}end{bmatrix}*
egin{bmatrix}
heta_{0} heta_{1}{vdots} heta_{n}end{bmatrix}=
egin{bmatrix}
y_{1}y_{2}{vdots}y_{n}end{bmatrix}
]
表达式
[h_ heta(x)= heta_0+ heta_1x_1+...+ heta_nx_n...x为向量]
定义代价函数
[J_ heta( heta_0, heta_1, heta_2,..., heta_n)=frac{1}{2m}sum_{i=1}^{m}({h_ heta(x^i)-y(x^i)})^2]
梯度下降法
[min_{ heta_0... heta_n}J( heta_0, heta_1, heta_2,..., heta_n)]
[ heta_j= heta_j-alphafrac{partial}{partial heta_j}J( heta_0, heta_1, heta_2,..., heta_n)...alpha为学习率]
故
[frac{partial}{partial heta_j}J( heta_0, heta_1, heta_2,..., heta_n)=frac{1}{m}sum_{i=1}^{m}({h_ heta(x^i)-y(x^i)})x^i]
带入得
[ heta_j= heta_j-alphafrac{1}{m}sum_{i=1}^{m}({h_ heta(x^i)-y(x^i)})x^{ij}]
梯度下降法实现
定义精度为P
[当 heta_j^n- heta_j^{n-1}<=P时递归停止]
初始化
[( heta_0, heta_1, heta_2,..., heta_n)为(0,0,0,...,0)或者其他]
执行递归
[ heta_j一步一步变化直到达到J( heta)最小值]
为什么可以实现?
该图为取(( heta_0... heta_{j-1}, heta_{j+1}... heta_n)为固定值时J( heta)的切片)
当
[ heta_j=x_1时frac{partial}{partial heta_j}J( heta)<0故 heta_j增加逐渐靠近h,同时精度P决定递归是否停止]
当( heta_j=x_2时同理)
学习率(alpha)
过大导致可能不收敛
过小导致收敛太慢
故多次实验,取合适的(alpha)
[alpha=egin{bmatrix}0.001&0.01&0.1&1&10end{bmatrix}]
### 特征缩放
[egin{bmatrix}x_{1i}x_{2i}{vdots}x_{ni}end{bmatrix}=egin{bmatrix}10001001{vdots}1020end{bmatrix}->1000*egin{bmatrix}1.0001.001{vdots}1.020end{bmatrix}]
若(h_ heta= heta_0+ heta_1x_1^2+ heta_1x_2^3+...)
可令[x_1^2=t_1,x_2^3=t_2...] 即可实现
正则方程实现
[ heta=(X^TX)^{-1}X^TY...(X^T为X的转置,X^{-1}为X的逆)]
以上是关于监督学习线性回归算法的主要内容,如果未能解决你的问题,请参考以下文章