深入淺出ML之Regression家族

深入淺出ML之Regression家族

內容列表

  • 符號定義
  • 說明
  • 迴歸分析介紹
  • 線性迴歸模型
  • 迴歸模型與正則化
    • L2-Ridge
    • L1-Lasso
    • Group Lasso
  • 邏輯斯蒂迴歸

符號定義

這裏定義《深入淺出ML》系列中涉及到的公式符號,如無特殊說明,符號含義均按下述定義解釋:

符號 含義
x j j 維特徵
x 一條樣本中的特徵向量, x = ( 1 , x 1 , x 2 , , x n )
x ( i ) i 條樣本
x j ( i ) i 條樣本的第 j 維特徵
y ( i ) i 條樣本的結果(label)
X 所有樣本的特徵全集,即 X = ( x ( 1 ) , x ( 2 ) , , x ( m ) ) T
Y 所有樣本的label全集,即 Y = ( y ( 1 ) , y ( 2 ) , , y ( m ) ) T
w 參數向量,即 w = ( w 0 , w 1 , , w n )
w j j 維參數

1. 寫在前面

迴歸技術在整個數據科學體系中佔有非常重要的位置,迴歸分析是統計學中的相關分析知識體系中重要組成部分。在機器學習中,迴歸、分類和標註共同構成了監督學習技術。

監督學習(supervised learning)是機器學習在工業界應用最廣的一個領域分支。在學術界中也是研究最多的領域之一。大家都知道的數據挖掘十大經典算法中,監督學習技術佔據6席。

2. 迴歸分析介紹

在介紹具體的迴歸技術之前,有必要探討下以下幾個問題。迴歸分析是什麼?爲什麼要使用迴歸分析呢?

  • 什麼是迴歸分析?

迴歸分析是解決預測建模任務時的一種方法,用於研究自變量與因變量之間的關係。該方法主要用於預測、時間序列建模以及尋找變量之間的因果關係。 舉例,rash driving和number of road accidents by a driver通過迴歸技術可以進行更好的研究。

迴歸分析是用於建模和數據分析的一個重要工具。這裏,我們用曲線/直線去擬合數據點,希望所有數據點到曲線或直線的距離差異之和最小(後面會給出公式量化)。

上圖是某一階段的股票指數波動示意圖,用一條(紅色)曲線擬合真實數據。

  • 爲什麼要使用迴歸分析?

正如上面描述,迴歸分析多用於建立兩個或多個變量之間的關係表達。我們通過一個例子理解這個問題:

假如,你想根據當前的經濟環境預估企業的營收增長情況。公司最近的財報表明營收增長大約是經濟增長的2.5倍。利用這個關係,就可以根據當前和過去的營收和經濟數據,預測公司未來的營收增長情況。

使用迴歸分析有諸多好處,比如:

  1. 它可以清晰的表示自變量(特徵)與因變量(結果)之間的顯著關係;
  2. 還可以表明多個自變量(特徵)對因變量(結果)的影響程度(根據feature對應權重大小).

同時,迴歸分析也可以去比較兩個變量之間的影響,比如促銷活動的次數與價格波動的影響。這些有助於幫助市場研究人員/數據分析師/數據科學家去消除或評估最佳的一組變量用於建立預測模型。

  • 迴歸技術分類

有很多種不同的迴歸技術可做預測。根據目標變量的個數、因變量的類型以及迴歸函數的形狀這三個維度對迴歸技術做一個歸類。我們從迴歸家族中拿出兩個經典的迴歸技術——線性迴歸和logistic迴歸,詳細闡述其技術原理和應用場景。

一睹爲快,簡要的看下二者在變量上的差異:

方法 自變量(特徵) 因變量(結果) 關係
線性迴歸 連續或離散 連續實數 線性
Logistic迴歸 連續或離散 (0,1)之間連續值 非線性

3. 線性迴歸(Linear Regression)

線性迴歸是最被廣泛應用的建模技術之一。顧名思義,就是用一組變量(或特徵)的線性組合,來建立與結果的關係。即期望用一條最佳的直線(被稱爲迴歸線)來表示因變量(Y)和一個或多個自變量(X)之間的關係。

3.1線型迴歸模型

  • 模型表達

