前言
一、機器學習中分類和預測算法的評估,那麼是根據哪些因素來評估一個算法的好壞和優越:
- 準确性
- 速度
- 強壯行
- 可規模性
- 可解釋性
決策樹-監督學習
決策樹是一個類似于流程圖的樹結構:每個内部結點表示在一個屬性上的測試,每個分支代表一個屬性輸出,而每個樹葉結點代表類或類分布,樹的最頂層是根結點。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TTU1EMBpnW1lzRhZjVXRGN1clWv5kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL4ATOyAzNxEjM2IzMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
決策樹的優缺點
優點:直覺,便于了解,小規模資料集有效
缺點:處理連續變量不好,類别較多時,錯誤增加的比較快,可規模性一般
案例:
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! (__) 嘻嘻……