【機器學習】k近鄰算法(kNN)

一、寫在前面

        本系列是對之前機器學習筆記的一個總結,這裏只針對最基礎的經典機器學習算法,對其本身的要點進行筆記總結,具體到算法的詳細過程可以參見其他參考資料和書籍,這裏順便推薦一下Machine Learning in Action一書和Ng的公開課,當然僅有這些是遠遠不夠的,更深入的研究分析可以參見其他國外的論文及站點,此處不再一一列舉。機器學習更多的是建模應用,這裏僅是一個概要總結,並歸納分析各種算法優缺點,這些都是要了如指掌並且非常熟悉的。

 

        關於機器學習:

        基本上目前互聯網公司的機器學習/數據挖掘的算法崗位都會涉及到這些東西,而對於計算機方向的研究生都會接觸這些。對於機器學習,僅僅懂得這些算法的基本思想和大致流程遠遠不夠,尤其對於工業界的應用層面,關係到應用業務課題,更多要求的是非常熟悉如何去使用它,什麼場合使用,算法優缺點,調參經驗等等。

 

        機器學習算法總體分類:

1.監督學習:分類、迴歸

2.無監督學習:聚類、密度估計、降維

3.其他

 

         列舉一下機器學習經典算法:

k近鄰算法(kNN)

決策樹C4.5、ID3、CART樹迴歸(9章)

迭代決策樹GBRT(漸進梯度迴歸樹):決策樹的變體,boosting,殘差訓練,串行算法,每棵樹用前一棵樹的殘差來訓練

RF隨機森林:主要思想是bagging並行算法,用很多弱模型組合出一種強模型

樸素貝葉斯

logistic迴歸(實質是分類算法)

線性迴歸:1.線性迴歸LR、2.縮減係數:嶺迴歸、lasso、前向逐步迴歸(這纔是真正迴歸)

支持向量機SVM: SMO、核函數處理高維數據

Boosting:Adaboosting

非均衡分類問題

        1.訓練時正例數據與反例數據不相等、相差很大

        2.衡量分類器成功程度的指標:錯誤率、正確率、召回率、ROC曲線

        3.處理非均衡問題的方法:數據抽樣可以對分類器訓練數據進行改造:欠抽樣(刪除樣例)過抽樣(複製樣例)

聚類算法——K均值算法(K-means)

********************************************************************

聚類:1.基於劃分的聚類:k-means、k-medoids(每個類別找一個樣本來代表)、Clarans

             2.基於層次的聚類:(1)自底向上的凝聚方法,比如Agnes

                                             (2)自上而下的分裂方法,比如Diana

             3.基於密度的聚類:Obsacn、Optics、Birch(CF-Tree)、Cure

             4.基於網格的方法:Sting、WaveCluster

             5.基於模型的聚類:EM、SOM、Cobweb

********************************************************************

    k-means:優點:.容易實現,……

                    缺點:.容易局部收斂……

關聯規則分析(一):Apriori

關聯規則挖掘(二):頻繁模式樹FP-growth

推薦系統

        1.基於內容的實現:KNN等

        2.基於協同濾波(CF)實現:SVD → pLSA(從LSA發展而來,由SVD實現)、LDA、GDBT

pLSA

LDA主題模型

Regularization(正則化)

異常檢測

EM算法、HMM(隱馬爾科夫模型)


二、kNN算法

1.算法流程

         (1)計算抑制類別數據集中的點與當前點的距離歐氏距離、馬氏距離等)

        (2) 按照距離遞增依次排序

        (3) 選取當前點距離最小的k個點

        (4) 確定k個點所在類別出現頻率

        (5) 返回前k個點出現頻率最高類別作爲當前點的預測分類


注意:

l  關於k值個數的選擇,其取決於數據。一般地,在分類時,較大k可以減小噪聲的影響,但會使類別界限變得模糊。

               Ø  好的k可以通過各種啓發式技術來獲取(eg.交叉驗證)

               Ø  噪聲非相關性特徵向量的存在會使k近鄰算法的準確性減小

l  近鄰算法具有較強的一致性結果,隨着數據趨於無線,算法的錯誤率不會超過貝葉斯算法錯誤率的2倍。對於一些好的k值,k近鄰保證錯誤率不會超過貝葉斯理論誤差率。

l  關於流程中距離計算歐式距離馬氏距離



2.優缺點、數據類型

優點:精度高,對異常值不敏感,無數據輸入假定。

         1.可以用作分類迴歸

         2.可以用作線性分類非線性分類

        3.訓練時間複雜度O(n)

        4.準確度高,對數據沒有假設,對離羣點outliner不敏感

缺點:計算複雜度高,空間複雜度高

         1.計算量大

         2.樣本不均衡問題(即:有時類樣本很多,有時類樣本很少)

         3.需要大量內存

 

數據類型:數值型、標稱型

 

3.應用場景

分類、迴歸。

線性分類、非線性分類

 


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