1. 程式人生 > >輕松入門機器學習之概念總結(二)

輕松入門機器學習之概念總結(二)

消息 目的 作者 固定 erp 效率 dev 常用 度量

歡迎大家前往雲加社區,獲取更多騰訊海量技術實踐幹貨哦~

作者:許敏

接上篇:機器學習概念總結筆記(一)

8)邏輯回歸

logistic回歸又稱logistic回歸分析,是一種廣義的線性回歸分析模型,常用於數據挖掘,疾病自動診斷,經濟預測等領域。例如,探討引發疾病的危險因素,並根據危險因素預測疾病發生的概率等。以胃癌病情分析為例,選擇兩組人群,一組是胃癌組,一組是非胃癌組,兩組人群必定具有不同的體征與生活方式等。因此因變量就為是否胃癌,值為“是”或“否”,自變量就可以包括很多了,如年齡、性別、飲食習慣、幽門螺桿菌感染等。自變量既可以是連續的,也可以是分類的。然後通過logistic回歸分析,可以得到自變量的權重,從而可以大致了解到底哪些因素是胃癌的危險因素。同時根據該權值可以根據危險因素預測一個人患癌癥的可能性。

考慮具有p個獨立變量的向量技術分享圖片,設條件概率技術分享圖片為根據觀測量相對於某事件發生的概率。邏輯回歸模型可表示為:
技術分享圖片

上式右側形式的函數稱為邏輯函數。下圖給出其函數圖象形式。

技術分享圖片

其中技術分享圖片。如果含有名義變量,則將其變為dummy變量。一個具有k個取值的名義變量,將變為k-1個dummy變量。這樣,有

技術分享圖片

定義不發生事件的條件概率為

技術分享圖片

那麽,事件發生與事件不發生的概率之比為

技術分享圖片

這個比值稱為事件的發生比(the odds of experiencing an event),簡稱為odds。因為0<p<1,故odds>0。對odds取對數,即得到線性函數

技術分享圖片

假設有n個觀測樣本,觀測值分別為技術分享圖片。設技術分享圖片為給定條件下得到yi=1(原文技術分享圖片

)的概率。在同樣條件下得到yi=0(技術分享圖片)的條件概率為技術分享圖片。於是,得到一個觀測值的概率為

技術分享圖片

因為各項觀測獨立,所以它們的聯合分布可以表示為各邊際分布的乘積。

技術分享圖片

上式稱為n個觀測的似然函數。我們的目標是能夠求出使這一似然函數的值最大的參數估計。於是,最大似然估計的關鍵就是求出參數技術分享圖片,使上式取得最大值。對上述函數求對數

技術分享圖片

上式稱為對數似然函數。為了估計能使取得最大的參數技術分享圖片的值。

對此函數求導,得到p+1個似然方程。

技術分享圖片

上式稱為似然方程。為了解上述非線性方程,應用牛頓-拉斐森(Newton-Raphson)方法進行叠代求解。

9)貝葉斯分類

貝葉斯分類器的分類原理是通過某對象的先驗概率,利用貝葉斯公式計算出其後驗概率,即該對象屬於某一類的概率,選擇具有最大後驗概率的類作為該對象所屬的類。先驗概率(prior probability)是指根據以往經驗和分析得到的概率,如全概率公式,它往往作為"由因求果"問題中的"因"出現的概率·。後驗概率是指在得到“結果”的信息後重新修正的概率,如貝葉斯公式中的。是“執果尋因”問題中的"果"。先驗概率與後驗概率有不可分割的聯系,後驗概率的計算要以先驗概率為基礎。後驗概率實際上就是條件概率。目前研究較多的貝葉斯分類器主要有四種,分別是:NB、TAN、BAN和GBN。

樸素貝葉斯分類器(Naive Bayes Classifier,或 NBC)發源於古典數學理論,有著堅實的數學基礎,以及穩定的分類效率。同時,NBC模型所需估計的參數很少,對缺失數據不太敏感,算法也比較簡單。理論上,NBC模型與其他分類方法相比具有最小的誤差率。但是實際上並非總是如此,這是因為NBC模型假設屬性之間相互獨立,這個假設在實際應用中往往是不成立的,這給NBC模型的正確分類帶來了一定影響。左圖是樸素貝葉斯網絡,BCD之間獨立,右圖表示一般貝葉斯網絡,BCD之間存在關聯關系。貝葉斯網絡不可成環。

技術分享圖片

TAN(Tree Augmented Naive Bayes, TAN 增強樹貝葉斯分類器),TAN算法通過發現屬性對之間的依賴關系來降低NB中任意屬性之間獨立的假設。它是在NB網絡結構的基礎上增加屬性對之間的關聯(邊)來實現的。實現方法是:用結點表示屬性,用有向邊表示屬性之間的依賴關系,把類別屬性作為根結點,其余所有屬性都作為它的子節點。通常,用虛線代表NB所需的邊,用實線代表新增的邊。屬性Ai與Aj之間的邊意味著屬性Ai對類別變量C的影響還取決於屬性Aj的取值。這些增加的邊需滿足下列條件:類別變量沒有雙親結點,每個屬性有一個類別變量雙親結點和最多另外一個屬性作為其雙親結點。找到這組關聯邊之後,就可以計算一組隨機變量的聯合概率分布如下:其中ΠAi代表的是Ai的雙親結點。由於在TAN算法中考慮了n個屬性中(n-1)個兩兩屬性之間的關聯性,該算法對屬性之間獨立性的假設有了一定程度的降低,但是屬性之間可能存在更多其它的關聯性仍沒有考慮,因此其適用範圍仍然受到限制。

