決策樹和隨機森林筆記

一、決策樹

給定一個數據表怎麼畫決策樹。每個內部節點表示在一個屬性上的測試,每一個分支代表一個測試輸出,

1. 以實例爲基礎的歸納信息。決策樹的建立過程是一個遞歸的過程。以信息熵爲度量構造一顆熵值下降信息的過程。信息越多,不確定性越小。決策樹的建立過程是熵不斷的下降過程。哪種下降更快,則以它作爲優先節點。決策樹的生成過程是貪心法,每一步都求當前最優。

決策樹可以自學習。不需要使用者瞭解背景,只要訓練實例進行標註,就能自己學習。是監督學習。

建立決策樹的關鍵,在當前狀態下選擇那個屬性作爲分類依據。根據不同的目標函數,建立決策樹的算法有ID3、C4.5、CART

2.信息增益:當熵和條件熵中的概率有數據估計(特別是極大似然估計)得到時,所對應的熵和條件熵分別稱爲經驗熵和經驗條件熵。表示得知特徵A的信息而使得類X的信息的不確定性減少的程度。

特徵A對訓練數據集D的信息增益g(D,A),定義爲集合D的經驗熵H(D)與特徵A給定條件下D的經驗條件熵H(D|A)之差。其實就是互信息。

基本記號:設訓練數據集爲D,|D|表示其容量,即樣本個數。設有K個類Ck, k = 1,2,...,k,|Ck|爲屬於類Ck的贗本個數。設特徵A有n個不同的取值a1,a2,...,an,根據特徵A的取值將D劃分爲n個子集D1,D2,...Dn,  。Di之和爲D。記子集Di中屬於類Ck的樣本的幾何爲Dik。|Dik|爲Dik的個數。

3.信息增益的計算方法

經驗熵H(D)。計算特徵A對數據集D的經驗條件熵H(D|A)。信息增益:g(D,A) = H(D) - H(D|A).

其中

H(D|A) = -\sum p(D_{k},A_{i})logp(D_{k}|A_{i}) = -\sum p(Ai)p(D_{k}|A_{i})logp(D_{k}|A_{i})=-\sum p(A_{i})\sum p(D_{k}|A_{i})logp(D_{k}|A_{i}) = -\sum \frac{|D_{i}|}{|D|}\sum \frac{|D_{ik}|}{|D_{i}|}log\frac{|D_{ik}|}{|D_{i}|}

信息增益率:gr(D,A) = g(D,A)/H(A)

基尼指數:Gini(p) =\sum p_{k}(1-p_{k}) = 1-\sum p_{k}^{2} = 1-\sum (\frac{|C_{k}|}{D})^{2}

熵的一半與基尼係數、分類誤差率三者關係。與熵有一定的相似性。

4.信息增益來進行特徵選擇的決策樹學習過程,即爲ID3決策。如果是取值更多的屬性,更容易使得數據更純,其信息增益更大,決策樹會首先選這個屬性作爲樹的定點。如果訓練出來的限制是一棵龐大且深度很淺的樹,這樣劃分是不合理的。

C4.5:信息增益率

CART:基尼指數

總結:一個屬性的信息增益越大,表明屬性對樣本的熵減少的能力更強,這個屬性使得數據由不確定性變確定性的能力越強。

決策樹對訓練屬於有很好的分類能力,但對位置的測繪數據未必有好的分類能力,泛化能力弱,即可能發生過擬合現象。可以用剪枝,隨機森林。

二、Bootstraping隨機森林

來自成語“pull up by your own bootstraps”,意思是依靠自己的資源,稱爲自助法,它是一種有放回的抽樣方法。

1.Bagging的策略。bootstrap aggregation。從樣本集中重採樣(有放回的)選出n個樣本,之後再所有屬性上,對着n個樣本建立分類器(ID3、C4.5、CART、SVM、Logistic迴歸等),之後重複以上兩步m次,即獲得了m個分類器,再將數據放在這m個分類器上,最後根據這m個分類器的投票結果(可以是測試集的結果。需要給定一個權重),決定數據屬於哪一類。

另一種表示方式,數據集D,數量n,生成新的測試集Di,每個是n‘,每個有放回的採樣,n'大概有63.2%是不重複的。做決策樹。進行投票,如果是迴歸則取均值。

2.隨機森林在bagging基礎說過那做了修改:從樣本中用Bootstrap採樣選出n個樣本;從所有屬性中隨機選擇k個屬性,選擇最佳跟個屬性作爲節點建立CART決策樹;重複以上兩步m次,即建立了m棵CART決策樹;這m個CART形成隨機森林,通過投票表決結果,決定數據屬於哪一類。

m個決策樹做出的總的結果就是隨機森林。

