http://blog.csdn.net/abcjennifer/article/details/7700772
Linear Regression with multiple variables
多变量线性回归
1. 多变量假设:输出由多维输入决定,即输入为多维特征
所谓多参数线即每个输入x有(n+1)维[x0……xn]
2. 梯度递减(gradient descent)
2.1 归一化feature,所以用到了feature scaling,
即将所有feature归一化到[-1,1]区间内
2.2 梯度下降算法中另一关键点就是机器学习率的设计:
设计准则是保证每一步迭代后都保证能使cost function下降。
这是cost function顺利下降的情况:
原因如右图所示,由于学习率过大,使得随着迭代次数的增加,J(θ)越跳越大,造成无法收敛的情况。
解决方法:减小学习率
如何选取学习率:
测试α=0.001,收敛太慢(cost function下降太慢),测试0.01,过了?那就0.003……
2.3 二次方程或者三次方程。考虑到二次方程的话总会到最高点后随着size↑,price↓,
随着房子面积增大,住房价格的变化趋于稳定或者说越往右越平缓。因此线性回归并没有很好拟合训练数据。
我们把此类情况称为欠拟合(underfitting),或者叫作叫做高偏差(bias)。
高偏差这个词是 machine learning 的研究初期传下来的一个专业名词,具体到这个问题,
意思就是说如果用线性回归这个算法去拟合训练数据,
那么该算法实际上会产生一个非常大的偏差或者说存在一个很强的偏见。
http://doc.okbase.net/jianxinzhou/archive/111322.html
不合常理;因此选用三次方程进行拟合。
这里归一化是一个关键。或者有另一种拟合方程,如图粉红色曲线拟合所示:
3. 正规方程组(Normal Equation)
与gradient descent平行的一种方法为Normal Equation,它采用线性代数中非迭代的方法.
我们想要找到使cost function 最小的θ,就是找到使得导数取0时的参数θ
X是m×(n+1)的矩阵,y是m×1的矩阵
上图中为什么x要加上一列1呢?因为经常设置X(i)0=1;
3.1 不可逆矩阵正规方程组(矩阵求逆)
对于有m个样本,每个拥有n个feature的一个训练集,有X是m×(n+1)的矩阵,
XTX是(n+1)×(n+1)的方阵,
那么对于参数θ的计算就出现了一个问题,
如果|XTX|=0,即XTX不可求逆矩阵怎么办?这时可以进行冗余feature的删除(m<=n的情况,feature过多。
或者正则化(Regularation)
多的变量(特征),同时只有非常少的训练数据,会导致出现过度拟合的问题。
因此为了解决过度拟合,有以下两个办法。
逻辑回归问题都可以通过构造多项式来解决。但是,
你将逐渐发现其实还有更为强大的非线性分类器可以用来解决多项式回归问题.
http://www.cnblogs.com/jianxinzhou/p/4083921.html
https://www.zhihu.com/question/20924039
为什么多项式
泰勒展开式就行了,任何函数都可以用多项式的方式去趋近,log x,lnx,等等都可以去趋近,
而不同的函数曲线其实就是这些基础函数的组合,理所当然也可以用多项式去趋近
泰勒公式一句话描述:就是用多项式函数去逼近光滑函数。
乘法,加法,来表示光滑函.
过拟合(适合于自己这个测试用例,对需要分类的真实样本而言,实用性可想而知的低)
https://www.zhihu.com/question/20924039
0范数,向量中非零元素的个数。