模型

一、線性模型(linear model)

(一)線性迴歸

1.一元線性迴歸

1.1公式表示:

f(x)=wxi+b

機器學習筆記(二)——線性迴歸模型&線性分類模型

向量形式

1。2線性迴歸模型的

好處

簡單、可理解

1.3線性迴歸模型因變數是離散變數的處理方法:

如果屬性是

離散的,有序的

,則可以編碼為0-1-2……,例如西瓜的甜度由不甜-稍甜-特甜,之間有程度的加深,可以比較,因此可以編碼為數字,大一點的數字意味著強度更高;

如果屬性是

離散,非有序

的,則可以進行

“one-hot”

獨熱編碼,將結果變成

k維向量

進行迴歸。(如果編碼為0123的話,機器學習會誤以為有“序”的關係)

1.4使線性迴歸模型結果的誤差最小化方法

均方誤差最小化,即最小二乘法,

使得

\sum_{i=1}^{m}{(f(xi})-yi)²

最小,將f(x)=wxi+b代入,即E(w,b)=

\sum_{i=1}^{m}{(yi-wxi-b)²}

最小化,轉化成了

對w,b求梯度

導數為0的點

,得到

閉式解(closed-form)

,套公式就可以求出w,b;

2.多元線性迴歸(multi-variate)

實際中可能需要擬合多個特徵,同時考慮多個特徵來預測輸出,需要找到超平面去逼近結果

2。1公式: f(xi)=w

\tau

xi+b,xi=(xi1,xi2,xi3,xi4……)

2。2多元線性迴歸同樣採用

最小二乘法

進行求解,對w,b進行求導,閉式解,這裡涉及矩陣求逆,在處理高維資料時,閉式解不一定合適,可以根據實際情況選擇梯度下降等其他最佳化方法。這裡補充幾個矩陣的基本知識:

逆矩陣

:倒數矩陣,A的逆矩陣記作A-1,不是所有矩陣都有逆矩陣,滿秩(橫/列與其他橫列有線性關係)或正定有逆矩陣;

單位矩陣

:對角線數值為1,其他數值為0;

對角矩陣

:對角線上有值,其他位置為0,對角矩陣相對來說比較好求逆矩陣。

2.3線性模型變化

透過

對變數(輸入)進行線性或非線性變化

,使得線性模型結果更好地逼近真實值,原始輸入和輸出不是線性關係,透過變化原始輸入,可以與

輸出建立線性關係

,拓展了線性模型的使用

e^{x}

——-取對數,

lne^{x}

=x

x^{2}

——-開根號

lnx ——-取指數次方

e^{lnx}

=x

……

(二)線性分類模型

1.邏輯迴歸

實際輸出z=w

\tau

x+b,而期望輸出(0,1),就需要中間函式進行轉換:

機器學習筆記(二)——線性迴歸模型&線性分類模型

如上圖,是一個不不連續函式,性質不好,需要找替代函式,於是找到

“對率函式”(對數機率函式,logistic function),具有單調可微、任意階可導的優點

y=\frac{1}{1+e^{-z}}

機器學習筆記(二)——線性迴歸模型&線性分類模型

sigmoid函式

注意:

使用對率函式進行二分類的過程被稱為對率迴歸,又稱logistic regression邏輯迴歸,但是這裡logistic不是“邏輯”,源自logit而不是logic,

邏輯迴歸是用來解決分類問題的

,輸出的是實數值,而不是“非0即1”的邏輯值。

1.1理解對率迴歸

以對率函式為聯絡函式:

y=\frac{1}{1+e^{x}}

變為

y=\frac{1}{1+e^{-(w\tau x+b)}}

ln\frac{y}{1-y}=w\tau x+b

,其中y指x被分為正例,1-y指x被分為負例,

\frac{y}{1-y}

叫做“機率”(odd),反映了x作為正例的相對可能性,

ln\frac{y}{1-y}

叫做

“對數機率”

(log odds,亦稱“logit”)

1.2對率迴歸的優點

無需事先假設資料分佈

(我們直接假設預測值是線性模型,透過sigmoid函式將預測值壓縮到0到1之間,相當於求的是後驗機率,然後可以進行最佳化或分類,整個過程中並沒有對資料的分佈進行假設)

可得到“類別”的近似機率的預測

可直接應用現有數值最佳化演算法求最優解

1.3求解w,b思路

相當於給定一個樣本,透過sigmoid函式得到了該樣本的機率分佈,把後驗機率想象成一個

伯努利分佈

,給後驗機率進行最大似然估計,

“極大似然法”

:可簡單理解為

預測正確機率的乘積

,越高越好,連乘不好估計,透過取ln的形式將連乘轉化為求和,取-ln將求和最大變成求和最小,透過數值最佳化方法去求解w,b,得到線性函式的引數

1。4經典數值最佳化方法

梯度下降:

迭代方法,取負梯度的方向下降乘以一定學習率,不斷更新引數,逐漸收斂

