应用于数据集后解释knn.cv(R)结果

应用于数据集后解释knn.cv(R)结果,r,dataset,knn,R,Dataset,Knn,我在对R中的数据集使用k-最近邻算法(带有交叉验证)时遇到了一个问题,FNN包中的knn.cv。 该数据集由4601个电子邮件案例组成,共有58个属性,其中57个属性取决于电子邮件中的字符或单词频率(数字,范围[0100]),最后一个案例指示是垃圾邮件(值1)还是火腿(值0) 在指示train和cl变量并使用10个邻居之后,运行包会显示所有电子邮件的列表,每个列的值都是7.4032,我不知道如何使用。我需要找到垃圾邮件和火腿的包分类的百分比,并与正确的百分比进行比较。我应该如何解释这些结果呢?鉴

我在对R中的数据集使用k-最近邻算法(带有交叉验证)时遇到了一个问题,FNN包中的
knn.cv
。 该数据集由4601个电子邮件案例组成,共有58个属性,其中57个属性取决于
电子邮件中的字符或单词频率(数字,范围[0100])
,最后一个案例指示是垃圾邮件(值1)还是火腿(值0)


在指示train和cl变量并使用10个邻居之后,运行包会显示所有电子邮件的列表,每个列的值都是
7.4032
,我不知道如何使用。我需要找到垃圾邮件和火腿的包分类的百分比,并与正确的百分比进行比较。我应该如何解释这些结果呢?

鉴于您描述的数据集(准确地)与《ElemStatLearn》中的垃圾邮件数据集相匹配,我想知道这是否是一个家庭作业。如果是这样的话,没关系,但是你应该在你的问题上加上家庭作业标签

这里有一些提示

函数
knn.cv
的文档说明它返回分类向量,以及k个最近邻的距离和索引作为“属性”。所以当我运行这个:

out <- knn.cv(spam[,-58],spam[,58],k = 10)
您引用的其他值有点“隐藏”为属性,但您可以使用
str

> str(out)
 Factor w/ 2 levels "email","spam": 2 2 2 2 2 1 1 1 2 2 ...
 - attr(*, "nn.index")= int [1:4601, 1:10] 446 1449 500 5 4 4338 2550 4383 1470 53 ...
 - attr(*, "nn.dist")= num [1:4601, 1:10] 8.10e-01 2.89 1.50e+02 2.83e-03 2.83e-03 ...
您可以通过以下方式访问这些附加属性:

> head(out)
[1] spam  spam  spam  spam  spam  email
Levels: email spam
nn.index <- attr(out,'nn.index')
nn.dist <- attr(out,'nn.dist')

nn.index很好,谢谢。我试试看。而且,这是我论文的一部分,我不知道家庭作业标签。我现在改正了。是的,非常感谢,伙计。用table()我得到了我需要的结果。