1980年機器學習作為一支獨立的力量登上了歷史舞臺。在這之后的10年里出現(xiàn)了一些重要的方法和理論,典型的代表是:分類與回歸樹(CART,1984)、反向傳播算法(1986)、卷積神經(jīng)網(wǎng)絡(luò)(1989)。
從1990到2012年,機器學習逐漸走向成熟和應(yīng)用,在這20多年里機器學習的理論和方法得到了完善和充實,可謂是百花齊放的年代。代表性的重要成果有:支持向量機(SVM,1995)、AdaBoost算法(1997)、循環(huán)神經(jīng)網(wǎng)絡(luò)和LSTM(1997)、流形學習(2000)、隨機森林(2001)。
下面我們對部分機器學習代表算法進行介紹。
?線性回歸
在機器學習中,我們有一組輸入變量(x)用于確定輸出變量(y)。輸入變量和輸出變量之間存在某種關(guān)系,機器學習的目標是量化這種關(guān)系。
在線性回歸中,輸入變量(x)和輸出變量(y)之間的關(guān)系表示為y=ax+b的方程。因此,線性回歸的目標是找出系數(shù)a和b的值。這里,a是直線的斜率,b是直線的截距。上圖顯示了數(shù)據(jù)集的x和y值,線性回歸的目標是擬合最接近大部分點的線。
?分類與回歸樹(CART)
CART是決策樹的一個實現(xiàn)方式,由ID3,C4.5演化而來,是許多基于樹的bagging、boosting模型的基礎(chǔ)。CART可用于分類與回歸。
CART是在給定輸入隨機變量x條件下輸出隨機變量y的條件概率分布,與ID3和C4.5的決策樹不同的是,ID3和C4.5生成的決策樹可以是多叉的,每個節(jié)點下的叉數(shù)由該節(jié)點特征的取值種類而定,比如特征年齡分為(青年,中年,老年),那么該節(jié)點下可分為3叉。而CART的假設(shè)決策樹為二叉樹,內(nèi)部結(jié)點特征取值為“是”和“否”。左分支取值為“是”,右分支取值為“否”。這樣的決策樹等價于遞歸地二分每一個特征,將輸入空間劃分為有限個單元,并在這些單元上預(yù)測概率分布,也就是在輸入給定的條件下輸出條件概率分布。
?隨機森林(Random Forest)
隨機森林指的是利用多棵決策樹對樣本進行訓練并預(yù)測的一種分類器。它包含多個決策樹的分類器,并且其輸出的類別是由個別樹輸出的類別的眾數(shù)而定。隨機森林是一種靈活且易于使用的機器學習算法,即便沒有超參數(shù)調(diào)優(yōu),也可以在大多數(shù)情況下得到很好的結(jié)果。隨機森林也是最常用的算法之一,因為它很簡易,既可用于分類也能用于回歸。
其基本的構(gòu)建算法過程如下:
1)用N來表示訓練用例(樣本)的個數(shù),M表示特征數(shù)目。
2)輸入特征數(shù)目m,用于確定決策樹上一個節(jié)點的決策結(jié)果;其中m應(yīng)遠小于M。
3)從N個訓練用例(樣本)中以有放回抽樣的方式取樣N次,形成一個訓練集(即bootstrap取樣),并用未抽到的用例(樣本)作預(yù)測,評估其誤差。
4)對于每一個節(jié)點,隨機選擇m個特征,決策樹上每個節(jié)點的決定都是基于這些特征確定的。根據(jù)這m個特征,計算其最佳的分裂方式。
5)每棵樹都會完整成長而不會剪枝,這有可能在建完一棵正常樹狀分類器后被采用。
?邏輯回歸
邏輯回歸最適合二進制分類(y=0或1的數(shù)據(jù)集,其中1表示默認類)例如:在預(yù)測事件是否發(fā)生時,發(fā)生的事件被分類為1(在預(yù)測人會生病或不生病,生病的實例記為1)。它是以其中使用的變換函數(shù)命名的,稱為邏輯函數(shù)h(x)=1/(1+e-x),它是一個S形曲線。
在邏輯回歸中,輸出是以缺省類別的概率形式出現(xiàn)的。因為這是一個概率,所以輸出在0-1的范圍內(nèi)。輸出(y值)通過對數(shù)轉(zhuǎn)換x值,使用對數(shù)函數(shù)h(x)=1/(1+e-x)來生成,然后應(yīng)用一個閾值來強制這個概率進入二元分類。
樸素貝葉斯(Naive Bayesian)
樸素貝葉斯法是基于貝葉斯定理與特征條件獨立假設(shè)的分類方法。樸素貝葉斯分類器基于一個簡單的假定:給定目標值時屬性之間相互條件獨立。
通過以上定理和“樸素”的假定,我們知道:
P(Category|Document)=P(Document|Category)*P(Category)/P(Document)
樸素貝葉斯的基本方法:在統(tǒng)計數(shù)據(jù)的基礎(chǔ)上,依據(jù)條件概率公式,計算當前特征的樣本屬于某個分類的概率,選擇最大的概率分類。
對于給出的待分類項,求解在此項出現(xiàn)的條件下各個類別出現(xiàn)的概率。哪個概率最大,就認為此待分類項屬于哪個類別。其計算流程表述如下:
1)x={a1,a2,...,am}為待分類項,每個ai為x的一個特征屬性
2)有類別集合C={y1,y2,...,yn}
3)計算P(y1|x),P(y2|x),...,P(yn|x)
4)如果P(yk|x)=max{P(y1|x)
?k最近鄰(kNN)
kNN(k-Nearest Neighbor)的核心思想是如果一個樣本在特征空間中的k個最相鄰的樣本中的大多數(shù)屬于某一個類別,則該樣本也屬于這個類別,并具有這個類別上樣本的特性。該方法在確定分類決策上只依據(jù)最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。kNN方法在做類別決策時,只與極少量的相鄰樣本有關(guān)。由于kNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對于類域的交叉或重疊較多的待分樣本集來說,kNN方法較其他方法更為適合。