线性回归Linear Regression-模型和参数求解
来源:互联网 发布:java线程通信方式 编辑:程序博客网 时间:2024/06/14 21:56
训练集共m个样本,第i个样本
线性回归模型
1.用向量表示
- 假设函数
Hypothesis:h(x)=wTx+b - 参数
Parameters:w,b - 损失函数
CostFunction:J(w,b)=12m∑mi=1(h(x(i))−y(i))2 - 优化目标
Goal:minimizeJ(w,b)
2.参数求解方法:
2.1Gradient Descent 梯度下降
步骤:
1.初始化
w1,w2...,wd,b
2.同步更新所有参数,使J(w,b) 不断减小。(α 是学习率)
wj:=wj−α∂∂wjJ(w,b)(j=1,...,d)
b:=b−α∂∂bJ(w,b)
3.重复步骤2直至收敛推导:
计算偏导数
因为J(w,b)=12m∑i=1m(h(x(i))−y(i))2=12m∑i=1m((w1x(i)1+w2x(i)2+...+wdx(i)d+b)−y(i))2
所以∂∂wjJ(w,b)==1m∑i=1m((w1x(i)1+w2x(i)2+...+wdx(i)d+b)−y(i))x(i)j1m∑i=1m(h(x(i))−y(i))x(i)j ∂∂bJ(w,b)==1m∑i=1m((w1x(i)1+w2x(i)2+...+wdx(i)d+b)−y(i))1m∑i=1m(h(x(i))−y(i))
则参数更新公式为wj:=wj−α1m∑mi=1(h(x(i))−y(i))x(i)j
b:=b−α1m∑mi=1(h(x(i))−y(i)) 这里需要注意的一点,正确的参数更新方式为同步更新,例如输入只有一维时
y=w1x1+b
正确的参数更新:⎧⎩⎨⎪⎪⎪⎪temp0=w1−α∂∂w1J(w1,b)temp1=b−α∂∂bJ(w1,b)w1=temp0b=temp1
错误的参数更新:{w1=w1−α∂∂w1J(w1,b)b=b−α∂∂bJ(w1,b)
错误原因:没有同步更新,w1 先更新,然后再更新b,而此时更新b用了更新后的w1 ,而不是本来的w1 。
2.2Normal Equation 正规方程
解析法求解参数 :对cost function求导,令导数为0,求得参数。
- 简单情况举例
输入只有一维特征y=wx+b ,优化目标minimizeJ(w,b)=J(w,b)=12m∑mi=1(wx(i)+b−y(i))2
求导{∂∂wJ(w,b)=1m∑mi=1(wx(i)+b−y(i))x(i)∂∂bJ(w,b)=1m∑mi=1(wx(i)+b−y(i))
令导数为0,求得⎧⎩⎨⎪⎪w=∑mi=1(y(i)−b)x(i)∑mi=1x(i)2b=∑mi=1(y(i)−wx(i))m - 通常情况,多维特征
m个样本,d维特征。为了计算简便,通常把w,b 统一起来,给x增加一列1,b作为w0 ,如下:
则J(w)=12m(XW−Y)2=12m(XW−Y)T(XW−Y)
求导∂∂wJ(w)==12m(XW−Y)T(XW−Y)12m(XTXW−XTY)
令导数等于0,得到W=(XTX)−1XTY
n*n矩阵求逆运算的时间复杂度是O(n3) 。(XTX) 是(d+1)*(d+1)维,所以当特征维数d很大时,计算将花费很长时间。
2.3两种方法比较
一般,当特征维数小于10000时,正规方程计算是一个很好的方法,当特征维数多于10000时,通常采用梯度下降方法。
像线性回归这样简单的模型可通过对损失函数求导,令导数为0,解得最优解所对应的参数。但对复杂的模型来说,求导过程可能相当复杂,只能用梯度下降法不断向最优解处逼近。
参考资料:
1.Andrew Ng的Machine Learning课程
2.《机器学习》周志华
3.http://blog.csdn.net/stdcoutzyx/article/details/9101621
阅读全文
0 0
- 线性回归Linear Regression-模型和参数求解
- Linear Regression 线性回归
- linear regression 线性回归
- 线性回归 Linear Regression
- Linear regression(线性回归)
- 线性回归Linear Regression
- 线性回归 linear regression
- 线性回归(Linear Regression)
- 线性回归(linear regression)
- 线性回归(Linear Regression)
- 线性回归(Linear Regression)
- 线性回归和logistic回归 (linear regression and logistic regression)
- 线性回归和logistic回归 (linear regression and logistic regression)
- 多元线性回归模型(multivariable linear regression model)
- PRML Ch3: Linear Models For Regression 线性回归模型
- 线性回归(linear regression)
- 线性回归(linear regression)
- 线性回归(Linear Regression)
- 深入JVM——方法区
- 枚举
- RobotFramework之For循环
- 转一个几种常用排序算法的动画效果
- JavaScript中的三目运算符详解
- 线性回归Linear Regression-模型和参数求解
- (树状数组)敌兵布阵 -- HDOJ
- 安卓使用WebView 自定义错误界面
- 二叉树的最近公共祖先LCA
- python获取上月的月份、当月的月份
- D3实现TREE树状图
- [LeetCode]404. Sum of Left Leaves
- 【computer network】运输层:TCP/UDP及其原理
- 关于S5PV210使用SD卡刷机中出现问题