0.決策樹整理
0.0 文章索引
2.書籍案例介紹:《資料探勘——你必須知道的32個經典案例(第2版)》;
3.其他。
1.python-sklearn使用
1.1 過程描述
1.1.1 核心步驟
1.1.2 程式流程解釋
1.2 **
# 匯入模組
from sklearn import tree
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
import graphviz
defmain()
: wine = load_wine(
)# wine.data 特徵資料
# wine.target 標籤資料
# wine.feature_names 特徵列名
# wine.target_names 標籤列名
"""將資料轉為pandas中的dataframe型別
import pandas as pd
pd.concat([pd.dataframe(wine.data), pd.dataframe(wine.target)], axis=1)
"""x_train, x_test, y_train, y_test = train_test_split(wine.data, wine.target, test_size=
0.3, random_state=1)
print
(y_train.dtype)
# x_train.shape 訓練集的行列大小
""" sklearn呼叫三部曲:1.初始化模型;2.訓練模型;3.獲取結果;
需要注意的是:
1.決策樹的生成具有一定的隨機性,因此可以通過random_state以及splitter調整隨機性;
2.剪枝:通過設定max_depth(限定決策樹最深層數),
min_samples_leaf(限定屬於葉子節點的樣本量)
以及min_samples_split(限定分出分支的樣本量條件)
等引數進行;
"""clf = tree.decisiontreeclassifier(criterion=
"entropy"
, random_state=30,
splitter=
"random"
, max_depth=3)
# 初始化分類器 clf=classifier
clf = clf.fit(x_train, y_train)
# 訓練分類器
score = clf.score(x_test, y_test)
# 匯出結果,返回accuracy(測試集上的表現)
# 也可以輸出在訓練集上的表現:score_train = clf.score(x_train, y_train)
print
(score)
""" 畫決策樹:
通過graphviz配合tree.export_graphviz()函式使用
函式的引數分別為clf訓練好的模型,feature_nmes特徵名稱和class_names標籤名稱;
以及rounded(節點形狀是否圓角)和filled(節點顏色,顏色越淺不純度越高)引數設定為true或false
"""dot_data = tree.export_graphviz(clf,
feature_names=wine.feature_names,
class_names=wine.target_names,
filled=
true
, rounded=
true
) graph = graphviz.source(dot_data)
graph.view(
)"""
輸出特徵的重要性:
feature_importances_屬性返回特徵的重要性(數值越大越重要),對於決策樹來說有可能有些特徵沒有被用到;
list()函式使得其可以直接print輸出
zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表;
"""# clf.feature_importances_
print
(list
(zip
(wine.feature_names, clf.feature_importances_)))
pass
if __name__ ==
'__main__'
: main(
)
1.3案例練習
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import listedcolormap
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import standardscaler
from sklearn.datasets import make_moons, make_circles, make_classification
from sklearn.tree import decisiontreeclassifier
2.《資料探勘——你必須知道的32個經典案例(第2版)》
2.1 原文整理
資料分析 決策樹
引言高二 1 班的小明同學和小方同學為了準備即將進行的校園羽毛球大賽,準備近乙個月的時間去練習打球。不過,並不是每一天都適合練球。通常,小明和小方需要考慮一些因素來決定今天是否適合打羽毛球,比如 今天是否有場地 若沒有室內場地,就只能選擇室外場地 如果是要在室外練習的話,天氣是否合適,是否會颳風等,...
資料探勘 決策樹
分類是資料探勘的乙個非常重要的主題,現實中的很多問題都和分類密切相關。我們日常正是因為有了分類技巧,才能對不同的事物 場景採取不同的應對方式。資料分類可以看做是乙個兩步的過程。第一步是學習過程,我們根據所需要分析的問題和資料建立乙個分類器classifier。用我們選擇好的訓練元組對分類器進行訓練,...
資料探勘 決策樹
決策樹是以樹狀結構表示資料分類的結果 非葉子結點代表測試的條件。分支代表測試的結果 1.資訊熵 informationentropy 是度量樣本集合純度最常用的一種指標。2.基尼係數 gini 是度量樣本集合不確定性指標。基尼指數與熵可近似看做是統一概念,都是越大,確定性越差 基尼指數和資訊熵的影象...