regression

时间:2019-06-15
本文章向大家介绍regression,主要包括regression使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

单变量线性回归univariate linear regression

代价函数square error cost function : \(J(\theta)=\frac{1}{2m}\sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2\)
\(2m\)\(2\)是为了消去后续求导时的\(2\)
其中单变量时 \(h_{\theta}(x) =\theta_0 + \theta_1 x\) (h是hypothesis的意思)
上标(i)是指第i组训练数据

梯度下降法gradient decent:
脑补一个三维图像:\(\theta_0,\theta_1,J(\theta)\)
\(\theta_i -= \alpha \frac{\partial}{\partial \theta_i}h(\theta)\)
(导为正数时,\(\theta\)应减小;导为负数时,\(\theta\)应增大。 陡的时候快,缓的时候慢)
随着过程的执行, 可以让\(\alpha\)递减去更好的接近(不过即使\(\alpha\)是定值也能走到局部最优点)
只要 \(\alpha\)不会过大 (过大时J可能甚至越大,脑补一个人在盆地两边跳来跳去越跳越高)
无论单变量还是多变量,这种线性回归代价函数一定是bowl shape
当J经过一次迭代后变化不超过原来的\(10^-3\)时认为converage(如果是陡完平一段继续陡怎么办?)

多变量线性回归multivariate linear regression

\(h_{\theta} = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n\) 其中\(x_0 = 1\)
\(J(\theta)=\frac{1}{2m}\sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)})^2\)
\(\theta_j\) -= \(\alpha \frac{\partial}{\partial \theta_i}h(\theta) = \alpha \frac 1 m \sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})x^{(i)}_j\)
\(x^{(i)}_j\)表示第i组训练数据的第j个feature

(脑补表格:每列一个特征,最左添加一列\(x0=1\),最后一列是标准值y,每行一个example)
\(X\)\(m\times(n+1)\)矩阵,\(Y\)\(m\times1\)列向量
\(theta\)\((n+1)\times1\)列向量,\(H\)\(m\times1\)列向量

H= X * theta
del = H - Y
J = sum(del.^2) / (2 * m)
theta -= alpha * (X’ * del) / m

为便于观察并减少迭代次数,我们需要对特征进行缩放,使其范围不至于过大,也不至于过小
例如\(\alpha\frac{x-min}{max-min}\), \(\alpha\frac{x-mean}{max-min}\) 具体情况而定
注意缩放后,predict时的特征也要对应用同种方式缩放
注意不要一个for循环过去把\(x_0\)也改了(另外注意octave是从一开始存的)

线性回归其他函数设计

如给定房子的长和宽和房价,特征不应是长和宽两个,而应该是占地面积
如给定数据点明显不是直线,可以考虑\(\theta_0 + \theta_1 x + \theta_2 x^2\)之类的,x是同一个feature, 令\(x_i\)\(x^i\)转多变量问题
根号和ln其实长得很像

正规方程normal equation

\(\theta = (X^TX)^{-1}X^TY\)
其中\(X\)\(m*(n+1)\), \(Y\)\(m*1\)
求逆即使是伪逆也能算对
使用时建议\(m>n\)
优势:不必要缩放features,不需要跑多次调整\(\alpha\)
效率比较:梯度下降(省去重复运算)是\(n*m*iter\),这个是\(n^3+n^2m\)
n大的时候这个方法肯定不行。但一般来说n应该不大?m比较大?

原文地址:https://www.cnblogs.com/acha/p/11028892.html