《機器學習》(周志華) 第3章 線性模型

2021-09-22 20:12:49 字數 2734 閱讀 2657

一  線性回歸

線性回歸沒什麼好說的,它的思想是採用對輸入樣例各個特徵進行線性加權的方式得到**的輸出,並將**的輸出和真實值的均方誤差最小化。說白了如果輸入樣例只有乙個特徵,那這個過程就是用一條直線去擬合平面直角座標系上的點;如果有兩個特徵,表現在平面直角座標系上就是用一條直線將用不同標記(如xx和oo)區分的輸入樣例分割開來;如果有兩個以上特徵,那就會對映到高維空間,用超平面來分割。

書中提到了乙個屬性量化的問題,對於離散屬性,如果屬性是有序的話,如「大 中 小」,可按序量化為(1,0.5,0);若屬性無序,如瓜的種類有西瓜、黃瓜、冬瓜,就可以用三維向量表示(1,0,0),(0,1,0),(0,0,1)。如果對於無序的屬性按有序屬性的方式量化,則會不恰當的引入序關係,後面如果有涉及距離的計算,有可能會造成誤導。這裡實際上對應的是程式設計實現時的資料預處理部分。

還有一點,就是關於凸函式的定義和判定,值得鞏固一下。線性回歸的目標函式是乙個凸函式。乙個閉區間上凸函式,必須在這個區間上滿足「兩點中點處函式值≤兩點各自函式值和的一半」,而不要想當然的理解為形狀朝乙個方向「凸出」就是凸函式。比如,y=x²是凸函式,y=-x²就不是。從數學角度,可以通過二階導數判斷:若在區間上二階導數非負,則稱為凸函式;若二階導數在區間上恆大於0,則稱為嚴格凸函式。

線性回歸的形式很簡單,可以衍生出其他的一些模式,這時可能從線性對映變為非線性對映。如原來用來近似真實值,現在若用來近似,就成了乙個非線性模型,這叫做對數線性回歸。更一般地,可以引出廣義線性模型的定義,令

其中g為單調可微函式,稱為「聯絡函式」。

二  對數機率回歸

這裡的「對數機率回歸」就是常說的「邏輯回歸」,只不過周老師認為漢語中的「邏輯」一詞與英文原文「logistic」意義相差甚遠,因此採用了另一種比較合理的意譯方式。

引入對數機率回歸的初衷是要解決分類問題,也就是資料的真實標記是有限的離散值的情況。對於二分類問題,輸出空間是集合,因此我們要把原來線性回歸的輸出值給對映到集合上來,這是乙個函式值域的變換過程,因此也就是乙個函式對映過程。而提到線性回歸的衍生變化,我們就想到了「廣義線性模型」。最理想的情況是令g^-1為單位階躍函式,即值為正時,輸出為+1,正類;值為負時,輸出為0,負類;若正好為0,則正負類均可。

可惜的是,單位階躍函式並不可微。為了使用廣義線性模型,我們就找到了sigmoid函式來替代了。sigmoid函式大家都很熟悉了,具有良好的數學性質。而叫做對數機率回歸的原因,就是該模型經過變形整理後可以寫成的形式。若把y看作是**為正例的概率,那麼1-y就是**為負類的概率,y/1-y就是一種「相對正類率」(將y,1-y理解成概率是很自然的,因為sigmoid函式的值域是(0,1))。所以,該模型使用線性回歸的方式去逼近一種「對數機率」,因此叫做「對數機率回歸」。模型中的w和b可以使用對數極大似然的方法求解。

三 線性判別分析(lda)

這裡只對其基本思想作一回顧。

尋找一條直線,將正例和反例的樣本點分別投影到這條直線上,使得(1)同類樣本的投影距離盡可能近;(2)不同類樣本的投影距離盡可能遠。

對於(1),可使同類樣本的協方差盡可能小;對於(2),可使不同類樣本的類中心距離盡可能大。從而構造出優化目標函式「廣義瑞利商」。

四 多分類問題

很多二分類模型可以直接推廣到多分類的情況,但是更多情形下,我們是利用二分類器解決多分類問題,這一過程涉及到對多分類任務進行拆分,以及對多分類器進行整合。本節主要介紹了拆分策略:ovo、ovr、mvm.

