您好,登錄后才能下訂單哦!
如何理解R語言分類算法中的距離判別,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
1.距離判別原理分析
根據待判定樣本與已知類別樣本之間的距離遠近做出判斷.根據已知類別樣本信息建立距離判別函數式,再將各待判定樣本的屬性數據逐一代入式中計算,得到距離值,再根據此將樣本判入距離值最小的類別的樣本簇.
K最近鄰算法則是距離判別法中使用最為廣泛的,他的思路是如果 一個樣本在特征空間中的K個最相似/最相鄰的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別.
圖中3個實心表示樣本點,其周圍分布著若干分別用圓形,三角形,正方形空心點表示出的三種已知類別的樣本點.現在我們取K=5,即圈出與待分類樣本點最相近的5個樣本點,然后查看他們的類別.這5個點中屬于哪個類別的樣本多,該未知樣本就屬于哪個類別.易得未知樣本(從左到右)依次屬于圓形,三角形,正方形.
K最近鄰方法進行判別時,由于其主要依靠周圍有限鄰近樣本的信息,而不是靠判別類域的方法來確定所屬類別,因此對于類域的交叉或重疊較多的待份樣本集來說,該方法較其他方法更為合適.
2.在R語言中的應用
在K最近鄰(K-Nearest Neighbor,KNN)算法中我們主要用到了class包里面的
knn(train,test,cl,k=1,1=0,prob=FALSE,use.all=TRUE)
函數。
而在有權重的k最近鄰(Weighted K-NearestNeighbor,KKNN)我們主要用到了kknn包里的
kknn(formula=formula(train),train,test,na.action=na.omit(),k=7,distance=2,kernel=”optimal”,ykernel=NULL,scale=TRUE,contrasts=c(‘unordered’=”contr.dummy”,ordered=”contrl.rodinal”))
函數。
3.以iris數據集為例進行判別分析
1)應用模型并觀察輸出結果
library(kknn) fit_pre_kknn=kknn(Species~.,data_train,data_test[,-5],k=5)fit_pre_kknn[1:length(fit_pre_kknn)]
2)檢測模型準確度
table(data_test$Species, fit_pre_kknn$fitted.values) sum(as.numeric(as.numeric(fit_pre_kknn $fitted.values)!=as.numeric(data_test$Species)))/nrow(data_test)
看完上述內容,你們掌握如何理解R語言分類算法中的距離判別的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。