线性回归.1

机器学习分为有监督学习和无监督学习。

有监督学习分为回归问题和分类问题。

Regression 回归问题是指我们想要预测连续的数值输出

Classification 分类是指我们设法预测一个离散值输出(0 or 1),有时也可以存在有两个以上的可能的输出值。

设有一组数据,x为自变量,y为因变量,(x(i),y(i))代表一组数据。

我们想要预测y,则设hθ(x(i))=θ_0+θ_1x(i)

那么这个单变量线性回归的代价函数为J(θ_0,θ_1)=1/2m   m∑i=1 (hθ(x(i))-y(i))^2   就是用预测的减去实际的,然后让他俩的平方和尽可能的小

我们要做的就是关于θ_0和θ_1对函数J(θ_0,θ_1)求最小值,这就是我们的代价函数也被称作平方误差函数。

既然要求θ_0和θ_1,就要用到梯度下降算法:

1.对θ_0,θ_1初始化,一般设为θ_0=0,θ_1=0;

2.一点点改变θ_0,θ_1的值,来使J(θ_0,θ_1)变小,直到我们找到最小或局部最小值

所以,一直进行以下这个公式,直到收敛。θj=θj-α(d/dθj)J(θ_0,θ_1)所有的θ同步更新

α是学习率,为常数量,控制梯度下降时我们迈出多大的步子(控制多大幅度的更新)α的值多为0.01,0.005,python中有其默认值

更新:正确方法:temp0=θ_0-α(d/dθ_0)J(θ_0,θ_1)      是的,我们要做到同步更新

                            temp1=θ_1-α(d/dθ_1)J(θ_0,θ_1)

                            θ_0=temp0

                            θ_1=temp1

梯度下降时没有必要再另外减小α,因为随着梯度下降,导数会变小,更新的幅度也会变小

对公式(d/dθj)J(θ_0,θ_1)进行计算

α(d/dθj)J(θ_0,θ_1)=α(d/dθj)  1/2m   m∑i=1 (hθ(x(i))-y(i))^2=α(d/dθj)  1/2m   m∑i=1 (θ_0+θ_1(x(i))-y(i))^2

带入梯度下降公式得,求的θ_0,θ_1得方法

repeat until convergence{

θ_0=θ_0-α  1/m   m∑i=1 (hθ(x(i))-y(i))

θ_1=θ_1- α 1/m   m∑i=1 (hθ(x(i))-y(i)) x(i)

}

猜你喜欢

转载自www.cnblogs.com/fromzore/p/10012884.html
今日推荐