博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性回归
阅读量:5061 次
发布时间:2019-06-12

本文共 1065 字,大约阅读时间需要 3 分钟。

线性回归公式:hθ(x) = θ01x1+...+θnxn  ; 设x0=1

           =θTx

所有的求解方法都是在求θ,目标是让J(θ)最小化;J(θ)=1/2∑(hθ(x(i))-y(i))2  i=1...m(训练集的数量)

 

如何求θ

  方法1:梯度下降法:θj:=θj-α∂J(θ)/∂θj,其中α是学习速率,代表着你一步走多长,一般由人工指定,判断收敛的条件为多次叠代后θ的值稳定了

          因为∂J(θ)/∂θj=∂(1/2(hθ(x)-y)2)/∂θj

                  =2*1/2(hθ(x)-y)∂(hθ(x)-y)/∂θj

                  =(hθ(x)-y)∂(∑θixi-y)/∂θj    i=1...n(特征的个数)

                  =(hθ(x)-y)xj

             所以θj:=θj-α(hθ(x)-y)xj=θj+α(y-hθ(x))xj

        对于数量为M的训练来说其梯度下降的公式为:θj:=θj+α∑(y(i)-hθ(x(i)))x(i)j  i=1...m

   方法2:最小二乘法:设X=训练集里x组成的矩阵,Y=训练集里y组成的矩阵,那么则有:

             Xθ-Y=hθ(x(i))-y(i)组成的矩阵,则1/2(Xθ-Y)T(Xθ-Y)=J(θ)

             则对J(θ)进行对θ的求导并设最后结果为零能得出XTXθ-XTY=0,即θ=(XTX)-1XTY

 

J(θ)的由来:

  假设回归的误差是满足平均值为零的高斯分布

  那么L(θ)=∏p(y(i)|x(i);θ)=∏exp(-(y(i)-θTx(i))2/2σ2)/2πσ,在2π上有个根号

  设l(θ) = logL(θ),把公式展开后最后你就看见-J(θ)和一堆常数,因为l(θ)越大说明误差越小,所以优化的目标就成了让J(θ)越小

 

加权的线性回归:

  假设离我距离近的x点对回归的影响大,与我距离远的x对我回归的影响小,那么可以把优化的公式假设成:∑ω(i)(hθ(x(i))-y(i))2,ω(i)=exp(-(x(i)-x)2/2τ2)

  

这是本人的个人笔记,如有错误,欢迎拍砖。

PS:谁推荐个好用的公式编辑器啊,发现编辑公式好麻烦啊

  

转载于:https://www.cnblogs.com/frog-ww/archive/2013/01/04/2843530.html

你可能感兴趣的文章
51nod 1486 大大走格子
查看>>
好书推荐之《人类群星闪耀时》 隐私策略(Privacy policy)
查看>>
Oracle 行拼接 wmsys.wm_concat扩展
查看>>
Dexdump 无法正常反编译问题
查看>>
栈的压入、弹出顺序
查看>>
iOS开发——SDWebImage原理及使用
查看>>
CF 990C. Bracket Sequences Concatenation Problem【栈/括号匹配】
查看>>
求多个区间合并后区间大小的巧妙解决方法【差分】
查看>>
215. Kth Largest Element in an Array【Medium】【找到第 k 大的元素】
查看>>
Codeforces Round #445 D. Restoration of string【字符串】
查看>>
Educational Codeforces Round 34 B. The Modcrab【模拟/STL】
查看>>
mysql数据库my.ini配置文件中文详解
查看>>
python入门
查看>>
小程序js页面设置上导航颜色
查看>>
linux 下动态库的制作及使用
查看>>
安装POSIX man 手册
查看>>
Flask16 项目结构、flask_script插件
查看>>
ansi 控制码表及颜色代码
查看>>
WDA基础一:激活相关服务
查看>>
Javascript中的this关键字、call和apply
查看>>