基礎分類算法小結(一)

學習了一些基礎分類算法的Python實現,對比之前只看書的方法,這一次看程序幫助理解更深,防止忘記,屢一下思路。

1.樸素貝葉斯(Naivebayes)

(1)原理:對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認爲此待分類項屬於哪個類別。
1.樸素的含義:特徵相互獨立性
2.對極大似然估計的修正問題。(防止0概率)
(2)實現:
<1>計算每個分類的類別概率p(y1)、p(y2)...
<2>計算不同類別下各個屬性的概率p(x1|y1)、p(x2|y1)、p(x3|y1)...p(x1|y2)、p(x2|y2)...
<3>
p(x|y1)=p(x1|y1)*p(x2|y1)*p(x3|y1)*...

......

<4>求後驗概率:p(y1|testx)=p(x|y1)*p(y1)/Σ(對各類來說分母都一樣,所以只算分子)

                               p(y2|testx)=p(x|y2)*p(y2)

......

比較後驗概率,選擇最大的所對應類別。

(3)對於特徵相關性不大的預測效果很好


2.k近鄰算法(KNN)

(1)實現:<1>計算一個預測樣本到各個訓練樣本的距離(相似度)

<2>k一般指在15以內的奇數,表示離預測樣本最近的K個訓練樣本。

對距離排序後,選擇出前K個距離值小的訓練樣本對應的類別。

<3>K裏哪個類別最多,即爲預測類別


(2)特點:比較簡單的一個方法,準確率一般。K多的時候訓練太慢、盲目計算所有距離。
   改進:加權距離、計算壓縮到在接近測試樣本鄰域的小範圍內(kd樹)

3.邏輯迴歸(logistics regesstion)
一般用於兩類分類
(1)實現: <1>連續值映射到離散二值上,對sigmoid function的理解。(與樣本的概率聯繫起來)
<2>代價函數最小(梯度下降法)訓練權值。
<3>做出分類
具體參看洞庭小哥的總結:http://blog.csdn.net/dongtingzhizi/article/details/15962797
(2)用於多分類時候,一對多思想,幾個類就訓練出幾組權值,帶入測試數據選擇使概率最大的權值對應的類別。(待實現)參看博主bass58的博                                                文:http://blog.csdn.net/bdss58/article/details/42065383




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章