周志華《機器學習》課後習題解答系列(四):Ch3 - 線性模型

Snoopy_Yuan發表於2017-03-22

本章概要

本章開始涉及程式設計練習,這裡採用Python-sklearn的方式,環境搭建可參考 資料探勘入門:Python開發環境搭建(eclipse-pydev模式).

相關答案和原始碼託管在我的Github上:PY131/Machine-Learning_ZhouZhihua.

本章講述線性模型(linear model),相關內容包括:

  • 線性迴歸(linear regression)

序關係(order)、均方差(square error)最小化、歐式距離(Euclidean distance)、最小二乘法(least square method)、引數估計(parameter estimation)、多元線性迴歸(multivariate linear regression)、廣義線性迴歸(generalized linear model)、對數線性迴歸(log-linear regression);

  • 對數機率迴歸(邏輯迴歸)(logistic regression)

分類、Sigmoid函式、對數機率(log odds / logit)、極大似然法(maximum likelihood method);

  • 線性判別分析(linear discriminant analysis - LDA)

類內散度(within-class scatter)、類間散度(between-class scatter);

  • 多分類學習(multi-classifier)

拆解法,一對一(One vs One - OvO)、一對其餘(OvR)、多對多(MvM)、糾錯輸出碼(ECOC)、編碼矩陣(coding matrix)、二元碼、多標記學習(multi-label learning);

  • 類別不平衡(class-imbalance)

再縮放(rescaling)、欠取樣(undersampling)、過取樣(oversampling)、閾值移動(threshold-moving);

習題解答

3.1 線性迴歸模型偏置項

這裡寫圖片描述

偏置項b在數值上代表了自變數取0時,因變數的取值;

1.當討論變數x對結果y的影響,不用考慮b;
2.可以用變數歸一化(max-min或z-score)來消除偏置。


3.2 證明對數似然函式是凸函式(引數存在最優解)

這裡寫圖片描述

直接給出證明結果如下圖:

這裡寫圖片描述


3.3 程式設計實現對率迴歸

這裡寫圖片描述

所使用的資料集如下:

這裡寫圖片描述

本題是本書的第一個程式設計練習,採用了自己程式設計實現和呼叫sklearn庫函式兩種不同的方式(檢視完整程式碼):

具體的實現過程見:周志華《機器學習》課後習題解答系列(四):Ch3.3 - 程式設計實現對率迴歸


3.4 比較k折交叉驗證法與留一法

這裡寫圖片描述

本題採用UCI中的Iris data setBlood Transfusion Service Center data set 資料集,藉助sklearn實現(檢視完整程式碼)。

具體的實現過程見:周志華《機器學習》課後習題解答系列(四):Ch3 - 3.4.交叉驗證法練習


3.5 程式設計實現線性判別分析

這裡寫圖片描述

本題採用題3.3的西瓜資料集,採用基於sklearn實現和自己獨立程式設計實現兩種方式(檢視完整程式碼)。

具體的實現過程見:周志華《機器學習》課後習題解答系列(四):Ch3 - 3.5.程式設計實現線性判別分析


3.6 線性判別分析的非線性擴充思考

這裡寫圖片描述

給出兩種思路:

  • 參考書p57,採用廣義線性模型,如 y-> ln(y)。
  • 參考書p137,採用核方法將非線性特徵空間隱式對映到線性空間,得到KLDA(核線性判別分析)。

3.7 最優ECOC編碼方式

這裡寫圖片描述

參考書p65,對於同等長度的編碼,理論上來說,任意兩個類別間的編碼距離越遠,糾錯能力越強。那麼如何實現呢,可參考文獻Error-Correcting Output Codes。下圖是擷取文中的關於在較少類時採用exhaustive codes來生成最優ECOC二元碼的過程:

這裡寫圖片描述

採用文中方法,每兩類的Hamming Distance均達到了碼長的一半,這也是最優的編碼方式之一。


3.9 多分類到二分類分解、類別不平衡

這裡寫圖片描述

參考書p66,對OvR、MvM來說,由於對每類進行了相同的處理,其拆解出的二分類任務中類別不平衡的影響會相互抵銷,因此通常不需專門處理。

OvR(一對其餘)為例,由於其每次以一個類為正其餘為反(參考書p63),共訓練出N個分類器,在這一過程中,類別不平衡由O的遍歷而抵消掉。


相關文章