Machine Learning第二讲[多变量线性回归] -(二)计算参数分析
来源:互联网 发布:三端口环形器 编辑:程序博客网 时间:2024/06/07 01:11
内容来自Andrew老师课程Machine Learning的第二章内容的Computing Parameters Analytically部分。
一、Normal Equation(正规方程)
使用梯度下降法得到最优值,需要多次更新的值,而使用正规方程法只需要一次求解便可得到的值,但是其也有一些优缺点。
1、提到最优值,一般会想到利用求导的方法,如下图:
但是按照微积分的方法,将这些求导后的等式求解后得到theta0,theta1……thetan可能会比较复杂,下图所示是利用等价的方法得到的式子,可以更方便地求解theta的值(这个theta是向量)。
2、下面是一般化设计矩阵X和结果向量y的过程,如下图:
注意:
在正规方程方法中,不需要使用特征缩放,即使是0≤x1≤1,0≤x2≤1000,0≤x3≤10^(-5)也没有关系,仍然可以直接使用,不需要特征缩放。
但是在使用梯度下降算法时,特征缩放非常重要。
3、何时使用梯度下降?何时使用正规方程?
m training examples, n features:
若n比较小,则正规方程比较适合,若n比较大,则需要使用梯度下降法。例如,n=100或者n=1000可以使用正规方程,但是当n=10000时,就需要考虑一下使用正规方程是否开销较大,n=10000时一般使用梯度下降算法(也不一定)。当n=10^6这种比较大的数时,一般使用梯度下降算法。
总结:若特征数并不大,则正规方程是一个很好的求theta的方法。具体来说,如果特征变量数量小于1w,通常使用正规方程而不使用梯度下降。
在后续学习逻辑回归等算法时,我们仍然需要使用梯度下降方法。对于线性回归模型,正规方程可能是比梯度下降更快地方法,但是在一些其他的算法中,可能只能使用梯度下降法。因此需要根据具体问题和特征数量的数目大小来选择使用哪种算法。
二、Normal Equation Noninvertibility(正规方程的可逆性)
对于有m个样本,n个feature的训练集,有X是m*(n+1)的矩阵,是(n+1)×(n+1)的方阵,又因为,如果||=0,即是不可逆矩阵,那应该如何处理?
1、关于正规方程的不可逆性:
2、当是不可逆矩阵时,如何处理?
S1:检查是否有冗余的特征,例如上例中的x1和x2(米和英尺之间是线性相关的),则删除其一,直到其不再含有冗余的特征变量。
S2:如果删除冗余特征之后仍然不可逆,则检查特征数是否过多,在不影响训练过程的前提下,可删除一些特征。
- Machine Learning第二讲[多变量线性回归] -(二)计算参数分析
- Machine Learning第二讲[多变量线性回归] --(一)多变量线性回归
- Machine Learning第二讲[多变量线性回归] --(三)向量化
- Machine Learning:二(多变量线性回归问题)
- 多变量线性回归(二)
- Machine Learning第一讲[单变量线性回归] --(二)参数学习
- Deep learning:三(多变量的线性回归)
- 机器学习 Machine Learning(by Andrew Ng)----第三章 多变量线性回归(Linear Regression with multiple variable)
- 《Machine Learning》第二讲 线性回归与梯度下降
- Andrew Ng 《MachineLearning》第二讲——多变量线性回归(LinearRegression with Multiple Variables)&梯度下降
- 多变量线性回归
- 多变量线性回归
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
- Stanford机器学习---第二讲. 多变量线性回归Linear Regression with multiple variables
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
- 第二讲.Linear Regression with multiple variable (多变量线性回归)
- 第二讲-------多变量线性回归 Linear Regression with multiple variables
- Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable
- COM 技术介绍(内附加学习链接,后期待学习)
- oracle10g dg 创建闪回点报错
- SeDebugPrivilege
- DiskLruCache理解使用心得
- opencv 图像形态学转换
- Machine Learning第二讲[多变量线性回归] -(二)计算参数分析
- ADO.NET连接字符串大全
- POJ 1995 Raising Module Numbers
- 如何用9行Python代码编写一个简易神经网络
- [More Effective C++]]指针与引用的区别
- UVa 401 Palindromes(常量数组+遍历)
- 线程范围内共享数据(二)
- Eclipse中Android项目运行时出现Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse l
- ZOJ