機器學習--有監督學習--分類演算法(預測分類)

1234roro發表於2024-06-18

使用場景:做分類的,比如銀行想做客戶分類,看看新的這個客戶,他是高風險使用者還是低風險使用者。

原理使用:可以用貝葉斯分類,決策樹演算法,還有KNN,本篇主要整理KNN。

KNN原理:有N個樣本點,對新紀錄r,使用KNN進行分類,看它屬於哪個分類。具體如下:

1、先確定k值,不建議太大,一般採用交叉驗證法決定,k值常見的為5、10。交叉驗證法中,比較經典的,是k折交叉驗證。k折交叉驗證,既可以用來選擇效能指標最好的模型,也可以用來確認在某一選定模型下,k值最合適的選擇是什麼。我們這裡是找最合適的k值,具體來說,大概意思是,假設我們有一個資料集,其中包含12個樣本,我們使用3折交叉驗證(k=3),也就是把他們分成3個子集,每個子集4個樣本。驗證3次,每次選擇其中一個作為驗證集,其他2個是訓練集。透過選定的模型(你可以理解為y=ax+b就是選定模型,透過訓練集,你要確定a和b),依次對每個訓練集資料測試,評估出這個模型下最合適的引數和擬合圖,然後使用這個帶有評估後引數的模型,在驗證集中,再次進行效能指標的評估(準確率、精確度等)。驗證次數為3次,然後取3次的平均值,就是此模型的平均準確率。對第一個k值的評估就結束了。然後繼續用選定的模型,變化k,重複上面的操作,再次看驗證集的效能指標。最後結合每個k具體的效能表現和穩定性(就是看效能表現的方差這些來評估),最終確定k;

2、以及判斷距離的公式,一般是歐氏距離

3、計算r和附近每個樣本的距離d;

4、把d從小到大排序,取top k個最小的樣本;

5、看看這k個樣本里,屬於多少個分類,哪個分類最多,說明新記錄r,就是哪個分類的。

舉例:如下,藍色太陽,就是屬於紅色三角所在的分類。

KNN優點:簡單,好理解,好實現,複雜度低;

KNN缺點:lazy-leaning演算法,得到結果的及時性差。K值對結果的影響也很大。

相關文章