【ng公开课笔记02】线性回归

一、主要步骤(各算法通用)

  • 构建模型
  • 构建代价函数
  • 参数优化

监督学习的工作方式:

image_1bh51fai51gi31us419km90j9jd13.png-28.8kB

二、单变量线性回归

eg:房价估计

1.构建模型
house_price

假设函数: $ h_\theta(x)=\theta_0+\theta_1x $

2.代价函数
$ J(\theta_0,\theta_1)=1/2m*\sum^n_1(h_\theta(x^i-y^i))^2 $
对代价函数的直观理解:
image_1bh52dkl91r4ku7t1chp14hl10ee9.png-293kB

image_1bh52euue1b1d1dch80q68v154lm.png-75.3kB

3.梯度下降

直观理解:从高点逐步到达局部最小值(选择的初始参数组合不同,可能最后的结果也不同)
image_1bh52helr1us51q841gqofvb1rln13.png-84.2kB

算法:
repeat:
\(\theta_j=\theta_j-\alpha\partial/\partial\theta_jJ(\theta_0,\theta_1)\ \ \ (for\ j=0\ and\ j=1)\)

\(\alpha\):学习率
注意梯度下降时,要同时更新\(\theta_0\)\(\theta_1\),即:

image_1bh53avt6194ghvblhv18q9doo2a.png-36.1kB

将代价函数带入上式求导

image_1bh539j6p1j1aomn1g7q1a8b1meg1t.png-15.7kB

三、多变量线性回归

步骤与上述类似,只是需要将X和Y向量化
即代价函数变为:
\(J(\theta_0\theta_1…\theta_n)=1/2m\sum_1^n(h_\theta(x^i)-y^i)^2\)
梯度下降算法变为(求导带入后):
Repeat{
\(\theta_j=\theta_j-\alpha/m\sum^m_1(h_\theta(x^i)-y^i)x^i_j\)
}

四、一些数据处理方法

1.特征缩放:面对多特征问题时,要保证这些特征都具有相近的尺度,这样可以使收敛速度加快。最简单的是将所有特征取值范围都缩放到[-1,1]

\(x_n=(x_n-u_n)/s_n\)

其中\(u_n\)是平均值\(s_n\)是标准差

收敛速度对比:
image_1bh53tnepat82p93d11p1v15pv2n.png-51.1kB

2.常用学习率:0.01,0.03,0.1,0.3,1,3,10.(过高可能越过最值,过低迭代次数过高)

3.非线性多项式:有时需要用曲线来适应数据,如
\(h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x^2+\theta_3x^3\)
通常需要先观察数据再决定尝试怎样的模型
还可以令:\(x_2=x_2^2\) \(x_3=x_3^3\)将模型转换为线性回归

六、正规方程

另一种参数优化方法
\(J(\theta)=a\theta^2+b\theta+c\)
X为训练集特征矩阵,y为结果向量
正规方程解\(\theta=(X^TX)^{-1}X^Ty\)

梯度下降和正规方程的比较:

梯度下降正规方程
需要选择学习率不需要
需要多次迭代一次运算得出
当特征数量n大时也能较好适用特征数量n较大则运算代价大
适用于各种类型的模型只适用于线性模型,不适合逻辑回归等其他模型

当特征变量数量小于一万,通常使用标准方程法

正规方程是不可逆时可删除几个特征

转载于:https://www.cnblogs.com/wh-kingsea/p/6952175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值