R語言學習 KNN臨近演算法

2022-08-29 09:09:10 字數 1327 閱讀 4586

概念

1、監督學習:從給定標註的訓練資料中學習出乙個函式,根據這個函式為新資料進行標註。

2、無監督學習:從給定無標註的訓練資料中學習出乙個函式,根據這個函式為所有資料標註。

knn分類演算法:通過對已知類別訓練資料集的分析,從中發現分類規則,以此**新資料的類別,分類演算法屬於監督學習的型別。

knn概念:

1、訓練集:用來訓練模型或確定模型引數的資料。

2、測試集:用來驗證模型準確性的資料。

3、交叉驗證:一般使用70%的資料作為訓練集,剩下30%的資料作為測試集,測試集的測試結果使用交叉表形式進行驗證。

抽樣方法

sample(x,size,replace=false)

x-待抽樣的樣本

size-抽樣的數量

replace-是否可放回抽樣,預設為false

knn方法-需要安裝包class

安裝方法:install.packages("class")

knn(train,test,cl,k=1)

train-訓練資料

test-測試資料

cl-訓練資料的正確結果

k-knn中的k值,預設為1,可以自行設定,直到交叉檢驗到最好的結果

舉例:

#install.packages("class");

library(class)##

#計算iris的行數,isis是class包自帶的例子

total <- nrow(iris);

#抽樣獲取70%的行數編號

index <-sample(1:total, total*0.7)

#根據抽樣編號獲取訓練集

iris.train <- iris[index, ]

#根據抽樣編號獲取測試集,-index就相當於剩下30%

iris.test <- iris[-index, ]

#使用knn方法根據訓練集和測試集來配對函式

#subset()相當於刪除訓練集和測試集中的species列(結果列)的資料

result.knn <-knn(

train=subset(iris.train, select=-species),

test=subset(iris.test,select=-species),

cl=iris.train$species, k=2

)#進行交叉檢驗

table(iris.test$species, result.knn)

R語言學習

sd計算樣本的標準差 var計算樣本的方差 cor計算兩個變數間的相關係數 cov計算兩變數間的協方差 使用函式library或者函式require把需要的r包載入r中 library函式中的r包名不需要用雙引號括起來。detach package mass 函式會解除安裝當前已載入的r包。呼叫其他...

R語言學習

隨著大資料和雲計算快速發展,對資料分析提出了更高的要求。r語言就是乙個相對簡單運用廣泛的統計分析語言工具。r語言以簡潔著稱,一行 就可以繪製一幅圖。例如,我們需要繪製乙個全班男女生佔比圖,男生24個,女生16個。pie c 24,16 c 男生 60 女生 40 main 全班男女生佔比圖 col ...

R語言學習

author 秦景坤 date 2017 06 25 github r語言安裝 執行命令快捷鍵 ctrl r 清除控制台內容的快捷鍵 ctrl l rstudio的安裝 rattle 視覺化資料探勘工具 rattle是使用rgtk2包提供的gnome圖形使用者介面 rattle的安裝 install...