線性迴歸.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)
}