999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于R語言的k-最近鄰法數(shù)字模式識別研究

2014-03-13 05:33:42鐘志強
電腦與電信 2014年8期
關(guān)鍵詞:模式識別分類語言

鐘志強

(鞍山師范學(xué)院物理科學(xué)與技術(shù)學(xué)院,遼寧 鞍山 114007)

基于R語言的k-最近鄰法數(shù)字模式識別研究

鐘志強

(鞍山師范學(xué)院物理科學(xué)與技術(shù)學(xué)院,遼寧 鞍山 114007)

k-最近鄰法是常見的機器學(xué)習(xí)算法,R語言中通過kknn包完成算法實現(xiàn),但其無法實現(xiàn)圖像文件的處理。為此,本文先將圖像文件轉(zhuǎn)換成文本文件,再結(jié)合KNN算法對文件中數(shù)字圖像進(jìn)行模式識別。實驗得出其判斷結(jié)果達(dá)到了預(yù)期指標(biāo)。

k-最近鄰法;模式識別;R語言

1.k-最近鄰法原理

k-最近鄰法(k-nearest neighbor,KNN)是最簡單的機器學(xué)習(xí)算法之一,可以用于分類和回歸。KNN認(rèn)為,待分類對象的類別可以通過在它附近的訓(xùn)練數(shù)據(jù)的類別來確定,所以采取的策略就是找到離待分類對象最近的K個鄰居進(jìn)行分析[1]。將樣本特征空間中的k個最相似的樣本中的大多數(shù)劃屬某一個類別。KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別。KNN方法雖然從原理上也依賴于極限定理,但在類別決策時,只與極少量的相鄰樣本有關(guān)。因此對于類域的交叉或重疊采用較多的待分樣本集更為適合。搜索k個近鄰算法的偽算法表示為:KNN(A[n],k),輸入:A[n]為N個訓(xùn)練樣本在空間中的坐標(biāo),k為近鄰數(shù);輸出:x所屬的類別。取A[1]~A[k]作為x的初始近鄰,for(i=k+1;i<=n;i++)計算a[i]與x間的距離d(x,A[i]);if (d(x,A[i]))<D else用A[i]代替最遠(yuǎn)樣本;按照d(x,A[i])升序排序,計算最遠(yuǎn)樣本與x間的距離D=max{d(x,A[j])|j=1,...,i};計算前k個樣本A[i]),i=1,2,...,k所屬類別的概率,具有最大概率的類別即為樣本x的類。

2.R語言KNN實現(xiàn)基本實例

R是GNU系統(tǒng)的一個自由、免費、源代碼開放的軟件,主要用于統(tǒng)計分析與數(shù)據(jù)可視化。R語言使用起來簡潔、直觀、靈活,隨著大量新興研究領(lǐng)域算法不斷更新,R語言在機器學(xué)習(xí)領(lǐng)域有廣泛的應(yīng)用。R語言中k-最近鄰法常用包是kknn。其使用函數(shù)為: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="contr.ordinal"))其關(guān)鍵參數(shù)說明:formula:回歸模型,例如:分類變量~特征量;train:訓(xùn)練集,test:測試集;na.a(chǎn)ction:缺失值處理,默認(rèn)為去掉缺失值;k:默認(rèn)為7,通常k<20;distance:包括euclidean(歐氏距離),minkowski(明科夫斯基距離),Mahalanobi(馬氏距離),Bhattacharyya(巴氏距離);manhattan(曼哈頓距離),canberra(蘭式距離),Hamming(漢明距離)等[2]。

現(xiàn)以著名鳶尾花(iris)數(shù)據(jù)集實現(xiàn)算例:包含五個指標(biāo)花瓣長度(Petal.Length)、萼片寬度(Sepal.Width)、花瓣寬度(Petal.Width)、萼片長度(Sepal.Length)、三種花類型(Species:setosa,versicolor,virginica)150筆記錄。其結(jié)果見表1和圖1。

data(iris);m<-dim(iris)[1];val<-sample(1:m,size=round (m/3),replace=FALSE,prob=rep(1/m,m));iris.learn<-iris[-val,];iris.valid<-iris[val,];iris.kknn<-kknn(Species~.,iris.learn,iris.valid,distance=1,kernel="triangular");summary (iris.kknn);fit<-fitted(iris.kknn);table(iris.valid$Species,fit)

pcol<-as.character(as.numeric(iris.valid$Species));pairs(iris.valid[1:4],pch=pcol,col=c("green3","red")[(iris.valid$Species!=fit)+1])