ovo,就是「一對一」。模型在訓練時挑選乙個類別作為正類,乙個類別作為負類,共n個類別時,需要訓練n(n-1)/2個分類器。測試階段,將測試用例餵給每個分類器,在**結果中選擇出現頻次最多的作為最終的結果,相當於「投票法」,誰的票數多誰就當選。這種方法的優點是訓練時不必用到所有的輸入樣例,而只需兩個類別的樣例即可,這在訓練集十分龐大時有一定優勢。但是它需要訓練n²量級個分類器,這導致儲存和測試時間的開銷比較大。

ovr,就是「一對其餘」。模型在訓練時挑選乙個類別作為正類,其餘類別全部作為負類,共n個類別時,需要訓練n個分類器。測試階段,將測試用例餵給每個分類器,這時輸出情況有兩種:(1)只有唯一乙個分類器輸出為正類,那麼此類就是最終的**結果;(2)有多個分類器輸出為正類,則考慮**置信度,選擇**置信度大的分類作為最終輸出。這種方法由於每次要用到全部訓練資料,因此訓練時間開銷較大。

mvm,就是「多對多」。模型在訓練時挑選若干個類別作為正類,若干個類別作為負類。一種常用的mvm技術叫做ecoc(error correcting output code)糾錯輸出碼。具體做法是,(編碼過程)將n個類別劃分m次,在訓練集上訓練出來m個分類器。也就是說這m次過程之後,每個類別都有乙個長度為m的編碼,要麼0(被劃為負類),要麼1(被劃為正類);(解碼過程)將測試樣例分別餵給這m個分類器,得到m個**標記,組成長度為m的編碼,依次計算此編碼與每個類別編碼的距離,距離最短的作為其類別。之所以叫做「糾錯輸出碼」,是因為這種方法具有一定的容錯性能。即使在解碼過程中某個分類器出現了錯誤,依然能產生正確的分類結果。

五 類別不平衡問題

針對這一問題,有3種解決辦法。以下假設正例個數遠遠大於負例個數。

1. 欠取樣。隨機拋棄一些正例,使二者數目相當。

2. 過取樣。增加一些負例,使二者數目相當。如通過對訓練集中的負例進行插值法以產生額外的負例。

3. 閾值轉移法。以對數機率回歸為例,y/1-y可以看作一種**機率,即正例可能性和負例可能性的比值。當此機率大於1時(y>0.5)就**為正例,反之為負例。現在將m+/m-定義為觀測機率,m+為訓練集中正例數目,m-為負例數目。當訓練集是真實樣本的無偏估計時(很遺憾,這種情況並不容易達到),觀測機率就代表了真實機率。

從而當y/1-y大於m+/m-時,我們再讓分類判定為正例,這就是類別不平衡問題的乙個基本策略:再縮放。

機器學習 周志華 第三章 線性模型

線性模型檢視學的乙個通過屬性的線性組合來進行 的函式。如公式3 1所示。外鏈轉存失敗 img znxwdron 1564968507771 3d w 1x 1 w 2x 2 w dx d b 它可以用向量形式改寫,如公式3 2所示。外鏈轉存失敗 img kiy4xxqu 1564968472267 ...

機器學習 周志華 筆記 第2章

經驗誤差,也叫訓練誤差,在訓練集上的誤差,與之對應的是泛化誤差 generalization error,在新樣本上的誤差 評估乙個好的模型顯然是泛化誤差最小。但是實際上事先並不知道新樣本是什麼,所以實際能做的是最小化經驗誤差。經驗誤差也不能完全決定模型的泛化誤差,會存在過擬合現象。書中簡單說明了過...

機器學習 周志華 課後習題 第2章 模型評估與選擇

2.1 資料集包含1000個樣本,其中500個正例 500個反例,將其劃分為包含70 樣本的訓練集和30 樣本的測試集用於留出法評估,試估算共有多少種劃分方法。解 考慮到資料分布的一致性,訓練集應包含350個正例和350個反例 因此,劃分方法有 c 500 350 c 500 350 種。2.2 資...