阿里天池訓練營day07 了解K近鄰的理論

2021-10-12 12:24:42 字數 1288 閱讀 1070

3. knn的應用

阿里天池訓練營day07:了解k近鄰的理論

k近鄰演算法是一種基本分類和回歸方法,思想比較簡單但是卻十分實用

k近鄰演算法:給定乙個訓練資料集,對新的輸入例項,在訓練資料集中找到與該例項最鄰近的k個例項,這k個例項的多數屬於某個類,就把該輸入例項分類到這個類中。

例如上圖,對於新輸入的小球(綠)利用k近鄰進行分類,若k=3,則與小球(綠)最近的三個資料中,三角形(紅)占多數,因而將輸入的類別定為三角形(紅)對應的類別。若k=5,則與小球(綠)最近的五個資料中,方塊(藍)占多數,因而將輸入的類別定為方塊(藍)對應的類別。

由此見,knn本身的原理很簡單,不過卻有乙個變數k,可以看出k不同,分類結果也是不同的,因此在knn中,k的選擇是很重要的,k選擇的過小,發生過擬合,比如k=1,輸入的資料和最近的資料的類別相等,若是最近的資料恰好是雜訊資料,就將輸入分錯類了;若是k過大,又會發生欠擬合,比如k選擇的非常大的範圍,如所有資料點的範圍,對於輸入的資料,僅會分為全域性數目最多的那一類,且不會改變,該類內的資料越來越多。如何選取乙個恰當的k,是我們需要考慮的一部分。

1 給定測試樣本,計算它與訓練集中的每乙個樣本的距離。

2 找出距離近期的k個訓練樣本。作為測試樣本的近鄰。

3 依據這k個近鄰歸屬的類別來確定樣本的類別。

投票決定,少數服從多數。取類別最多的為測試樣本類別。

加權投票法,依據計算得出距離的遠近,對近鄰的投票進行加權,距離越近則權重越大,設定權重為距離平方的倒數。

看似簡單的knn即能做分類又能做回歸,還能用來做資料預處理的缺失值填充。由於knn模型具有很好的解釋性,一般情況下對於簡單的機器學習問題,我們可以使用knn作為baseline,對於每乙個**結果,我們可以很好的進行解釋。推薦系統的中,也有著knn的影子。例如文章推薦系統中,對於乙個使用者a,我們可以把和a最相近的k個使用者,瀏覽過的文章推送給a。

機器學習領域中,資料往往很重要,有句話叫做:「資料決定任務的上限, 模型的目標是無限接近這個上限」。可以看到好的資料非常重要,但是由於各種原因,我們得到的資料是有缺失的,如果我們能夠很好的填充這些缺失值,就能夠得到更好的資料,以至於訓練出來更魯棒的模型。

阿里雲天池Python訓練營

字串 引號之間的字元集合 單引號或雙引號 反斜槓符號 單引號 雙引號 n換行 t橫向製表符 tab r回車 原始字串 所有的字串都是直接按照字面的意思來使用 不轉義特殊或不能列印的字元 在字串前邊加乙個英文本母 r 三引號允許字串跨多行 可包含換行符 製表符以及其他特殊字元 具有不可修改性 通過元素...

阿里雲天池python訓練營

函式是物件 可從函式中返回用於構建高階函式 def函式名 引數 函式 文件字串 function suite return 表示式 以def 形參必須放在圓括號中 形參只是形式 表示佔據的引數位置 函式的第一行語句可使用文件字串 存放函式說明 利用.doc 呼叫 執行的 需要縮排 return 表示...

阿里雲天池Python訓練營

本節主要介紹python中的類與物件,並針對相關用法進行展開說明。其中拓展了需要掌握及區別的內容,對於類的用法及物件的含義需重點掌握。類定義物件的結構 以類為模板建立物件 物件是類的例項 類不但包含方法定義 還包含所有例項共享的資料 class 類名 類的實現 類的名稱以大寫字母開頭 子類建構函式基...