eg1:求嬰兒頭骨半徑:通過harr特徵提取等對每幅圖片分佈處理,得到M個特徵。N個圖片形成N*M的矩陣;隨機選擇若干特徵和樣本,得到a*b的小矩陣,建立決策樹;重複K此得到隨機森林,投票方法選擇少數服從多數。

eg2:對人的動作的特徵來進行隨機森林算法,通過投票來確定用做那個動作。

3.隨機森林、Bagging和決策樹的關係:當然可以使用呢決策樹作爲基本能分類器;但也可以用SVM、Logistic迴歸等其他分類器,習慣上,這些分類器組成的“總分類器”,依然叫作隨機森林。

4.使用Bagging

過程:做100次bootstrap,每次得到的數據Di,Di的長度爲N,對於每一個Di,使用局部迴歸擬合一條曲線;將這些曲線取平均,即得到紅色的最終擬合曲線;顯然,紅色的曲線更加穩定,並且沒有擬合明顯減弱。

局部加權線性迴歸:在局部求\Theta值。拿出一小段來做線性迴歸,這樣來做,幾乎在任何一點都可以得到最優值。

隨機森林定位信息。

5.投票機制

簡單投票機制:一票否決(一致表決);少數服從多數(有效多數,加權);閾值表決,大於多少或者小於多少。

貝葉斯投票機制:簡單投票發假設每個分類器都是平等的;實際生活中,一個的意見會考慮這個人過去的意見是否有用,加大或者減少權值,基於每個基本分類器在過去的分類表現設定一個權值來判斷。

eg:假定有N個用戶可以爲X個電源投票,投票有1-5擋。如何根據用戶投票,對電影排序?

對某個電影,有N個決策樹,每個決策樹對該電影有1個分類,求這個電影應該屬於哪一類。(如果是小數,分類變成迴歸問題)

一種可能方案:WR = \frac{v}{v+m}R+\frac{m}{v+m}C,其中,WR爲加權得分,R爲該電影的用戶投票的平均得分,C爲所有電影的平均得分,v爲該電影的投票人數,m排名前150名電影最低投票數(150可以具體來調整)

三、總結

1.拉普拉斯矩陣的定義

計算點之間的臨界相似度矩陣W,若兩個點的相似度值越大,這兩個點越相似;W的第i行元素的和爲vi的度,形成定點度對角陣D。未正則的拉普拉斯矩陣:L=D-W;正則拉普拉斯矩陣:對稱拉普拉斯矩陣,隨機遊走拉普拉斯矩陣。

2.譜聚類算法:

(1)未正則拉普拉斯矩陣:輸入n個點,簇的數目k,計算相似度矩陣W和度矩陣D;計算拉普拉斯矩陣L=D-W;計算特徵向量;將列向量組成矩陣U;yi是U的第i行的向量;用kmeans將yi聚類成簇C1,C2,...,Ck;輸出簇A1,A2,...,Ak。

(2)隨機遊走拉普拉斯矩陣,計算正則拉普拉斯矩陣,其他與(1)其他步驟一樣

(3)對稱拉普拉斯矩陣,計算正則拉普拉斯矩陣,對yi進行單位化,其他與(1)一樣

3.切割圖:聚類問題的本質:對於定值k和圖G,選擇一組劃分,A1,A2,...Ak,最小化相似度矩陣和的一半。但是這個目標函數很多情況下,圖分成了一個點和其餘n-1個點,爲了避免這個問題,目標函數應該要求A1,A2,...Ak足夠大,以Ai的點數或者權值爲被除數,使得函數的最小值在|Ai|相等時達到,函數最小數在vol(Ai)相等時達到。從而,目標函數能夠師徒得到平衡的簇。

k=2時 RatioCut:minRatioCut(A,A)。minf'Lf。其中fi的加和爲0,可以看成f和全1向量的點乘,從而f垂直1。f的模是定值。

如果將目標函數約束條件放鬆,將f的嚴格定義用性質代替,向量f各個分量的取值從離散若干個值延伸至整個實數域:

minf'Lf, s.t.f垂直1,||f||=\sqrt{n},根據Rayleigh-Rit定理,該目標解爲L的次小特徵向量。

推廣到k次,前k個

4.譜聚類中的大k,怎麼確定?可以考慮就散得到的各個特徵值,旋轉k,使得前k個特徵值很小,而得到k+1特徵值相對較大

  最後一步的kmeans,作用是怎麼?事實上,目標函數是關於子圖劃分知識向量的函數,該向量的值根據子圖劃分確定,是離散的若干值。但由於問題NP的,轉換成求連續實數域上的解,最後再k-means的辦法離散化。可以用其他方法代替。如有人使用超平面,或者使用k個特徵向量張成一個空間達到同樣的目的。

 首選隨機遊走拉普拉斯矩陣。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章