用R語言DIY機器學習演算法 KNN

2021-08-03 16:34:41 字數 1074 閱讀 7631

knn演算法又稱為k最鄰近演算法(k-nearest neighbour),是一種出現較早且原理比較簡單的機器學習演算法。其基本思想就是根據距離待分類資料a最近的k個樣本資料的分類來**a可能屬於的類別。基本的計算步驟如下:

knn演算法的優點是原理簡單,易於實現,在多分類問題中能取得較好的結果;缺點是計算量較大,需要計算待測資料與每乙個樣本資料的距離,而且容易受到樣本分佈的影響,當樣本不平衡時很容易產生錯誤分類。

class包中提供了knn的相關演算法,包括knn,knn1(k取1時的knn),還有改進的演算法knn.cv,kknn等函式,呼叫起來非常方便。本文主要介紹一下如何手工實現最基本的knn演算法。自己實現演算法的過程能夠加深對演算法的理解,同時也能鍛鍊一下編寫**的能力,是快速提公升個人能力的途徑之一。下面是詳細**:

library(dplyr)
knndiy <- function(train,test,labels,k)

predictlabel <- table(kmaxdistlabels) %>% which.max %>% names

return(predictlabel)

} return(allpredict)

}

利用iris資料集測試knndiy與class包中的knn函式的效果差異

train1 <- iris[,c(1:4)]  ##訓練樣本集

test1 <- iris[,c(1:4)] ##測試集

labels1 <- iris[,5] ##樣本集標籤

mean(knndiy(train1,test1,labels1,3) == knn(train1,test1,labels1,3))

[1] 1

經測試分類結果和knn函式一致。

這裡只是實現了最簡單的knn演算法,**邏輯參考了《機器學習實戰》第十九頁中的python**。由於python與r在許多方面的相似性,且python社群更活躍、**可讀性更高,依照python**來編寫r相應的**也是一種很便捷的途徑。

機器學習與R語言 5 規則學習演算法

目錄2.規則學習應用示例 過程 對於每乙個特徵,基於相似的特徵值1r對資料分組,然後對於每個書分組,該演算法的 類為占多數的類。比如動物分類中若以行走途徑為規則錯誤率為2 15,若以是否有皮毛為規則錯誤率為3 15,因此1r演算法基於以行走途徑為規則返回結果。注意 如果分類水平分布很不均勻,規則學習...

《R語言資料探勘》 1 9 機器學習

1.9 機器學習 應用於機器學習演算法的資料集稱為訓練集,它由一組成對的資料 x,y 構成,稱為訓練樣本。成對的資料解釋如下 x 這是乙個值向量,通常稱為特徵向量。每個值或者特徵,要麼是分類變數 這些值來自一組離散值,比如 要麼是數值型。y 這是乙個標籤,表示x的分類或者回歸值。機器學習過程的目的就...

機器學習演算法 基於R語言的多元線性回歸分析

多元線性回歸的適用條件 1 自變數對應變數的變化具有顯著影響 2 自變數與應變數間的線性相關必須是真實的,而非形式上的 3 自變數之間需有一定的互斥性 4 應具有完整的統計資料 訓練資料 csv格式,含有19維特徵 步驟一 資料讀取及預處理 從vt.csv檔案中讀取訓練資料,從 rm list ls...