BAN(BN Augmented Naive Bayes, BAN)分類器進一步擴展TAN分類器,允許各特征結點之間的關系構成一個圖,而不只是樹。

BMN(Bayes Multi-Net分類器)作為分類器對應一組貝葉斯網,類結點的每個可能取值均對應一個貝葉斯網。BMN可看作是BAN的推廣,BAN認為對各個不同的類各特征之間的關系是不變的,而BMN則認為對類變量的不同取值,各特征之間的關系可能是不一樣的。

GBN(General Bayes Network, 廣義貝葉斯網絡)是一種無約束的貝葉斯網分類器,和其他貝葉斯網分類器有較大區別的是,在其他分類器中均將類變量作為一特殊的結點,是各特征結點的父結點,而GBN中將特征結點作為一普通結點。GBN假設對整個數據集有一單一聯合概率分布,而BMN則認為對不同的分類有不同的聯合概率分布。因而對那些數據集有單一內在概率模型的應用使用GBN更合適,而對那些不同類的數據集其特征之間的依賴關系差異較大的應用場合,則使用BMN更合適。

LBR(Lazy learning of Bayesian Rules, LBR懶惰貝葉斯規則分類器)

HNB(Hidden Naive Bayes隱樸素貝葉斯)

DMNB(Discriminative Multinomial Naive Bayes基於多重判別分析的樸素貝葉斯)

10)支持向量分類

支持向量機(Support Vector Machine) 名字聽起來很炫,功能也很炫,但公式理解起來常有眩暈感。所以本文嘗試不用一個公式來說明SVM的原理,以保證不嚇跑一個讀者。理解SVM有四個關鍵名詞: 分離超平面、最大邊緣超平面、軟邊緣、核函數 。

分離超平面 ( separating hyperplane ) :處理分類問題的時候需要一個決策邊界,好象楚河漢界一樣,在界這邊我們判別A,在界那邊我們判別B。這種決策邊界將兩類事物相分離,而線性的決策邊界就是分離超平面。

最大邊緣超平面(Maximal Margin Hyperplane) :分離超平面可以有很多個,怎麽找最好的那個呢,SVM的作法是找一個“最中間”的。換句話說,就是這個平面要盡量和兩邊保持距離,以留足余量,減小泛化誤差,保證穩健性。或者用中國人的話講叫做“執中”。以江河為國界的時候,就是以航道中心線為界,這個就是最大邊緣超平面的體現。在數學上找到這個最大邊緣超平面的方法是一個二次規劃問題。

軟邊緣(Soft Margin) :但世界上沒這麽美的事,很多情況下都是“你中有我,我中有你”的混雜狀態。不大可能用一個平面完美的分離兩個類別。在線性不可分情況下就要考慮軟邊緣了。軟邊緣可以破例允許個別樣本跑到其它類別的地盤上去。但要使用參數來權衡兩端,一個是要保持最大邊緣的分離,另一個要使這種破例不能太離譜。這種參數就是對錯誤分類的懲罰程度C。

核函數(Kernel Function), 為了解決完美分離的問題,SVM還提出一種思路,就是將原始數據映射到高維空間中去,直覺上可以感覺高維空間中的數據變的稀疏,有利於“分清敵我”。那麽映射的方法就是使用“核函數”。如果這種“核技術”選擇得當,高維空間中的數據就變得容易線性分離了。而且可以證明,總是存在一種核函數能將數據集映射成可分離的高維數據。看到這裏各位不要過於興奮,映射到高維空間中並非是有百利而無一害的。維數過高的害處就是會出現過度擬合。

所以 選擇合適的核函數以及軟邊緣參數C就是訓練SVM的重要因素 。一般來講,核函數越復雜,模型越偏向於擬合過度。在參數C方面,它可以看作是 Lasso算法中的lambda的倒數,C越大模型越偏向於擬合過度,反之則擬合不足。實際問題中怎麽選呢?用人類最古老的辦法,試錯。

常用的核函數有如下4類:1)Linear:使用它的話就成為線性向量機,效果基本等價於Logistic回歸。但它可以處理變量極多的情況,例如文本挖掘。2)polynomial:多項式核函數,適用於圖像處理問題。3)Radial basis,高斯核函數,最流行易用的選擇。參數包括了sigma,其值若設置過小,會有過度擬合出現。4)sigmoid:反曲核函數,多用於神經網絡的激活函數。

11)分類決策樹ID3

