Google機器學(xué)習(xí)筆記(二)決策樹與可視化

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é)點,以label為葉子的一棵樹。因此feature越好,結(jié)果也越好。

Iris

經(jīng)典機器學(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(這個其實就是label names),描述數(shù)據(jù)用
  • data: 具體feature數(shù)據(jù),是一個數(shù)組,數(shù)組中的每個元素是dataset中的一條數(shù)據(jù)
  • target: 具體label數(shù)據(jù),是一個數(shù)組

目標(biāo)

  1. 導(dǎo)入數(shù)據(jù)
  2. 訓(xùn)練分類器
  3. 預(yù)測新的花的label
  4. 查看決策樹

測試數(shù)據(jù)

  • 非訓(xùn)練數(shù)據(jù)的真實數(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

再運行代碼即可。

代碼

Viz:以Iris為例,導(dǎo)入數(shù)據(jù),訓(xùn)練分類器,預(yù)測,查看決策樹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容