我有一个字母图片的数据集。我构建了一个朴素的贝叶斯分类器来预测测试数据的内容。我想为每个角色生成一个正确分类的图像数量的图表。
情节或条形图或直方图并不重要。我只是希望能够看到它。
这是我的代码。 先感谢您。真的很感激。
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
答案 0 :(得分:1)
我创建了一个向量 test_letters&lt; - c(test_letters,letters [ind]
我在ggplot2
中使用qplot(test_letters)绘制了它