一、寫在前面
本系列是對之前機器學習筆記的一個總結,這裏只針對最基礎的經典機器學習算法,對其本身的要點進行筆記總結,具體到算法的詳細過程可以參見其他參考資料和書籍,這裏順便推薦一下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.應用場景
分類、迴歸。
線性分類、非線性分類