ID3算法是一種貪心算法,用來構造決策樹。ID3算法起源於概念學習系統(CLS),以信息熵的下降速度為選取測試屬性的標準,即在每個節點選取還尚未被用來劃分的具有最高信息增益的屬性作為劃分標準,然後繼續這個過程,直到生成的決策樹能完美分類訓練樣例。

ID3算法最早是由羅斯昆(J. Ross Quinlan)於1975年在悉尼大學提出的一種分類預測算法,算法的核心是“信息熵”。ID3算法通過計算每個屬性的信息增益,認為信息增益高的是好屬性,每次劃分選取信息增益最高的屬性為劃分標準,重復這個過程,直至生成一個能完美分類訓練樣例的決策樹。

決策樹是對數據進行分類,以此達到預測的目的。該決策樹方法先根據訓練集數據形成決策樹,如果該樹不能對所有對象給出正確的分類,那麽選擇一些例外加入到訓練集數據中,重復該過程一直到形成正確的決策集。決策樹代表著決策集的樹形結構。決策樹由決策結點、分支和葉子組成。決策樹中最上面的結點為根結點,每個分支是一個新的決策結點,或者是樹的葉子。每個決策結點代表一個問題或決策,通常對應於待分類對象的屬性。每一個葉子結點代表一種可能的分類結果。沿決策樹從上到下遍歷的過程中,在每個結點都會遇到一個測試,對每個結點上問題的不同的測試輸出導致不同的分支,最後會到達一個葉子結點,這個過程就是利用決策樹進行分類的過程,利用若幹個變量來判斷所屬的類別。

以下是一些信息論的基本概念:

定義1:若存在n個相同概率的消息,則每個消息的概率p是1/n,一個消息傳遞的信息量為-Log2(1/n)

定義2:若有n個消息,其給定概率分布為P=(p1,p2…pn),則由該分布傳遞的信息量稱為P的熵,記為。

定義3:若一個記錄集合T根據類別屬性的值被分成互相獨立的類C1C2..Ck,則識別T的一個元素所屬哪個類所需要的信息量為Info(T)=I(p),其中P為C1C2…Ck的概率分布,即P=(|C1|/|T|,…..|Ck|/|T|)

定義4:若我們先根據非類別屬性X的值將T分成集合T1,T2…Tn,則確定T中一個元素類的信息量可通過確定Ti的加權平均值來得到,即Info(Ti)的加權平均值為:

Info(X, T)=(i=1 to n 求和)((|Ti|/|T|)Info(Ti))

定義5:信息增益度是兩個信息量之間的差值,其中一個信息量是需確定T的一個元素的信息量,另一個信息量是在已得到的屬性X的值後需確定的T一個元素的信息量,信息增益度公式為:

Gain(X, T)=Info(T)-Info(X, T)

ID3衍生出來了C4.5和CART決策樹算法。

信息增益實際上是ID3算法中用來進行屬性選擇度量的。它選擇具有最高信息增益的屬性來作為節點N的分裂屬性。該屬性使結果劃分中的元組分類所需信息量最小。對D中的元組分類所需的期望信息為下式:

技術分享圖片

Info(D)又稱為熵。

現在假定按照屬性A劃分D中的元組,且屬性A將D劃分成v個不同的類。在該劃分之後,為了得到準確的分類還需要的信息由下面的式子度量:

技術分享圖片

信息增益定義為原來的信息需求(即僅基於類比例)與新需求(即對A劃分之後得到的)之間的差,即

技術分享圖片
一般說來,對於一個具有多個屬性的元組,用一個屬性就將它們完全分開幾乎不可能,否則的話,決策樹的深度就只能是2了。從這裏可以看出,一旦我們選擇一個屬性A,假設將元組分成了兩個部分A1和A2,由於A1和A2還可以用其它屬性接著再分,所以又引出一個新的問題:接下來我們要選擇哪個屬性來分類?對D中元組分類所需的期望信息是Info(D) ,那麽同理,當我們通過A將D劃分成v個子集Dj(j=1,2,…,v)之後,我們要對Dj的元組進行分類,需要的期望信息就是Info(Dj),而一共有v個類,所以對v個集合再分類,需要的信息就是公式(2)了。由此可知,如果公式(2)越小,是不是意味著我們接下來對A分出來的幾個集合再進行分類所需要的信息就越小?而對於給定的訓練集,實際上Info(D)已經固定了,所以選擇信息增益最大的屬性作為分裂點。

但是,使用信息增益的話其實是有一個缺點,那就是它偏向於具有大量值的屬性。什麽意思呢?就是說在訓練集中,某個屬性所取的不同值的個數越多,那麽越有可能拿它來作為分裂屬性。例如一個訓練集中有10個元組,對於某一個屬相A,它分別取1-10這十個數,如果對A進行分裂將會分成10個類,那麽對於每一個類Info(Dj)=0,從而式(2)為0,該屬性劃分所得到的信息增益(3)最大,但是很顯然,這種劃分沒有意義。

相關推薦

機器學習概念總結筆記(一)
機器學習概念總結筆記(三)
機器學習概念總結筆記(四)


此文已由作者授權騰訊雲技術社區發布,轉載請註明原文出處

輕松入門機器學習之概念總結(二)