- 机器学习基础与线性模型(一)
- 多元线性模型(二)
- 逻辑回归(三)
1、多元线性模型概念
当线性模型中有超过两个的待定参数(即超过一个特征)时,需要用到多元线性模型
对于多元线性模型,其可列出如下函数
h_\theta(x)=\theta_0+\theta_1 x_1+\theta_2 x_2+...+\theta_nx_n
对于参数θ,可列出如下参数向量
\theta=\left [\begin{array}{c} \theta_0\\\theta_1\\ \theta_2\\ ...\\ \theta_n\\ \end{array} \right]
假如把把常量视作一个特征恒为1的值,则可以列出如下特征向量
x=\left [\begin{array}{c} x_0\\x_1\\ x_2\\ ...\\ x_n\\ \end{array} \right]
所以就可以得到多元线性模型的最终函数,如下
h(x)=\theta^T x
2、多元梯度下降
对于多元线性模型,也可以的得到一个类似的代价函数如下
J\left( {\theta_{0}},{\theta_{1}}...{\theta_{n}} \right)=\frac{1}{2m}\sum\limits_{i=1}^{m}{{{\left( h_{\theta} \left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}
所以对于多元线性模型,其梯度下降算法为
\theta _j:=\theta _j-\alpha \frac {\partial}{\partial \theta_j} J(\theta_0,\theta_1...\theta_n)
整理后可以得到
{{\theta }_{j}}:={{\theta }_{j}}-a\frac{1}{m}\sum\limits_{i=1}^{m}{({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}})}x_{j}^{(i)}
2.1、特征缩放
特征缩放是将不同特征的取值范围缩放到相同的取值范围内
例如有一数据集有两个特征,取值分别为0-2000和1-5,其代价函数图像会比较扁从而影响梯度下降的效率
实际上其缩放方式就是{{x}_{n}}=\frac{{{x}_{n}}-{{\mu}_{n}}}{{{s}_{n}}}其中{\mu_{n}}是平均值{s_n}是标准差
2.2、学习率
可以使用迭代次数/代价函数曲线来预测何时算法趋向于收敛
可以每隔十倍取一学习率进行试验,从而找到一个最优学习率
3、特征和多项式回归
如房价预测问题,h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}\times{frontage}+{\theta_{2}}\times{depth},x_1=frontage(临街宽度),x_2=depth(纵向深度),x=frontage*depth=area(面积),则{h_{\theta}}\left( x \right)={\theta_{0}}+{\theta_{1}}x
当线性模型不适用于所有数据时,需要使用曲线来得到更好的结果,通常我们需要先观察数据然后再决定准备尝试怎样的模型。例如使用二次模型可能会导致房屋面积增加但房价下降的情况出现,所以可以使用三次模型h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3},这时可以令{{x}_{1}}=x_{1}^{1},{{x}_{2}}=x_{2}^{2},{{x}_{3}}=x_{3}^{3}来使其转化为一个线性模型
使用多项式回归模型时应考虑进行特征缩放
4、正规方程
正规方程用于计算参数最小值的另一种方法,其公式为\theta=(X^TX)^{-1}X^TY,其中Y为预测值组成的矩阵,X为特征向量组成的矩阵,其中X中需要在特征中加一个恒为1的特征
例如有一数据集:
| size | number of bedrooms | number of floors | age of home | price |
|---|---|---|---|---|
| 2104 | 5 | 1 | 45 | 460 |
| 1416 | 3 | 2 | 40 | 232 |
| 1534 | 3 | 2 | 30 | 315 |
| 852 | 2 | 1 | 36 | 178 |
则此时X应为
\left[\begin{matrix}1& 2104& 5& 1& 45\\1& 1416& 3& 2& 40\\1& 1534& 3& 2& 30\\1& 852& 2& 1& 36\\ \end{matrix} \right]
Y此时应为
\left[\begin{matrix} 460\\232\\315\\178\\ \end{matrix} \right]




