from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import decisiontreeclassifier
import numpy as np
import pandas as pd
# 載入iris資料集
data_sets=load_iris(
)x=data_sets.data
y=data_sets.target
data=np.c_[x,y]
cols=data_sets.feature_names+
['class'
]df=pd.dataframe(data,columns=cols)
print
(df.shape)
df.head(
)
(150, 5)
sepal length (cm)
sepal width (cm)
petal length (cm)
petal width (cm)
class
05.1
3.51.4
0.20.0
14.9
3.01.4
0.20.0
24.7
3.21.3
0.20.0
34.6
3.11.5
0.20.0
45.0
3.61.4
0.20.0
# 處理資料
x=df.loc[
:,df.columns!=
'class'
]y=df[
'class'
]x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=
0.3,shuffle=
true
,random_state=
1)
# 構造模型
dtree=decisiontreeclassifier(criterion=
"gini"
,# 特徵選擇標準:預設是gini,可選entropy資訊增益
splitter=
"best"
,# 節點處劃分標準:
# 預設best用於小樣本集,在特徵所有劃分點鐘找出最優劃分點;
# random用於大樣本集,在特徵部分劃分點中找出區域性最優劃分點;
max_depth=
none
,# 樹的最大深度:預設none,資料小時不限制,資料大時靈活限制
min_samples_split=2,
# 內部節點再劃分所需要的最小樣本數:預設2,資料集大時才調整
min_samples_leaf=1,
# 限制葉子結點內的最小樣本數:預設是1,小於設定值,會和兄弟節
# 點一起被剪枝。資料集大時才調整
min_weight_fraction_leaf=0,
# 葉子節點最小的樣本權重和:預設0,適用於缺失值過多
max_features=
none
,# 劃分時考慮最大特徵數:預設none,表示考慮全部,特徵數過多時考慮
max_leaf_nodes=
none
,# 限制最大葉子節點數,防止過擬合:預設none,特徵過多時考慮
min_impurity_decrease=0,
# 預剪枝策略,預設0,如果當前葉節點純度小於閾值被剪枝
class_weight=
none
)# 指定類別權重:如果樣本類別分布特別不均衡,用balanced自動調整
dtree.fit(x_train,y_train)
# 訓練模型
features_im=dtree.feature_importances_.tolist(
)# 特徵重要性
print
('特徵重要性:'
,dict
(zip
(x.columns,features_im)))
y_pred=dtree.predict(x_test)
# **樣本
score=dtree.score(x_test,y_test)
# 評價方式為準確率
print
("準確率:"
,score)
特徵重要性:
準確率: 0.9555555555555556
# 視覺化
決策樹演算法
決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...
決策樹演算法
本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...
決策樹演算法
引 最近老師布置了課堂展示的作業,主題是決策樹,老師還舉了買西瓜的決策例子,感覺貼近生活也很有意思。在這之前沒有了解過這個概念,通過幾個禮拜的學習收穫不少。一 首先,什麼是決策樹?個人而言,決策樹就是將人在做決策時的思維脈絡以樹的形式展示出來的產物,即決策的過程模型。這是一棵去不去打高爾夫球的決策樹...