牛頓法:

簡單的二次函式去模擬複雜函式

,在初始點上,二次函式和原始函式的

梯度值吻合

,然後使用

二次函式的最小值的點在原始函式上更新

,不需要學習步長,次數不需要那麼多,但是每次的計算量大,要求原始函式必須是二階可導的。

2.線性判別分析(Linear Discriminant Analysis,簡稱LDA)

logit函式透過刻畫某一類的後驗機率進行分類,並沒有關注類內情況如何。

線性模型隱藏著一個降維的過程,相當於把一個高維向量投影到一個一維的軸上,在這個軸上進行分類,所以做怎樣的投影至關重要。

這種線性模型分類的思路叫做線性判別分析。

投影目標:

類內距離儘可能小,類間距離儘可能大

LDA目標:

最大化廣義瑞利商

,數學表示(部分過程)

機器學習筆記(二)——線性迴歸模型&線性分類模型

機器學習筆記(二)——線性迴歸模型&線性分類模型

數學的具體推導求解過程就不放了。。。。這裡講一個

“奇異值分解”(SVD)

:為了方便求逆矩陣,透過SDA 演算法,

把一個矩陣拆成三個矩陣相乘,其中有一個矩陣是對角矩陣

,即只有對角線上有值,求逆矩陣變得簡單。

2。1

LDA vs PCA

LDA vs PCA相同點:

兩者均可以對資料進行

降維

兩者在降維時均使用了

矩陣特徵分解

的思想;

兩者都假設資料符合

高斯分佈

LDA vs PCA不同點:

LDA是

有監督

的降維方法,而PCA是

無監督

的降維方法;

LDA降維最多降到類別數

k-1

的維數,而PCA沒有這個限制;

LDA除了可以用於降維,還可以用於分類;

LDA選擇分類效能最好的投影方向,

最大均值

的方向,而PCA選擇樣本點投影具有

最大方差

的方向。這點可以從下圖形象的看出,在某些資料分佈下LDA比PCA降維較優。

機器學習筆記(二)——線性迴歸模型&線性分類模型

LDA優於PCA

機器學習筆記(二)——線性迴歸模型&線性分類模型

某些方差大的資料,PCA優於LDA

2.2LDA演算法小結:

LDA演算法既可以降維,又可以分類,

主要用於降維

,比如進行影象識別相關的資料分析時。

LDA演算法優點:

在降維過程中可以使用

類別的先驗知識

,而PCA則無法使用類別先驗知識;

當LDA在樣本分類資訊依賴

均值

而不是方差時,比PCA優;

LDA演算法缺點:

和PCA一樣,不適合對非高斯分佈樣本進行降維;

LDA最多降到類別數

k-1維

當LDA在樣本分類資訊依賴

方差

而不是

均值

時,降維效果不好;

LDA可能過度擬合數據

3.線性多分類學習

(1)拆解法:

將一個多分類任務拆解成若干個二分類任務,主要有兩種情況,各有優缺點:

OVO:遍歷所有兩兩組合的分類,每次都訓練一個平衡的資料集,訓練n(n-)/2個分類器,儲存和測試時間長,訓練只用到兩個類的樣例,訓練時間短;

OVR:每次把其中一個類別作為正類,其他所有類別作為負類進行訓練,每次的訓練集是不平衡的,訓練n個分類器,儲存和測試時間小,訓練用到所有資料,訓練時間長。

(2)糾錯輸出碼(ECOC)

多對多(Many to Many,MvM):將若干類作為正類,若干類作為負類

機器學習筆記(二)——線性迴歸模型&線性分類模型

f1到f5是5個分類器,C1到C4是4類,每一組樣本丟給一個分類器後,隨機分成“-1”和“﹢1”兩類,新的測試示例丟進去後,根據每個分類器隨機分類的結果與之前的幾個分類作比較,計算海明距離(分錯的個數)或歐式距離,判斷分為哪一類。

ECOC編碼對分類器錯誤有一定容忍和修正能力,編碼越長,糾錯能力越強。

4. 類別不平衡問題

(1)再縮放方法(rescaling)

不同類別的樣本比例差距很大,基本思路(相當於改變了機率函式的閾值問題):

機器學習筆記(二)——線性迴歸模型&線性分類模型

機器學習筆記(二)——線性迴歸模型&線性分類模型

但是精確估計

\frac{m^{-}}{m^{+}}

很困難,於是有其他方法解決類別不均衡問題:

(2)過取樣(oversampling)

例“SMOTE“,在兩分類問題種,假設拿到的訓練資料正類少,透過在兩個正類間做差值“增補正類”,使得正負類別均衡

(3)欠取樣(undersampling)

例”EasyEnsemble“,在兩分類問題種,減少負類樣本,使得正負類一樣,在負類樣本中隨機抽和正類數目一樣的量

(4)閾值移動(threshold-moving)