线性回归

来源:互联网 发布:如何学好c语言 编辑:程序博客网 时间:2024/06/07 20:39

线性回归

一、线性回归

  一种简单的拟合函数为线性拟合,如hθ(xi)=θ1(xi)+θ0
  如何检测得到的hθ(x)是不是我们最优的拟合函数呐,因此我们需要检查该函数的拟合性能,代价函数 用来检测分类器的性能,如下面公式所示的一种:

J(θ0,θ1)=12mmi=1(hθ(xi)yi)2

当分类器参数θ0,θ1使得 J(θ0,θ1)取最小值时,说明均方误差最小,那么这时的分类器θ性能最好。

二、梯度下降

  如何获得最优的那个分类函数呐,常用的方法是使用梯度下降法,初始给θ0,θ1一个初始值,利用公式

θi=θiαθiJ(θ0,θ1)

其中α表示的是每次下降的步长也称学习速率,通过每次迭代更新θ0,θ1的值使其达到极小值,此时θiJ(θ0,θ1)为0,根据微积分的知识我们知道J(θ0,θ1)取极小值或者局部最小值,这与我们选取的θ0,θ1的初始值有关。
  在这里,随着梯度下降θiJ(θ0,θ1)的值也在不断的减小,在局部最小点的时候为0,在逐渐接近最小点的时候它的值也接近于0,此时每次更新的步伐已经非常小了,所以完全没有为了防止步伐太大,过了局部最小点,同时动态更新α。到达最小值后由于α为0,θ值就不在更新。
  同样我们可以把梯度变化运用到有多个θ的情况下,也就是多维。

三、梯度下降在线性回归的运用

  在线性回归的情况下我们只有θ0,θ1两个参量要求,利用上面的两个公式,可以求得:

θ0=θ0α1mi=1m(hθ(xi)yi)

θ1=θ1α1mi=1m((hθ(xi)yi)xi)

这样不停的迭代θ0,θ1的值,知道J(θ0,θ1)收敛于0

四、多维度的线性回归

在现实情况中,判断一个事物的实行不可能只根据一个属性,如一个房屋的售价不单单是有房屋面积决定的,还可能跟卧室的数目,有没有花园有关。因此,假设有n个元素影响,那么:hθ(xi)=θ0+θ1x1+θ2x2+...+θjxj+...+θnxn
如果我们把x0设为1,那么上式中的属性可以用一个向量X表示.X=[x0,x1,x2....xn]T
同理参数$\theta$也可以用一个向量表示:θ=[θ0,θ1,θ2...θn]T,根据线性代数里面的向量相乘我们可以得到:

hθ(xi)=θTX

J(θ)=12mi=1m(θTXiyi)2

θj=θjα1mi=1m(θTXiyi)xj

上列式子中,n表示属性个数,j是属性标签,m表示样本个数,i是样本标签
  当一个属性的值过大时,会使梯度下降的速度很慢,就像人走路一样,路太远用的时间就长。这时可以对属性值就行缩放也就是归一化,如ximinmaxmin等方法,只要保证数据范围在一个小的范围内就可以。
  关于α的选择,太大可能造成J(θ)不降反升,太小则J(θ)趋于收敛的速度太慢,所以要选择一个合适的α值。另外可以用一个自动检测来判断J(θ)是否收敛,比如看它减小的值是否小于103,但通常而言这个值很难选择。

五、特征选择和多项式回归

有些时候特征值太多,但是有些特征值作用并不大,有些特征值合并,我们就要学会如何去选择特征值。如长和宽,我们可以合并成面积。
有些数据点我们无法用直线拟合,就需要用到多项式,而如何选择多项式也是个问题,我们可以选择二次三次甚至是根号式。
hθ(xi)=θ0+θ1xi+θ2x2i`,如果`xi=100,那么我们可以令x2=x2i=10000代替从而转化成线性回归问题。

0 0
原创粉丝点击