表1 k-最近鄰法iris分類結(jié)果,模型預(yù)測準(zhǔn)確性為97%

圖1 k-最近鄰法iris分類(紅色為錯誤分類)

其結(jié)果表征說明kknn算法成功率較高。

3.KNN數(shù)字模式識別基本過程

R語言中關(guān)于k-最近鄰法建模,常用的是kknn包。但其無法針對圖像文件進(jìn)行處理,如:針對圖2所示文檔0~9內(nèi)10個數(shù)字的識別。為此R語言對數(shù)字圖像的識別要經(jīng)過圖像的二值化文本和機器模式識別兩個過程。

圖2 手寫圖像到圖像的二值文本化和模式識別圖

3.1 對數(shù)字圖像二值化處理

R語言對圖像的處理十分方便。其資源網(wǎng)站CRAN中有jpeg、png、tiff、bmp、rimage、biOps等多個包,協(xié)同機器學(xué)習(xí)中的包運算,能夠完成許多圖像模式識別算例[3]。對數(shù)字圖像二值文本化處理代碼如下:

library("jpeg")#加載jpeg包

mypic=readJPEG("d:/tempr/pic0.jpg")#讀取數(shù)字圖像文件

mydim=dim(mypic)

mydata=matrix(nrow=mydim[1],ncol=mydim[2])#定義矩陣二值變量

for(i in 1:mydim[1]){for(j in 1:mydim[2]){#將圖像中的數(shù)據(jù)賦值給矩陣變量

if(any(mypic[i,j,]>0)){mydata[i,j]=1}else{mydata[i,j]= 0}}}

write.table(mydata,"d:/tempr/text.txt",row.names= F,col.names=F)#將矩陣變量寫入文檔,以便模式識別算法實現(xiàn)。為加快數(shù)據(jù)讀寫還可以加入快均值算法,本案例中省略。

3.2 k-最近鄰法數(shù)字模式識別

參考KNN基本原理、kknn包中k-最近鄰法的實現(xiàn)方式和文獻(xiàn)[4],[5]。我們編寫了對文檔而不是變量進(jìn)行操作的k-最近鄰法如下:

dis<-function(datatest,datatrain,len){#最近鄰距離的計算函數(shù)

distance<-rep(0,len)

for(i in 1:len)

distance[i]<-sqrt(sum((get(datatest)-get(datatrain[i]))^2))

return((distance))}

judge<-function(test,data){#學(xué)習(xí)結(jié)果的判斷函數(shù)

index<-rep(0:9,c(189,198,195,199,186,187,195,201,180,204))#訓(xùn)練集正確判讀結(jié)果(0-9)

di<-rep(0,length(data))

di[1:length(data)]<-dis(test,data,length(data))

return(names(which.max(table(index[order(di)[1:5]])))) }

setwd("D:/tempr/trainingDigits")#訓(xùn)練集所在目錄

names<-list.files()#讀取所有1934訓(xùn)練文件名

train<-paste("train",1:1934,sep="")#預(yù)留1934個train變量

for(i in 1:length(names))#將文件內(nèi)容寫入train

train[i]<-as.matrix(read.fwf(names[i],widths=rep(1,32)))

setwd("D:/tempr/testDigits")#測試集所在目錄

names<-list.files()#讀取所有1934訓(xùn)練文件名

test<-paste("test",1:1934,sep="")#預(yù)留1934個test變量

for(i in 1:length(names))#將文件內(nèi)容寫入test

test[i]<-as.matrix(read.fwf(names[i],widths=rep(1,32)))

index1<-rep(0:9,c(87,97,92,85,114,108,87,96,91,89))#測試集正確判讀結(jié)果(0-9)

error<-0#計算判斷錯誤次數(shù)

for(i in 1:946){if(judge(test[i],train,names)!=index1[i]) er ror<-error+1}

最終error的計算結(jié)果為19誤差率為2%,達(dá)到可以接受的范圍。

4.結(jié)語

盡管上述算法基本能夠完成手寫文字的識別,但KNN分類本身也有不足:一是計算量大,對每一個待分類樣本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點,因而適用于小樣本數(shù)據(jù)分類;二是當(dāng)樣本不平衡時一個類的樣本容量很大,而其它類樣本容量很小時,輸入一個新樣本時,無法進(jìn)行判別。其對應(yīng)改進(jìn)算法也是我們研究的目標(biāo)。

[1]k-最近鄰法[DB/OL].http://blog.csdn.net/yujunbeta,2014,5.

