機器學習中分類和**演算法的評估:
準確率速度
強壯性可規模型
可解釋性
決策樹決策樹是乙個類似於流程圖的結構
節點表示判斷,將連續變數離散化,規定閾值歸類
資訊熵:變數的的不確定性越大,熵也就越大
計算公式:
p(x)為單個事件的概率
決策樹歸納演算法(id3)
選擇屬性判斷結點
資訊獲取量(information gain):gain(a) = info(d) -infor_a(d)
通過a來作為節點分類獲取了多少資訊
選擇資訊獲取量最大的屬性作為根節點,重複此過程直到所有結果都屬於同乙個類。
演算法:
· 樹以代表訓練樣本的單個結點開始(步驟1)。
· 如果
樣本都在同乙個類,
則該結點成
為樹葉,並用
該類標號(步驟2
和3)。
· 否
則,演算法使用稱
為資訊增益的基於
熵的度量作為啟
發資訊,選擇能
夠最好地將樣本分
類的屬性(步驟6
)。該屬性成為該結點的「
測試」或「
判定」屬性(步驟7
)。在演算法的
該版本中,
· 所有的屬性都是分
類的,即離散值。
連續屬性必
須離散化。
· 對測試屬性的每個已知的值,建立乙個分枝,並據此劃分樣本(步驟
8-10)。
· 演算法使用同樣的
過程,遞迴地形成每個劃分上的
樣本判定
樹。一旦乙個屬性出
現在乙個
結點上,就不必
該結點的任何後代上考
慮它(步驟13
)。 · 遞迴劃分步驟僅當下列條件之一成立停止:
· (a)
給定結點的所有樣本屬於同一類(步驟2 和
3)。· (b)
沒有剩餘屬性可以用來
進一步劃分
樣本(步驟4
)。在此情況下,使用多數表決(步驟5
)。 · 這涉及將給定的結點轉換成樹葉,並用樣本中的多數所在的類標記它。替換地,可以存放結
· 點樣本的
類分布。
· (c) 分枝
· test_attribute=a
i沒有樣本(步驟11
)。在這
種情況下,以
samples
中的多數類
· 建立乙個樹葉(步驟12)
特點:貪心演算法,自上而下
其他演算法:c4.5,cart(選擇屬性的度量方法不同
樹剪枝葉:先剪枝,後剪枝
優點:直觀、便於理解、小規模資料集有效
缺點:處理連續變數不好、類別較多時錯誤增加較快、可規模性一般
python機器學習的庫:sickit-learn
特性:簡單高效的資料探勘和機器學習分析
對所有使用者開放,根據不同需求高度可重用性
基於numpy, scipy和matplotlib
開源,商用級別:獲得 bsd許可
覆蓋問題領域:
分類(classification), 回歸(regression), 聚類(clustering), 降維(dimensionalityreduction)
模型選擇(model selection), 預處理(preprocessing)
使用用scikit-learn
安裝scikit-learn: pip,easy_install, windows installer
安裝必要package:numpy, scipy和matplotlib, 可使用anaconda (包含numpy, scipy等科學計算常用
package)
安裝注意問題:python直譯器版本(2.7 or3.4?), 32-bit or 64-bit系統
機器學習筆記 1 決策樹
系統不確定性的度量 先來看2個概念.資訊熵 h theta sum n theta jx j 基尼係數 g 1 sum n p i 2 二者都反映了資訊的不確定性,是資訊不確定性的不同評價標準.關於資訊熵,在數學之美中,有一段通俗易懂的例子.sklearn中使用決策樹 在sklearn中使用deci...
機器學習筆記 決策樹學習
決策樹學習是一種逼近離散值目標函式的方法,在這樣的方法中學習到的函式被表示為一棵決策樹。表示法 把例項從根節點排列到某個葉子節點來分類例項,葉子節點即為例項所屬的分類。樹上的每個節點指定了對例項的某個屬性 attribute 的測試,而且該節點的每個字尾分支相應於該屬性的乙個可能值。分類例項的方法是...
機器學習之決策樹1
好久沒來寫過部落格了,最近忙一些個人的事情終於有一點空閒的時間了,所以決定還是繼續自己喜歡的東西,已經把python的基礎都學得差不多了 雖說有三個月不用我現在又忘得差不多了 然後又看了看方向,感覺還是直接上機器學習比較好 ruby了,高數線代什麼的,邊看邊學再補課吧,要不然需要補得太多,我怕自己看...