【Machine Learning】3.多元线性回归
2015-11-04 14:47
281 查看
多元特征
线性问题中带有多个变量的问题称为“多元线性回归”问题。
假说函数
通式:h_theta(x) = theta_0+theta_1*x_1+theta_2*x_2+...+theta_n*x_n
向量化:h_theta(X) = X'Theta (这里令x_0=1)
向量化的技巧:两个矩阵相乘,维数需要对应。
开销函数
J(Theta) = SUM{i = 1 -> i = m}((h(X)-Y)^2)/(2*m)
多元的梯度递减
loop until convergence:
Theta = Theta - alpha*SUM{i = 1 -> i =m}(X*(h(X)-Y))/m
由于多元下的梯度下降可能由于特征值得范围区别很大,导致下降速度很慢,因此我们可以考虑通过将特征的范围归一化,理想地有
-1 <= x_i <= 1 或者 -0.5<= x_i <=0.5
范围并没有特定的要求,只需满足特征之间的差距不要太大。两个方法可以帮助我们实现,特征放缩和均值归一化。特征放缩可以除以特征的取值范围,使特征值保持在[0,1],利用(x_i-mu(x_i))/range(x_i)使特征值保持在[-0.5, 0.5]或者(x_i-mu(x_i))/Sigma(x_i)
可以通过利用导数的定义,利用某点前后两个很靠近的值除以他们的横坐标所得的值近似于该点的导数,从而验证之前的求得导数是否是正确的。
Normal Equation
Normal Equation 是一种不用迭代即可得到最优解的方法
选择梯度下降还是Normal Equation的时机:
吴恩达建议在n超过10000的时候应该考虑抛弃normal equation,因此一个10000*10000做求逆运算会很耗时
根据公式可知normal equation要求是
可逆的,因此在用matlab或octave计算时,要采用pinv而非inv计算。
may
be noninvertible. The common causes are:
Redundant features, where two features are very closely related (i.e. they are linearly dependent)
Too many features (e.g.
).
In this case, delete some features or use "regularization" (to be explained in a later lesson).
参考:https://share.coursera.org/wiki/index.php/ML:Linear_Regression_with_Multiple_Variables
线性问题中带有多个变量的问题称为“多元线性回归”问题。
假说函数
通式:h_theta(x) = theta_0+theta_1*x_1+theta_2*x_2+...+theta_n*x_n
向量化:h_theta(X) = X'Theta (这里令x_0=1)
向量化的技巧:两个矩阵相乘,维数需要对应。
开销函数
J(Theta) = SUM{i = 1 -> i = m}((h(X)-Y)^2)/(2*m)
多元的梯度递减
loop until convergence:
Theta = Theta - alpha*SUM{i = 1 -> i =m}(X*(h(X)-Y))/m
由于多元下的梯度下降可能由于特征值得范围区别很大,导致下降速度很慢,因此我们可以考虑通过将特征的范围归一化,理想地有
-1 <= x_i <= 1 或者 -0.5<= x_i <=0.5
范围并没有特定的要求,只需满足特征之间的差距不要太大。两个方法可以帮助我们实现,特征放缩和均值归一化。特征放缩可以除以特征的取值范围,使特征值保持在[0,1],利用(x_i-mu(x_i))/range(x_i)使特征值保持在[-0.5, 0.5]或者(x_i-mu(x_i))/Sigma(x_i)
可以通过利用导数的定义,利用某点前后两个很靠近的值除以他们的横坐标所得的值近似于该点的导数,从而验证之前的求得导数是否是正确的。
Normal Equation
Normal Equation 是一种不用迭代即可得到最优解的方法
选择梯度下降还是Normal Equation的时机:
Gradient Descent | Normal Equation |
---|---|
Need to choose alpha | No need to choose alpha |
Needs many iterations | No need to iterate |
Works well when n is large | Slow if n is very large |
根据公式可知normal equation要求是
可逆的,因此在用matlab或octave计算时,要采用pinv而非inv计算。
may
be noninvertible. The common causes are:
Redundant features, where two features are very closely related (i.e. they are linearly dependent)
Too many features (e.g.
).
In this case, delete some features or use "regularization" (to be explained in a later lesson).
参考:https://share.coursera.org/wiki/index.php/ML:Linear_Regression_with_Multiple_Variables
相关文章推荐
- 建议50:Python中的高级数据结构
- java.lang.UnsupportedClassVersionError:Unsupported major.minor version 51.0
- linux命令学习(1):ls命令(档案与目录清单)
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- ARM内存边界对齐以及sizeof问题
- A23平台开发记录
- 获取当前数据库(mysql)所有表的字段内容
- java获取两个字符串中的最大匹配
- Xcode7添加动态库
- 如何下载谷歌地球高程为SHP格式的等高线
- Python 入門語法和類型
- Share Point开发部署WSP解决方案包
- 代理模式
- 生活需要乐趣
- bootstrap模态框垂直居中显示
- 放松跑、间歇跑、节奏跑和LSD
- 建议47:使用logging记录日志信息
- jsp 静态include和动态jsp:include的区别
- 名企产品名宿谈产品那些事
- iOS数据库的使用方法(FMDB)