如何在R中绘制字母频率?

时间:2016-12-28 18:57:26

标签: r ggplot2 data-visualization

我有一个字母图片的数据集。我构建了一个朴素的贝叶斯分类器来预测测试数据的内容。我想为每个角色生成一个正确分类的图像数量的图表。

情节或条形图或直方图并不重要。我只是希望能够看到它。

这是我的代码。  先感谢您。真的很感激。

allimages=list()
meanimages=list()
sdimages=list()
cha<-array(NA,c(12,12,7))
dim(cha)
cha2<-array(NA,c(12,12,2))
dim(cha2)
cha2

for(f in 1:length(letters)){
  #array for every character
  for (i in 1:7){
    cha[,,i]=readJPEG(paste("Train/",list.files("Train/")[i+(f-1)*7],sep=""))
    }
  allimages[[f]]<-cha
}

allimages[[26]][1]
cha[1][]

for (ch in 1:length(allimages)){

  meanimages[[ch]]= apply(allimages[[ch]],c(1,2),mean)
  sdimages[[ch]]= apply(allimages[[ch]],c(1,2),sd)

}
meanimages

test_images=list()
for(f in 1:length(letters)){
  #array for every character
  for (i in 1:2){
    cha2[,,i]=readJPEG(paste("Test/",list.files("Test/")[i+(f-1)*2],sep=""))
  }
  test_images[[f]]<-cha2
}

ind=5
ddd=1
tr=1

i=array( unlist(allimages),dim=c(144,26*7) )
dim(i)

mi=array( unlist(meanimages), dim=c(144, 26) )
dim(mi)
plot(mi)
si=array( unlist(sdimages), dim=c(144, 26) )
dim(si)
plot(si)

ti=array( unlist(test_images), dim=c(144,26*2) )
dim(ti)

#that is the thirdtest image ("b")is supposed to return 2  
for(testt in 1:52){
  maxi=0
  for(iter in 1:26)
  {
    p=1
    for (pixel in 1:144){
      #change variable testt to test the classification
      if (dnorm(ti[pixel,testt],mi[pixel,iter],si[pixel,iter]) <0.0001){
        p=p*.00001
      }
      else if(dnorm(ti[pixel,testt],mi[pixel,iter],si[pixel,iter]) <1) {
        p=p*dnorm(ti[pixel,testt],mi[pixel,iter],si[pixel,iter])
      }
    }
    if (p>maxi){
      maxi=p
      ind=iter
    }

  }
  if (letters[ind]==letters[ddd]){
    tr=tr+1
  }
  print (letters[ind])
  print (letters[ddd])
  if (testt%%2==0){
    ddd=ddd+1

  }
}  


accuracy = ((tr-1)/52)
accuracy

1 个答案:

答案 0 :(得分:1)

我创建了一个向量 test_letters&lt; - c(test_letters,letters [ind]

我在ggplot2

中使用qplot(test_letters)绘制了它