(1) y ( x , w ) = w 0 + w 1 x 1 + + w n x n

其中, x 1 , x 2 , , x n 表示自變量(集合); y 是因變量; w 爲參數向量; w i 表示對應自變量(特徵)的權重, w 0 是偏倚項(又稱爲截距)。

關於參數w:
1. 在物理上可以這樣解釋:在自變量(特徵)之間相互獨立的前提下 w i 反映自變量 x i 對因變量影響程度, w i 越大,說明 x i 對結果 y 的影響越大。
2. 通過每個字變量(特徵)前面的參數,可以很直觀的看出哪些特徵分量對結果的影響比較大。
3. 在統計中, w 1 , w 2 , , w n 稱爲偏回歸係數, w 0 稱爲截距。

如果令 x 0 = 1 , y ( x , w ) = h w ( x ) , 可以將公式(1)寫成向量形式,即:

(2) h w ( x ) = i = 1 n w i x i = w T x

其中, w = ( w 0 , w 1 , , w n ) x = ( 1 , x 1 , x 2 , , w n ) 均爲向量, w T w 的轉置。

公式(2)中,假設特徵空間與輸入空間x相同。

準確的講,模型表達式要建立的是特徵空間與結果之間的關係在一些應用場景中,需要將輸入空間映射到特徵空間,然後建模. 定義映射函數爲 ϕ ( x ) ,因此我們可以把公式(2)寫成更通用的表達方式:

h w ( x ) = w T ϕ ( x )

特徵映射相關技術,包括特徵哈希、特徵學習、Kernel等,在後面的章節中會詳細介紹。

Note:

  1. 需要謹記,模型表達式建立的是特徵空間與結果之間的關係,而不是與輸入之間的關係,從輸入到特徵空間,可以是直接將輸入當做特徵,也可以通過特徵映射方法,如多項式法,kernel方法等,先將輸入轉換到特徵空間,再做建模,得到最終的模型表達式。

  2. 如線型迴歸或者logistic迴歸結合了多項式的特徵映射方法,即可用於非線性分類,而SVM的目標函數(模型)也很簡單,結合了kernel特徵映射之後,如採用高斯核函數,則就是先將輸入轉換到特徵空間,在高維特徵空間利用目標函數找到線型分類超平面,再將此線型分類超平面映射回低緯空間,得到非線性分類曲面。

  • 參數學習準則

公式(2)中的參數向量 w n + 1 維,每個參數的取值是實數集合,也就是說參數向量 w n + 1 維實數空間中取值結果有無窮種可能。

那麼,如何利用一個規則或機制幫助我們評估求得的參數 w ,並且使得到的線性模型效果最佳?直觀地認爲,如果求得的參數 w 線性求和後,得到的結果 h w ( x ) 與真實值 y 之差越小越好。

這是我們需要引入一個函數用來衡量 h w ( x ) 表示真實值 y 好壞的程度,該函數稱爲損失函數(loss function,也稱爲錯誤函數)。數學表示如下:

(3) J ( w ) = 1 2 i = 1 m ( h w ( x ( i ) ) y ( i ) ) 2 m i n w   J ( w )

這個損失函數用的是 x ( i ) 的估計值 h w ( x ( i ) ) 與真實值 y ( i ) 之差的平方和。從優化的角度講,公式(3)是待優化的目標函數(Object Function)(如果不考慮其它問題,諸如過擬合等),可將其轉化爲最優化問題求參數。

3.2 參數學習-線性迴歸目標函數

如何調整參數 w 使得 J(w) 取得最小值?方法有很多,這裏先介紹兩種比較經典的方法,即最小二乘法和梯度下降法。

  • 最小二乘法(Least Square)

最小二乘法是一種完全數學描述的方法,直接給出閉式解結果。它用 X 表示觀測數據中的特徵矩陣,結果表示成 Y 向量,目標函數仍是(3),那麼 w 可直接用下面公式表示:

(4) w = ( X T X ) 1 X T Y

公式來源:

X )1 XT Y (4) (4) w = ( X T X ) 1 X T Y

公式來源:

X T X w = X T Y

個人認爲,之所以不直接寫成

相關文章
相關標籤/搜索