1. 程式人生 > >Machine Learning第二講[多變數線性迴歸] --(一)多變數線性迴歸

Machine Learning第二講[多變數線性迴歸] --(一)多變數線性迴歸

內容來自Andrew老師課程Machine Learning的第二章內容的Multivariate Linear Regression部分。

一、Multiple Features(多特徵)

1、名詞
這裡寫圖片描述
(1)m:樣本的數量,上例中m=4
(2)n:特徵數目,上例中n=4
(3)x(i):第i個訓練樣本的所有特徵值
          上例中,這裡寫圖片描述
(4)xj(i):第i個訓練樣本的第j個特徵值
          上例中,x3(2)=2,x1(3)=1534.

2、之前含有一個特徵值的假設函式已經不足滿足多特徵向量預測的要求,多特徵值的假設函式為這裡寫圖片描述

,如下圖:

3、怎樣把多特徵值的假設函式轉化為矩陣和矩陣相乘?如下圖:

(1)      這裡寫圖片描述
(2)為了表述方便,令這裡寫圖片描述這裡寫圖片描述

二、Gradient Descent for Multiple Variables(多變數線性迴歸的梯度下降)

如何用梯度下降演算法來解決多特徵的線性迴歸問題?

1、多特徵的假設、代價函式和梯度下降函式如下圖:
這裡寫圖片描述

這裡寫圖片描述

2、將h(x)代入梯度下降演算法,如下圖:
這裡寫圖片描述
其實多引數線性迴歸和單引數線性迴歸的梯度下降演算法是一致的,多引數線性迴歸是單引數線性迴歸的推廣。

三、Gradient Descent in Practice I - Feature Scaling(實踐中梯度下降I:特徵縮放)

有兩種方法可以提高梯度下降演算法執行的效率,特徵縮放和均值歸一化。

1、特徵縮放的定義和示例:
這裡寫圖片描述
左半部分是沒有進行特徵縮放之前的輪廓圖,梯度下降演算法執行的比較慢。右半部分是進行特徵縮放之後的輪廓圖,趨於圓,在這些資料的作用下,梯度下降演算法執行地比較快。

2、特徵縮放到什麼程度?
一般情況下,讓每一個特徵變數都大概在[-1,1]範圍內(注:1只是一個特例,不一定非要是1)
例如:
[0,3]可以
[-2,0.5]可以
[-100,100]不可以,資料變化範圍太大
[-0.00001,0.00001]不可以,資料變化範圍太小
[-3,3]可以
[-1/3,1/3]可以

3、均值歸一化
這裡寫圖片描述
舉例:
這裡寫圖片描述

表示房間的價格,一個房間的價格在100~2000之間,且平均值為1000,則
這裡寫圖片描述

通過特徵縮放,可以讓梯度下降演算法執行地更快,讓梯度下降收斂所需的迴圈次數更少。

四、Gradient Descent in Practice II - Learning Rate(實踐中梯度下降II:學習速率)

本節內容主要是如何選取學習率α。

1、下圖是α大小合適情況下對應的J(theta)的圖形。
這裡寫圖片描述

2、下圖是α過大情況下對應的J(theta)的圖形。
這裡寫圖片描述
如果α下降的比較慢,則是因為α的值過小。

3、一個練習題,在α正常、過小和過大情況的圖如下:
這裡寫圖片描述

4、總結:如何選擇合適的α值?
這裡寫圖片描述

五、Features and Polynomial Regression(特徵和多項式迴歸)

1、以房子價格為例,來說明有時候可能需要構造新特徵來得到更好的預測模型。如下圖:
這裡寫圖片描述

2、多形式迴歸
以下是一個住房價格的資料集,為了訓練預測模型,先假設是二次函式,發現雖然二次函式能擬合但是超過最高點之後,price的值會下降,所以再假設擬合函式是三次函式,但是三次函式也存在問題,price會一直增大,如下圖:
這裡寫圖片描述

如何選出合適的擬合函式,如下圖,這裡選擇一個與sqrt有關的函式,與二次函式和三次函式相比,這個函式的擬合性更好,如下圖:
這裡寫圖片描述