iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
AI/ ML & Data

ML/DL-新手選手村系列 第 7

day7_常見ML分類演算法:決策樹(decision tree)、隨機森林(random forest)(2/5)


  • 分享至 

  • xImage
  •  
  • 今日我們要學習的目標:

  • 度量decision tree的標準:熵「entropy」,gini不純度

  • CART的steps

  • CART 的程式碼範例

  • 想像一下,我們有兩個圖片,一張圖片包含4個圈圈(圖一),另一張則為2個圈圈與兩個叉叉(圖二):


  • 熵「entropy」,未「entropy」:

  • 定義:混亂程度的度量,其實就是表示某物件佔所有物品的比例,如果是圖一因為全部都是圈圈,表示物件越純,就是0。可以看出如下公式只是多加了log_2,絕對值越小,表示物種越純,所以可知(圖一)全部為圈圈,最純entropy為0,反之,同理可推。

  • 公式 :-\sum p(\frac{i}{t}) log_2 p(\frac{i}{t}),其中表示物品i,t表示datasets

圖一帶入公式:
entropy(圖一) = -4/4[log2 (4/4)] = 0
entropy(圖二) = - 2/4[log2 (2/4)] - 2/4[log2 (2/4)] = -1

  • gini不純度:為entropy公式的變形,同樣也是作為混亂程度的度量指標。值越小,表示物品越純,如(圖一),值等於0.5表示
物品均勻分配如圖二


  • 公式:1 - (\sum p(\frac{i}{t}) )^2

gini不純度(圖一)= 1 - [4/4]^2 = 0
gini不純度(圖二)= 1 -[2/4]^2 - [2/4]^2 = 0.5

CART steps :

1.載入DecisonTreeClassifier model

2.模型配飾

3.模型預測

4.模型效能

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

#1.載入DecisonTreeClassifier model
decisionTreeModel = DecisionTreeClassifier(criterion="entropy", max_depth=2, random_state=101)

#2.模型配飾
decisionTreeModel.fit(X_train, y_train)

#3.模型預測
predicted = decisionTreeModel.predict(X_train)

#4.模型效能
accuracy_score = decisionTreeModel.score(X_train, y_train)
  • criterion 是選擇decision tree度量的標準,分為entropy 或是 gini不純度。

  • max_depth 是樹的最大高度.

  • random_state 是隨機種子,目地是確保我們計算出來的節果會有一致的標準。

  • decisionTreeModel.fit 是分別將X與y的train datasets(或稱sets),其中的X與y分別是day3所說的特徵與標籤(target)

  • 明天我們將開始介紹radom forest的起源,原理,步驟等,敬請期待。


上一篇
day6_常見ML分類演算法:決策樹(decision tree)、隨機森林(random forest)(1/5)
下一篇
day8_常見ML分類演算法:決策樹(decision tree)、隨機森林(random forest)(3/5)
系列文
ML/DL-新手選手村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言