Visualizing a Decision Tree
Google Machine Learning Recipes 2
官方中文博客
http://chinagdg.org/2016/03/machine-learning-recipes-for-new-developers/
視頻地址
http://v.youku.com/v_show/id_XMTUzNDE5Mzg0MA==.html?f=26979872&from=y1.2-3.4.3
Github工程地址
https://github.com/ahangchen/GoogleML
歡迎Star锄奢,也歡迎到Issue區(qū)討論
我們從Iris問題,學(xué)習(xí)決策樹可視化,了解決策樹工作過程婚度。
Why decision Tree
有很多分類器
- Artificial neural network
- Support Vector Machine
- Lions
- Tigers
- Bears
為啥有這么多動物……
決策樹好處
- Easy to read and understand
- 僅有的可解釋的幾種模型之一(能理解分類器做決策的過程)
決策樹就是一系列關(guān)于feature的判斷作為結(jié)點(diǎn)婴程,以label為葉子的一棵樹。因此feature越好,結(jié)果也越好旱眯。
Iris
經(jīng)典機(jī)器學(xué)習(xí)問題:識別三種Iris
可以在維基看到這個數(shù)據(jù)集的詳細(xì)信息耕魄,共 50 * 3 = 150 條記錄
四個feature:Sepal length, Sepal width, Petal length, Petal width
三個label:setosa, versicolor, virginica画恰。
可以從sklearn中直接導(dǎo)入。
組成
- metadata: feature_names, target_names(這個其實(shí)就是label names)吸奴,描述數(shù)據(jù)用
- data: 具體feature數(shù)據(jù)允扇,是一個數(shù)組,數(shù)組中的每個元素是dataset中的一條數(shù)據(jù)
- target: 具體label數(shù)據(jù)则奥,是一個數(shù)組
目標(biāo)
- 導(dǎo)入數(shù)據(jù)
- 訓(xùn)練分類器
- 預(yù)測新的花的label
- 查看決策樹
測試數(shù)據(jù)
- 非訓(xùn)練數(shù)據(jù)的真實(shí)數(shù)據(jù)考润,測試分類器的準(zhǔn)確度,
- 這里從dataset中抽出第0读处,第50糊治,第100條作為測試數(shù)據(jù)
- numpy是一個Python的數(shù)據(jù)處理庫,查看官方Tutorial學(xué)習(xí)更多
- 測試有很多內(nèi)容罚舱,后面還會有井辜。
環(huán)境
可視化使用了pydot,但Pycharm會升級anaconda中的包管闷,導(dǎo)致找不到粥脚,我執(zhí)行了
sudo /home/cwh/anaconda2/bin/conda install -p /home/cwh/anaconda2 pydot -y
重新安裝pydot修復(fù)pydot找不到的問題;
另外pydot會找不到Graphviz包个,需要再安裝
sudo /home/cwh/anaconda2/bin/conda install -p /home/cwh/anaconda2 Graphviz -y
然后將Graphviz添加到環(huán)境變量中刷允,修改/etc/environment為以下內(nèi)容,重啟系統(tǒng)(我的系統(tǒng)是Ubuntu14.04LTS):
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/cwh/android-sdk-linux/ndk-bundle:/home/cwh/android-sdk-linux/platform-tools:/home/cwh/anaconda2/pkgs/graphviz-2.38.0-1/bin"
然后又會有Graphviz中找不到libgvplugin_pango.so.6的問題碧囊,根據(jù)官網(wǎng)Issue的解答树灶,應(yīng)該是少了依賴庫
ldd /home/cwh/anaconda2/pkgs/graphviz-2.38.0-1/lib/graphviz/libgvplugin_pango.so.6
發(fā)現(xiàn)libpng16 not found,于是安裝libpng16糯而,在這里下載破托,然后安裝,
./configure
make
sudo make install
sudo ldconfig
再運(yùn)行代碼即可歧蒋。
代碼
Viz:以Iris為例土砂,導(dǎo)入數(shù)據(jù),訓(xùn)練分類器谜洽,預(yù)測萝映,查看決策樹