機器學習筆記5 線性模型(二)

2021-07-26 11:36:23 字數 2459 閱讀 9222

四、線性判別分析

線性判別分析(linear discriminant analysis,lda)的思想是:把全體美女集中到操場上,在操場上畫出一條白直線,設法將每位美女都投影到這條線上,使女神的投影點盡可能集中到一起,女漢子的投影點盡可能集中到一起,而且女神們投影點的中心和女漢子們投影點的中心盡可能遠。然後再來新的美女就看她的投影點落在**。

方法不難,問題是怎麼畫這條白直線,即如何確定這條直線的方程 y = w' x?

想要讓女神們的投影點盡可能集中(離得近),那就可以讓她們投影點的協方差盡可能小,女漢子也是如此。

想要讓女神們投影點的中心和女漢子們投影點的中心盡可能遠,可以用l2範數表達出這個距離,使這個範數的值盡可能大。

上述想要盡可能大的範數,和想要盡可能小的兩個協方差,都與w相關,讓二者相比,讓結果最大化就可以求出w,進而確定這條白直線。

在上述求解過程中,通過變換剝離出w,可以定義「類間散度矩陣」(between-class scatter matrix)sb,和「類內散度矩陣」(within-class scatter matrix)sw。其中sb對應在分子的範數,衡量兩個投影點中心的距離;sw對應在分母的兩個協方差,衡量女神和女漢子內部投影點的聚集程度。

lda欲最大化的目標就是j = w』 sb w / w』 sw w

利用拉格朗日乘子法和奇異值分解可解出w。

lda也可以推廣到多分類任務中,並可視作將樣本投影到n - 1維空間,n - 1通常遠小於樣本資料原有屬性數,因此lda也常被視為一種經典的監督降維技術。

五、多分類學習

多分類問題可基於一些策略利用二分類學習器來解決,其基本思路是拆解法,即把多分類任務拆解為若干二分類任務,然後對結果進行整合,獲得多分類結果。

如果我們要讓doudog把美女分為古典、冷豔、狂野、溫柔4種型別,常用的拆分策略主要有三種:

一對一(one vs. one,ovo),對n個類別兩兩配對,產生n ( n - 1 ) / 2個二分類器。要建立古典-冷豔、古典-狂野、古典-溫柔、冷豔-狂野、冷豔-溫柔、狂野-溫柔6個分類器,新來的美女要同時交給這6個分類器進行分類,把被**的最多的類別作為最終分類結果。

一對其餘(one vs. rest,ovr),將其中乙個類作為正例,其他所有類都作為反例,產生n個分類器。要建立古典-非古典、冷豔-非冷豔、狂野-非狂野、溫柔-非溫柔4個分類器,如果多個分類器結果都為正例,則以置信度最大的為準。

多對多(many vs. many,mvm),將若干個類作為正例,剩下的類作為反例,產生m個分類器。多對多的正反類必須有特殊的設計,不能隨意選取。一般常用「糾錯輸出碼」(error correcting output codes,ecoc)技術,總共分兩步:

· 編碼:對4種美女型別做5次劃分,比如可建立f1古典冷豔-狂野溫柔、f2古典狂野-冷豔溫柔、f3溫柔-古典冷豔狂野、f4冷豔狂野-古典溫柔、f5古典狂野溫柔-冷豔5個分類器(如下圖所示)。

· 解碼:用上述5個分類器分別對測試樣本進行測試,**標記組成乙個編碼(如下圖最後一行),將這個編碼與每個類別各自的編碼比較,其中距離最小的類別作為最終**結果(如下圖最右邊一列)。如下列ecoc編碼示意圖,很明顯,這個測試樣例的美女屬於狂野型別的。

之所以叫做糾錯輸出編碼,是因為它具有一定的容錯能力,比如上圖中對測試樣例的**編碼是00011,假設測試分類器f2出錯了,如下圖所示,測試**編碼為01011,但最終的分類結果還是狂野美女。

一般來說,對同乙個學習任務,ecoc的編碼越長,糾錯能力就越強,但是產生的分類器就越多,計算、儲存開銷就會增大。此外類別是有限的,可能的劃分也是有限的。

六、類別不平衡問題

用1000位美女訓練doudog學會識別女神,如果1000位裡面有999位都是女漢子,那麼doudog只要把所有人都**為女漢子就能達到99.9%的精度,這樣訓練出來的狗當然沒有任何價值。

這種在分類任務中不同類別的訓練樣例數差別很大的情況就是類別不平衡。

現有技術處理類別不平衡學習一般有三類做法:

1、欠取樣(undersampling),即對訓練集裡的女漢子欠取樣,去除一些女漢子,使訓練集中女神與女漢子的數目接近。

2、過取樣(oversampling),即對訓練集裡的女神過取樣,增加一些女神;

3、閾值移動(threshold-moving),訓練集不變,但在用訓練好的分類器進行**時,利用「再縮放」(rescaling)思想改變決策策略:

在對新樣本分類時,事實上是用y = w'x +b**出y的值與乙個閾值比較。

如果訓練集中正、反例的數目相同或基本相同,則y > 0.5為正例,即 y / 1-y > 1為正例,否則為反例。

如果訓練集中正、反例的數目相差較大時,若 y / 1-y > 正例數目 / 反例數目,則為正例,否則為反例。

再縮放策略也是代價敏感學習的基礎,在代價敏感學習中用cost+ / cost-或cost10 / cost01來代替上述正例數目 / 反例數目。

原創宣告:「機器學習筆記」系列文章為本人(李博 blog.xzlib.com)

機器學習筆記(二) 線性模型

正定矩陣 設m是n階方陣,如果對任何非零向量z,都有 ztmz 0,其中 zt表示z的轉置,就稱m正定矩陣 對數機率函式 logistic function 替代單位階躍函式,是一種sigmoid函式,對應的模型是對數機率回歸模型,但實際上是一種分類方法 極大似然估計的計算 1 寫出似然函式。2 求...

機器學習筆記 線性模型

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

機器學習線性模型學習筆記

參考 周志華機器學習第三章 給定由d個屬性描述的示例x x1 x2 x d 其中xi是x在第i個屬性上的取值,線性模型試圖學得乙個通過屬性的線性組合來進行 函式,即 f x w 1x1 w2x2 wdx d b 一般用向量形式寫成 f x w tx b 其中w w1 w2 w d w和b學得之後,模...