機器學習算法總結
算法學習暫時告一段落,葵鍋我把自己所理解的算法原理,通過通俗的語言闡述給大家,希望能幫助你,也歡迎大家及時指正!最後有附算法實現代碼。
一、k-NN
k-NN 算法(k-Nearest Neighbor),也叫 k 近鄰算法,是最簡單的算法,算法中的守門員。若葵鍋使用了一個高大上的算法,最後評估結果不如k-NN,那這個算法就不適用該業務場景。
1、基本原理
尋找出某樣本附近最近的k個樣本,然後算出不同標籤(或叫類別也叫y)下樣本數,最後把該樣本的標籤標記爲樣本數最多所屬標籤。
**官方定義:**找到離其最近的k個樣本,並將這些樣本稱之爲「近鄰」(nearest neighbor);對這k個近鄰,查看它們的都屬於何種類別;然後根據“少數服從多數,一點算一票”原則進行判斷,數量最多的的標籤類別就是新樣本的標籤類
別。
2、實現過程
2.1 算距離
一般選擇歐式距離或餘弦距離,相當於計算相似度。
2.2 找鄰居
將距離進行排序,找出距離最近的k個訓練對象放入鄰居集合。重點是尋找最佳的K,一般使用交叉驗證方法,並畫出學習曲線。
2.3 做分類
自鄰居集合中取出前k名,查看它們的標籤,對這k個點的標籤求和,以多數決,得到可能類別。需要加入懲罰項時,權重就是距離的倒數,然後對權重求log,最後按類別分組求權重求log後之和。
3、注意事項
只要是距離類算法必須做歸一化處理,消除量綱的影響。歸一化公式是(當前數據-最小值)/(最大值-最小值)。也可以直接調用preprocessing.MinMaxScaler實現。先分訓練集和測試集,再歸一化!
4、模型特點
1、應用廣泛
2、計算效率低,耗費計算資源較大
3、抗噪性較弱,對噪聲數據(異常值)較敏感
4、模型不穩定,可重複性較弱
5、需要進行歸一化處理(所有的距離類算法都這樣)
二、決策樹
樹模型通過遞歸式切割的方法來尋找最佳分類標準,進而最終形成規則。分成分類樹和迴歸樹兩類。採用‘分而治之’原則,解釋性非常強。
1、基本原理
使用熵判斷特徵所屬結點類型生成分類的樹型結構(二叉樹或多叉樹)。
2、實現過程
2.1 特徵選擇
計算不純度,方法有熵、基尼係數、誤分類誤差、信息增益、信息增益比。選擇不純度值最小的作爲根結點或內部結點。
2.2 生成樹結構
依據遞歸原則劃分數據集,生成樹型結構。
遞歸結束條件是:
1.程序遍歷完所有劃分數據集的屬性;
2.每個分支下的所有實例都具有相同的分類;
3.當前結點包含的樣本集合爲空,不能劃分。
2.3 剪枝
所謂剪枝是指在決策樹中去除部分葉結點。常見策略有預剪枝(Pre-Pruning)和後剪枝Post-Pruning)。
剪枝參數有:樹的最⼤大深度、分支後的子結點最小樣本數、結點最小樣本數、特徵個數、設定信息增益閾值。
三、樸素貝葉斯
1、基本原理
依據貝葉斯公式P(類別|特徵)=P(特徵|類別)P(類別)/P(特徵),再計算似然P(類別1|特徵)😛(類別2|特徵)…😛(類別k|特徵)(k是類別種數),P(類別i|特徵)比值大,說明此樣本屬於類別i可能性最大,即判定此樣本屬於類別i。
四、線性迴歸
1、基本原理
依據訓練集數據尋找標籤Y和特徵X之間的相關關係,構造預測函數Y=Xω,從而預測新數據結果。
五、嶺迴歸
引入L2範式正則化,解決多重共線問題,常用於特徵選擇。
六、Lasso
引入L1範式正則化,限制多重共線問題,常用於特徵選擇。
七、邏輯迴歸
1、基本原理
構造sigmoid函數
y大於1/2的樣本劃分爲1類;y小於1/2的樣本劃分爲0類。
八、K-Means
1、基本原理
找出最優的K個質心,計算各點到質心的相似度(計算距離),相似度一致的點歸爲同一類。計算距離的方法有曼哈頓距離、歐氏距離、餘弦距離、傑卡德距離。使用輪廓係數尋找最優的K,K也是分類組數。
九、隨機森林分類器
相當於Bagging+決策樹。隨機選擇數據和特徵構建多個決策樹,由多個決策樹判定結果(少數服從多少原則)。
十、AdaBoost分類器
先初始化訓練數據權重,再迭代訓練弱分類器,不斷調整權重,直到達到最優結果停止調整權重,最後把各個弱分類器組合成強分類器。會出現過擬合現象。
十一、SVM
先構建最佳的核函數,再尋找最優的決策邊界,決策邊界把不同類別的樣本劃分界限。決策邊界可能是線、也可能是面,即超平面。
以上內容,只是簡單的介紹各個算法原理,實際數學原理很複雜,需要紮實的數據理論基礎才能理解透徹,其中最複雜的是SVM算法。
附件: Sklearn算法實現完整代碼