如何在 Python 中使用決策樹構建分類器?


決策樹是隨機森林演算法的基本構建塊。它被認為是機器學習中最流行的演算法之一,用於分類目的。它們非常受歡迎,因為它們易於理解。

決策樹給出的決策可以用來解釋為什麼做出了某個預測。這意味著使用者可以清楚地瞭解過程的輸入和輸出。它們也是整合方法(如 Bagging、隨機森林和梯度提升)的基礎。它們也被稱為 CART,即分類和迴歸樹。它可以視覺化為二叉樹(在資料結構和演算法中學習到的)。

樹中的每個節點都表示單個輸入變數,葉子節點(也稱為終端節點)包含輸出變數。這些葉子節點用於對節點進行預測。在建立決策樹時,基本思想是將給定的空間劃分為多個部分。所有值都被列出,並嘗試不同的分割,以便獲得較低的成本和最佳的預測值。這些值以貪婪的方式選擇。

這些節點的分割一直持續到達到樹的最大深度。使用決策樹的目的是根據特定特徵值將輸入資料集劃分為更小的資料集,直到每個目標變數都屬於一個類別。進行此分割是為了在每一步獲得最大的資訊增益。

每個決策樹都以根節點開始,這是進行第一次分割的地方。應該設計一種有效的方法來確保節點的定義。

這就是基尼係數發揮作用的地方。基尼係數被認為是衡量不平等的最常用度量之一。不平等是指每個節點中的子集可能屬於的目標類(輸出)。

因此,在每次分割後計算基尼係數。根據基尼係數/不平等值,可以定義資訊增益。

DecisionTreeClassifier 用於執行多類分類。

以下是相同的語法。

class sklearn.tree.DecisionTreeClassifier(*, criterion='gini',…)

以下是一個示例 -

示例

from sklearn import tree
from sklearn.model_selection import train_test_split
my_data = [[16,19],[17,32],[13,3],[14,5],[141,28],[13,34],[186,2],[126,25],[176,28],
[131,32],[166,6],[128,32],[79,110],[12,38],[19,91],[71,136],[116,25],[17,200], [15,25], [14,32],[13,35]]
target_vals =['Man','Woman','Man','Woman',
'Woman','Man','Woman','Woman',
'Woman','Woman','Woman','Man','Man',
'Man','Woman', 'Woman', 'Woman',
'Woman','Man','Woman','Woman']
data_feature_names = ['Feature_1','Feature_2']
X_train, X_test, y_train, y_test = train_test_split(my_data, target_vals, test_size = 0.2, random_state = 1)
clf = tree.DecisionTreeClassifier()
print("The decision tree classifier is being called")
DTclf = clf.fit(my_data,target_vals)
prediction = DTclf.predict([[135,29]])
print("The predicted value is ")
print(prediction)

輸出

The decision tree classifier is being called
The predicted value is
['Woman']

解釋

  • 所需的包被匯入到環境中。
  • 該程式碼用於根據特徵值對目標值的分類。
  • 定義特徵向量和目標值。
  • 使用“train_test_split”函式將資料分割成訓練集和測試集。
  • 呼叫 DecisionTreeClassifier 並將資料擬合到模型。
  • “predict”函式用於預測特徵值的預測值。
  • 輸出顯示在控制檯上。

更新於:2020-12-10

115 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.