python資料分析與挖掘實戰 第九章 拓展練習
這一章的拓展練習感覺是比較簡單的。基本上沒有太多讓人糾結的地方。沒有特徵提取和資料規約,讓事情簡單了不少。當然不包括寫出C4.5的決策樹,我也沒有那麼寫。
讀取資料,劃分訓練集和測試集,不用多說。
雖然題目要求的使用決策樹,不過我依然使用了SVC做了一次。很巧合的是,同樣也是要把train放大,我這裡放大了30倍,但好像這不是我測試中效果最好的一次,不過就這一把,有興趣各位可以再試。結果如下:
這是訓練集:
這是測試集:
大概看看,感覺效果不是特別好,不過我也有做到過效果很好的結果。
3.決策樹方法
由於題目要求的是c4.5演算法,但是sklearn並沒有c4.5的資訊增益率的演算法,所以我做了另外兩個,也就是對應的ID3演算法和CART演算法的結果。如果有可以使用c4.5演算法的辦法,請告知我。
先看ID3演算法的結果。
訓練集(和上面SVC採用的是相同的訓練集和測試集):
測試集:
視覺化結果:
再看一下CART演算法的結果:
訓練集:
測試集:
決策樹視覺化:
結論:
由此看出決策樹在分類過程中,雖然過程不同,但結果相似。
而我多次的試驗中發現,ID3和CART兩個演算法下,結果也不是絕對相同的,也出現過分類結果不同的情況。請加以注意。
而SVC和決策樹演算法相比,效果就差了不少。當然,我這裡給出的結果中,決策樹法好像訓練集是全部正確的結果,但這只是偶然結果,多數時候並不會全部正確。但總體而言,正確率是高於SVC的。
而SVC影響正確率有一個關鍵就是資料值的放大倍數,合適的放大倍數會使得結果的準確率提高很多。