決策樹(decision tree)是一種樹形結構,其中每個內部節點表示乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉節點代表一種類別。
數學中的排列大家應該都學過,結果跟元素的順序有關,如果建立乙個列表,列出從1到20選擇3個數的所有排列,下面這兩項是不同的:
5,8,10
8,5,10
舉個例子,假設學校要開乙個熱狗店,你想做個海報,用數字顯示如何訂購熱狗、小麵包、番茄醬、芥末醬和洋蔥的所有可能的組合。所以我們需要得出總共有多少種可能的組合。
這個問題的乙個解決方法就是使用決策樹。如下圖:
每個決策點都有兩種選擇,是或者否。樹的每一條路徑分別描述了熱狗各部分不同的組合。加粗顯示的那條路徑的選擇:熱狗+芥末醬+番茄醬。
現使用巢狀迴圈來列出所有的組合,也就是這顆決策樹的所有路徑。
這裡需要有5個決策點,也就是決策樹有5層,對應程式需要有5個巢狀迴圈(圖上只顯示了決策樹的前4層)。
print("\t\t熱狗 \t小麵包 \t芥末醬 \t番茄醬 \t洋蔥")
count = 1
for dog in [0,1]:
for bun in [0,1]:
for ketchup in [0,1]:
for mustard in [0,1]:
for onion in [0,1]:
print("#",count,"\t",dog,"\t\t",bun,"\t\t",ketchup,"\t\t",\
mustard,"\t\t",onion)
count += 1
執行之後的結果是:
這就是熱狗、小麵包、番茄醬、芥末醬和洋蔥的所有組合了。
這樣看來,決策樹是不是還挺有意思呢。
決策樹入門案例
import pandas as pd from sklearn.model selection import train test split from sklearn.feature extraction import dictvectorizer 特徵轉換器 from sklearn.tree...
python實現決策樹
決策樹是乙個 模型 他代表的是物件屬性與物件值之間的一種對映關係。樹中每個節點表示某個物件,而每個分叉路徑則代表某個可能的屬性值,而每個葉節點則對應從根節點到該葉節點所經歷的路徑所表示的物件的值。詳細關於決策樹的討論,請自行google。一 找到最優分割位置 1 針對樣本資料,需要在其不同的維度 d...
python畫決策樹
2.安裝python外掛程式graphviz pip install graphviz 3.安裝python外掛程式pydotplus。conda install c conda forge pydotplus 這樣環境就搭好了,有時候python會很笨,仍然找不到graphviz,這時,可以在 裡...