[2]從K近鄰算法、距離度量談到KD樹、SIFT+BBF算法[DB/OL].http://blog.csdn.net/v_july_v/article/details/8203674,2014,5.

[3]Motloff.R語言編程藝術(shù)[M].北京:機械工業(yè)出版社,2013.

[4]R語言與機器學(xué)習(xí)筆記[DB/OL].http://blog.csdn.net/ yujunbeta/article/details/14648343,2014,5.

[5]Peter Harrington.機器學(xué)習(xí)實戰(zhàn)[M].北京:人民郵電出版社,2013.

Research on the K-Nearest Neighbor Digital Pattern Recognition Based on R Language

Zhong Zhiqiang
(Anshan Normal University,Anshan 114007,Liaoning)

tract】 k-nearest neighbor is used widely in machine learning.It can be realized with kknn in R language.However,kknn cannot deal with image file.This paper firstly translates image to text,then implements pattern recognition algorithm for the image based on kknn.Result shows that this method can achieve our expectation.

words】 k-nearest neighbor;pattern recognition;R language

鐘志強,男,遼寧遼陽人,碩士,講師,研究方向:人工智能教育。

猜你喜歡
模式識別分類語言
分類算一算
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
分類討論求坐標(biāo)
數(shù)據(jù)分析中的分類討論
讓語言描寫搖曳多姿
教你一招:數(shù)的分類
淺談模式識別在圖像識別中的應(yīng)用
電子測試(2017年23期)2017-04-04 05:06:50
第四屆亞洲模式識別會議
累積動態(tài)分析下的同聲傳譯語言壓縮
我有我語言
主站蜘蛛池模板: 老司机午夜精品视频你懂的| 亚洲日韩精品综合在线一区二区| 最新国产精品第1页| 国产午夜人做人免费视频中文 | 呦女亚洲一区精品| 真实国产乱子伦视频| 日韩二区三区| 超碰91免费人妻| 日日拍夜夜操| 久久96热在精品国产高清| 亚洲成人在线免费| 91在线精品免费免费播放| 久久成人免费| 亚洲国产精品久久久久秋霞影院 | 99精品免费欧美成人小视频| 久久香蕉国产线| 成人午夜视频网站| 亚洲第七页| 亚洲六月丁香六月婷婷蜜芽| 日韩色图在线观看| 精品国产黑色丝袜高跟鞋 | 欧美亚洲国产精品第一页| 99久久国产精品无码| 国产成人精品一区二区不卡| 欧美综合区自拍亚洲综合绿色| 亚洲高清国产拍精品26u| 白丝美女办公室高潮喷水视频| 国产一区免费在线观看| 国产00高中生在线播放| 最新无码专区超级碰碰碰| 57pao国产成视频免费播放| 一级毛片免费观看不卡视频| 在线中文字幕日韩| 国产成人综合网| 国产成人精品免费av| 亚洲国产精品无码久久一线| 91蝌蚪视频在线观看| 91精品人妻一区二区| 九九香蕉视频| 久久一本日韩精品中文字幕屁孩| 无码高潮喷水在线观看| 国产国产人成免费视频77777| 亚洲欧美一区二区三区图片| 欧美成人影院亚洲综合图| 亚洲手机在线| 亚洲美女高潮久久久久久久| 亚洲视频免费播放| 亚洲欧美成aⅴ人在线观看| 欧美黄色网站在线看| 国产aaaaa一级毛片| 国产精品一区在线观看你懂的| 国产成人无码久久久久毛片| 中文字幕有乳无码| 91精品国产麻豆国产自产在线| 99视频精品在线观看| 久久毛片免费基地| 日韩色图在线观看| 久久精品女人天堂aaa| 三级欧美在线| 欧美区一区二区三| 久久久久人妻一区精品| 成人在线不卡视频| 免费可以看的无遮挡av无码| 久久精品亚洲专区| 男人天堂亚洲天堂| 国产精品女同一区三区五区| 狠狠操夜夜爽| 久热99这里只有精品视频6| 日韩 欧美 小说 综合网 另类| 国产一区二区三区免费观看| 欧美一级高清视频在线播放| 内射人妻无套中出无码| 国产在线观看成人91| 狼友视频一区二区三区| 伊人久久福利中文字幕| 亚洲乱码视频| 综合色亚洲| 在线欧美日韩国产| 美女啪啪无遮挡| 免费看一级毛片波多结衣| 国产无码网站在线观看| 99re在线视频观看|