You are on page 1of 13

資科三A 10173143 柯建丞

2023-12-12

樸素⾙式演算法預測客⼾是否流失

安裝 e1071 套件

導入數據 並分成訓練數據和測試數據
70%的數據⽤於訓練 30%的數據⽤於測試

使⽤ e1071 套件中的 naiveBayes 函數構建了⼀個朴素⾙葉斯模型,然後使⽤


這個模型對訓練數據和測試數據進⾏預測,最後計算了混淆矩陣

1
預測結果

2
Decision Tree

使⽤sklearn創建了⼀個基於決策樹的機器學習模型,以預測患者對哪種藥物會有反應,
根據他們的年齡、性別、膽固醇⽔平、⾎壓以及⾎液中的鈉-鉀比例。

獲取數據

3
探索數據分析

進⾏探索性數據分析(EDA)以及必要的預處理,以滿⾜決策樹的假設。

數據集包含6列,具有適當的數據類型,且沒有缺失值。
模型使⽤剩餘的5列來預測 'Drug' 列。

有5種類型的藥物。檢查它們的分佈以確保數量是否平衡。

4
數量嚴重不平衡,其中⼀種藥物的出現頻率為45.5%。因此,使⽤準確度來衡量模型
的性能並不適當。相反,我將使⽤加權 F15 分數。。
決策樹的⼀個假設是所有特徵都是數值型的。
因此,對於名義特徵,使⽤獨熱編碼是合適的,對於有序特徵,可以使⽤序數編碼。
性別是⼀個名義特徵,⽽⾎壓和膽固醇則都是有序特徵。

將 'BP' 和 'Cholesterol' 使⽤序數編碼,'Sex' 使⽤獨熱編碼,並保留了未指定的其他特徵。


這是為了滿⾜決策樹模型的假設,即所有特徵都應該是數值型的。

6
訓練模型

將數據劃分為訓練集和測試集。由於數量不平衡,使⽤了分層抽樣(strati cation)。
模型將在70%的數據上進⾏訓練,並在剩餘的30%上進⾏測試。

為了找到決策樹的最佳參數,使⽤ grid search with 5-fold cross validation.

7
fi
最佳模型達到了100% 的驗證準確度

8
9
可視化決策樹。可以看到,這些類別只需要少數的分割就能夠被區分開來。
Drug Y 只需經過⼀個問題的提問,Drug A 和 B 在三個問題後能夠被區分開,⽽Drug C
和 X 在四個問題後能夠完全區分開。此外,當檢視葉⼦節點時,可以看到沒有任何剩餘數
據點很少的葉⼦節點。這表明樹模型不是過度擬合。

10
模型評估與討論

在這⼀部分,模型將在測試數據上進⾏評估。

可以看出,模型在給定的任務上學到了⼀些東⻄,
然⽽,在將藥物A和藥物B進⾏分類時,它仍然犯了⼀些錯誤。

模型在樣本138中犯了⼀個錯誤

11
如果我們參考決策樹的可視化結果,我們可以觀察到藥物A和B是根據患者的年齡來區分的。
如果患者的年齡是51歲或更低,則他們將對藥物A產⽣反應,否則,他們將對藥物B產⽣反應。
患者138的年齡是51歲,恰好處於邊界。
我們可以得出結論,模型的錯誤非常⼩,整體上具有很好的泛化性。

12
觀察模型估計的特徵重要性,並可視化樹模型對數據的決策過程。

根據結果,似乎最重要的特徵是鈉-鉀比。
此外,在預測患者對藥物的反應時,患者的性別是不重要的。
因此,我們可以從數據集中移除性別,並在檢查新患者時忽略記錄性別。

13

You might also like