當前位置:
首頁 > 最新 > 決策樹分類預測過程可視化

決策樹分類預測過程可視化

開始前的準備工作

首先導入所需庫文件,numpy,pandas用於數值處理,DictVectorizer用於特徵處理,graphviz用於模型可視化。

#導入所需庫文件

import numpy as np

import pandas as pd

from sklearn.feature_extraction import DictVectorizer

from sklearn import cross_validation

from sklearn import tree

import graphviz

導入所需的數據文件,用於訓練和評估模型表現。

#導入數據表

test=pd.DataFrame(pd.read_csv( TEST_ML_v2.csv ,header=0,encoding= GBK ))

特徵處理

第二步,對特徵進行處理。

#特徵處理

X_df=test[[ City , Item category , Period , Gender , Age , Market channels , Self-agent , Category , Loan channels ]]

X_list=X_df.to_dict(orient="records")

vec = DictVectorizer()

X=vec.fit_transform(X_list)

Y=np.array(test[ Status ])

劃分訓練集和測試集數據。

#劃分訓練集和測試集數據

X_train,X_test,y_train,y_test=cross_validation.train_test_split(X.toarray(),Y,test_size=0.4,random_state=0)

訓練模型並進行預測

使用訓練集數據對決策樹模型進行訓練,使用測試集數據評估模型表現。

#訓練模型

clf = tree.DecisionTreeClassifier(max_depth=5)

clf=clf.fit(X_train,y_train)

clf.score(X_test,y_test)

簡單對測試集的第一組特徵進行預測,結果與實際值相符。

#對測試集數據進行預測

clf.predict(X_test[0]),y_test[0]

(array([ Charged Off ], dtype=object), Charged Off )

查看具體的分類概率值。

#查看分類概率

clf.predict_proba(X_test[0])

array([[ 1., 0.]])

決策樹分類預測可視化

第三步,對決策樹的分類預測過程進行可視化,首先查看分類結果及特徵的名稱。

#獲取分類名稱

clf.classes_

array([ Charged Off , Fully Paid ], dtype=object)

#獲取特徵名稱

vec.get_feature_names()

[ Age ,

Category=Car ,

Category=Digital ,

Category=Jewelery ,

Category=Luxury ,

Category=Watch ,

Period=1 period ,

Period=2 period ,

Period=3 period ,]

對決策樹進行可視化,feature_names為特徵名稱,class_names為分類結果名稱。

#決策樹可視化

dot_data = tree.export_graphviz(clf, out_file=None,

feature_names=vec.get_feature_names(),

class_names=clf.classes_,

filled=True, rounded=True,

special_characters=True)

graph = graphviz.Source(dot_data)

graph

將分類結果保存為PDF格式文檔。

#導出PDF文檔

graph.render("test_e1")

END

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 藍鯨的網站分析筆記 的精彩文章:

TAG:藍鯨的網站分析筆記 |