讀書筆記 周志華老師的《機器學習》
因為邊看邊記,所以寫在隨筆里,如果涉及版權問題,請您聯系我立馬刪除,lvxia@mail.ustc.edu.cn
3.1 基本形式
給定d個屬性描述的示例 x = (x_1;x_2;...;x_3), 其中x_i是X在第i個屬性上的取值,線性模型視圖學得一個通過屬性的線性組合來進行預測的函數,即
f(x) = w_1*x_1 + w_2*x_2 + ... + w_d*x_d + b, 向量形式
![]()
其中 w = (w_1;w_2;...;w_d).
w直觀表達了各屬性在預測中的重要性,因此線性模型有很好的可解釋性。
3.2 線性回歸linear regression(這一節闡述公式概念,所以全部引用了~)
給定數據集 D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} , 其中 x_i = (x_i1;x_i2;...;x_id). 試圖學得 f(x_i) = wx_i+b.使得 f(x_i)~y_i
如何確定w和b?均方誤差是回歸任務中最常用的性能度量,即試圖讓均方誤差最小化:

均方誤差有非常好的幾何意義,它對應了常用的歐幾里得距離或簡稱“歐氏距離”(Euclidean distance)。基於均方誤差最小化來進行模型求解的方法稱為“最小二乘法”(least square method), 在線性回歸中,最小二乘法就是試圖找到一條直線, 使所有樣本到直線上的歐氏距離之和最小。

E是關於w和b的凸函數,當它關於b和w的導數均為零時,得到w和b的最優解;對區間[a,b]上定義的函數f,若他對區間上任意兩點x_1,x_2均有 f((x_1+x_2)/2) <= (f(x_1) + f(x_2))/2,則稱f為區間[a,b]上的凸函數;U型曲線的函數如 f(x) = x * x, 通常都是凸函數; 對實數集上的函數,可通過求二階導數來判別:若二階導數在區間上非負,則稱為凸函數,若二階導數在區間上恆大於0,則稱為嚴格凸函數。
求解w和b使E最小化的過程,稱為線性回歸模型的最小二乘“參數估計”(parameter estimation),將E分別對w和b求導,

另上式為零可得到w和b最優解的閉式(closed-form)解

其中
更一般的情形是給定數據集 D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)} , 其中 x_i = (x_i1;x_i2;...;x_id),樣本由d個屬性描述,

稱為多元線性回歸(multivariable linear regression),類似地也可以利用最小二乘法來對w和b估計,把數據集D表示為一個m*(d+1)大小的矩陣X,每行對應於一個示例,該行前d個元素對應於示例的d個屬性值,最后一個元素恆置為1,即:

把標記寫成向量形式y=(y_1;y_2;...;y_m),求,

........
線性回歸模型

將輸出標記的對數作為線性模型逼近的目標,即得到“對數線性回歸”log-linear regression,

更一般的,考慮單調可微函數g(),令

得到的模型為“廣義線性模型”generalized linear model,函數g稱為聯系函數,對數線性回歸是廣義線性模型在g=ln時的特例。
3.3 對數幾率回歸
分類任務腫么辦?只需要找一個單調可微函數將分類任務在真實標記y與線性回歸模型的預測值聯系起來。
二分類,y-{0,1},線性回歸模型產生的預測值是實值,理想的是“單位階躍函數”,預測值為臨界值時任意判別。

單位階躍函數不連續,不能直接用作聯系函數,對數幾率函數logistics function是一種Sigmoid函數,單調可微,將z值轉化為一個接近0或1的y值,輸出值在z=0附近變化很陡,


將其代入廣義線性模型公式中,


若將y視為樣本x作為正例的可能性,兩者的比值稱為幾率,反映了x作為正例的相對可能性,用線性回歸模型的預測結果去逼近真實標記的對數幾率,其對應的模型稱為“對數幾率回歸” logistic regression,是一種分類學習方法,邏輯回歸模型的優點有:1.它是直接對分類可能性進行建模,無需事先假設數據分布,這樣避免了假設分布不准確所帶來的問題;2.它不是僅預測出“類別”,而是可得到近似概率預測,這對許多需利用概率輔助決策的任務很有用;3.對率函數是任意階可導的凸函數,有很好的數學性質,現有的許多數值優化算法都可直接用於求取最優解。
可通過最大似然法maximum likelihood method估計w和b的值,

即另每個樣本屬於其真實標記的概率越大越好,后面的求解可通過梯度下降法gradient descent method、牛頓法Newton method求解。
3.4 線性判別分析
線性判別分析Lineard Discriminant Analysis, LDA,是一種經典的線性學習方法,二分類問題上最早由Fisher,1936提出,亦稱“Fisher 判別分析”。
LDA的思想:給定訓練樣例集,設法將樣例投影到一條直線上使得同類樣例的投影點盡可能接近、異類樣例的投影點盡可能遠離,在對新樣本進行分類時,將其投影到同樣的這條直線上,再根據投影點的位置來確定新樣本的類別。

給定數據集D = {(x_1,y_1),(x_2,y_2),...,(x_m,y_m)},
![]()
若將數據投影到直線w上,則兩類樣本的中心在直線上的投影分別為

若將所有樣本點都投影到直線上,則兩類樣本的協方差分別為

欲使同類樣例的投影點盡可能接近,可讓同類樣例投影點的協方差盡可能小,即
盡可能小;而欲使異類樣例的投影點盡可能遠離,可讓類中心之間的距離盡可能大,即
盡可能大,同時考慮二者,得到最大化目標:

后續求解見課本,這里主要闡述問題。
若W是一個投影矩陣,則多分類LDA將樣本投影到N-1維空間,N-1通常遠小於數據原有的屬性數,可通過這個投影來減小樣本點的維數,且投影過程中使用了類別信息,因此LDA被視為一種經典的監督降維技術。
3.5 多分類學習
拆解法
一對一: One v One,將N個類別的數據集兩兩配對,從而產生N(N-1)/2個分類任務,測試階段,將新樣本交給所有分類器,得到N(N-1)/2個分類結果,把被預測得最多的類別作為最終分類結果。
一對多:One v Rest.每次將一個類的樣例作為正例、其他所有類的樣例作為反例來訓練N個分類器。在測試時如果有一個分類器預測為正,則對應的類別標記作為最終分類結果。
一對多訓練N個分類器,但一對一訓練N(N-1)/2分類器,一對一的存儲開銷和測試時間開銷通常比一對多更大,但是在訓練時一對多的每個分類器均使用全部訓練數據,當類別很多時,一對一開銷比一對多小。測試性能取決於具體的數據分布。
多對多:每次選若干個正例,若干個反例。糾錯輸出碼技術ECOC,糾錯輸出碼對分類器的錯誤有一定的容忍和修正能力。
3.6 類別不平衡
class-imbalance指分類任務中不同類別的訓練樣例數目差別很大的情況。
再縮放策略:欠采樣、過采樣、閾值移動。
