機器學習 03 線性模型

2021-10-10 03:01:29 字數 3319 閱讀 9773

談及線性模型,其實我們很早就已經與它打過交道,還記得高中數學必修3課本中那個頑皮的「最小二乘法」嗎?這就是線性模型的經典演算法之一:根據給定的(x,y)點對,求出一條與這些點擬合效果最好的直線y=ax+b,之前我們利用下面的公式便可以計算出擬合直線的係數a,b(3.1中給出了具體的計算過程),從而對於乙個新的x,可以**它所對應的y值。前面我們提到:在機器學習的術語中,當**值為連續值時,稱為「回歸問題」,離散值時為「分類問題」。本篇先從線性回歸任務開始,接著討論分類和多分類問題。

線性回歸問題就是試圖學到乙個線性模型盡可能準確地**新樣本的輸出值

eg例如:通過歷年的人口資料**2023年人口數量。在這類問題中,往往我們會先得到一系列的有標記資料,例如:2000—>13億…2016—>15億,這時輸入的屬性只有乙個,即年份;也有輸入多屬性的情形,假設我們**乙個人的收入,這時輸入的屬性值就不止乙個了,例如:(學歷,年齡,性別,顏值,身高,體重)—>15k。

有時這些輸入的屬性值並不能直接被我們的學習模型所用,需要進行相應的處理,對於連續值的屬性,一般都可以被學習器所用,有時會根據具體的情形作相應的預處理,例如:歸一化等;對於離散值的屬性,可作下面的處理:

(1)當輸入屬性只有乙個的時候,就是最簡單的情形,也就是我們高中時最熟悉的「最小二乘法」(euclidean distance),首先計算出每個樣本**值與真實值之間的誤差並求和,通過最小化均方誤差mse,使用求偏導等於零的方法計算出擬合直線y=wx+b的兩個引數w和b,計算過程如下圖所示:

(2)當輸入屬性有多個的時候,例如對於乙個樣本有d個屬性,則y=wx+b需要寫成:

通常對於多元問題,常常使用矩陣的形式來表示資料。在本問題中,將具有m個樣本的資料集表示成矩陣x,將係數w與b合併成乙個列向量,這樣每個樣本的**值以及所有樣本的均方誤差最小化就可以寫成下面的形式:

同樣地,我們使用最小二乘法對w和b進行估計,令均方誤差的求導等於0,需要注意的是,當乙個矩陣的行列式不等於0時,我們才可能對其求逆,因此對於下式,我們需要考慮矩陣(x的轉置*x)的行列式是否為0,若不為0,則可以求出其解,若為0,則需要使用其它的方法進行計算,書中提到了引入正則化,此處不進行深入。

另一方面,有時像上面這種原始的線性回歸可能並不能滿足需求,例如:y值並不是線性變化,而是在指數尺度上變化。這時我們可以採用線性模型來逼近y的衍生物,例如lny,這時衍生的線性模型如下所示,實際上就是相當於將指數曲線投影在一條直線上,如下圖所示:

更一般地,考慮所有y的衍生物的情形,就得到了「廣義的線性模型」(generalized linear model),其中,g(*)稱為聯絡函式(link function)。

回歸就是通過輸入的屬性值得到乙個**值,利用上述廣義線性模型的特徵,是否可以通過乙個聯絡函式,將**值轉化為離散值從而進行分類呢?線性機率回歸正是研究這樣的問題。對數機率引入了乙個對數機率函式(logistic function),將**值投影到0-1之間,從而將線性回歸問題轉化為二分類問題。

若將y看做樣本為正例的概率,(1-y)看做樣本為反例的概率,則上式實際上使用線性回歸模型的**結果器逼近真實標記的對數機率。因此這個模型稱為「對數機率回歸」(logistic regression),也有一些書籍稱之為「邏輯回歸」。下面使用最大似然估計的方法來計算出w和b兩個引數的取值,下面只列出求解的思路,不列出具體的計算過程。

線性判別分析(linear discriminant analysis,簡稱lda),其基本思想是:將訓練樣本投影到一條直線上,使得同類的樣例盡可能近,不同類的樣例盡可能遠。如圖所示:

想讓同類樣本點的投影點盡可能接近,不同類樣本點投影之間盡可能遠,即:讓各類的協方差之和盡可能小,不用類之間中心的距離盡可能大。基於這樣的考慮,lda定義了兩個散度矩陣。

因此得到了lda的最大化目標:「廣義瑞利商」(generalized rayleigh quotient)。

從而分類問題轉化為最優化求解w的問題,當求解出w後,對新的樣本進行分類時,只需將該樣本點投影到這條直線上,根據與各個類別的中心值進行比較,從而判定出新樣本與哪個類別距離最近。求解w的方法如下所示,使用的方法為λ乘子。

若將w看做乙個投影矩陣,類似pca的思想,則lda可將樣本投影到n-1維空間(n為類簇數),投影的過程使用了類別資訊(標記資訊),因此lda也常被視為一種經典的監督降維技術。​

現實中我們經常遇到不只兩個類別的分類問題,即多分類問題,在這種情形下,我們常常運用「拆分」的策略,通過多個二分類學習器來解決多分類問題,即將多分類問題拆解為多個二分類問題,訓練出多個二分類學習器,最後將多個分類結果進行整合得出結論。最為經典的拆分策略有三種:「一對一」(ovo)、「一對其餘」(ovr)和「多對多」(mvm),核心思想與示意圖如下所示。

類別不平衡(class-imbanlance)就是指分類問題中不同類別的訓練樣本相差懸殊的情況,例如正例有900個,而反例只有100個,這個時候我們就需要進行相應的處理來平衡這個問題。常見的做法有三種:

在訓練樣本較多的類別中進行「欠取樣」(undersampling),比如從正例中採出100個,常見的演算法有:easyensemble。

在訓練樣本較少的類別中進行「過取樣」(oversampling),例如通過對反例中的資料進行插值,來產生額外的反例,常見的演算法有smote。

直接基於原資料集進行學習,對**值進行「再縮放」處理。其中再縮放也是代價敏感學習的基礎。

機器學習 線性模型

這篇文章總結了 3 種線性模型 線性回歸 對數線性回歸和邏輯斯蒂回歸 logistic regression,lr,對數機率回歸 假設資料集 d 其中 x i x x dots x y in r 也就是,資料集 d 共包含 m 個樣本,每個樣本含有 d 個屬性.線性回歸的目標是找到引數 w w 1,...

機器學習之線性模型

一 基本形式 定義 給定由d個屬性描述的示例x x1 x2 xd 其中xi是x在第i個屬性上的取值,線性模型試圖學得乙個通過屬性的線性組合來進行 的函式,即 f x w1x1 w2x2 wdxd b 一般用向量形式寫成 其中二 典型的線性模型簡介 1 線性回歸 給定資料集d 如果將上面的屬性關係更加...

機器學習筆記 線性模型

寫在前面的一些廢話 伴隨課程以及自習,學得既算系統也算零散。學校多統計,演算法講解幾近寥寥。自古以來,統計系的教授多半樂於指摘機器學習與人工智慧,但學科總又不得不與之掛鉤密切,且多隨其發展潮起潮落。內部糾紛,不足為外人道已。只有深受其紛雜概念困擾的學習者,感觸頗深。不隨時總結,建立知識庫,實在容易迷...