天天看點

機器學習之決策樹算法(二)

前言

一、機器學習中分類和預測算法的評估,那麼是根據哪些因素來評估一個算法的好壞和優越:

  • 準确性
  • 速度
  • 強壯行
  • 可規模性
  • 可解釋性

決策樹-監督學習

決策樹是一個類似于流程圖的樹結構:每個内部結點表示在一個屬性上的測試,每個分支代表一個屬性輸出,而每個樹葉結點代表類或類分布,樹的最頂層是根結點。

機器學習之決策樹算法(二)

決策樹的優缺點

優點:直覺,便于了解,小規模資料集有效

缺點:處理連續變量不好,類别較多時,錯誤增加的比較快,可規模性一般

案例:

import pandas as pd
# 資料讀取
iris_data = pd.read_csv('iris.data')
iris_data.columns = ['sepal_length_cm', 'sepal_width_cm', 'petal_length_cm', 'petal_width_cm', 'class']
# 
a = iris_data.head()
print(a)

from sklearn.cross_validation import train_test_split
from sklearn.tree import DecisionTreeClassifier

all_inputs = iris_data[['sepal_length_cm', 'sepal_width_cm',
                         'petal_length_cm', 'petal_width_cm']].values

all_classes = iris_data['class'].values
(training_inputs, testing_inputs, training_classes, testing_classes) = train_test_split(all_inputs, all_classes, train_size=0.75, random_state=1)

#建立模型
decision_tree_classifier = DecisionTreeClassifier()

# 在訓練集上訓練分類器
decision_tree_classifier.fit(training_inputs, training_classes)

# 使用分類準确性驗證測試集上的分類器
decision_tree_classifier.score(testing_inputs, testing_classes)
           

輸出結果:0.97368421052631582

完整代碼我這裡就不貼了。。。到時我會上傳到github! (__) 嘻嘻……