我有一个如下所示的数据集:
Feature 1 Feature 2 Feature 3 Feature 4 Feature 5 Class
Obj 2 2 2 8 5 1
Obj 2 8 3 3 4 2
Obj 1 7 4 4 8 1
Obj 4 3 5 9 7 2
行包含具有许多功能的对象。我已经为演示目的放了5个功能,但每个对象大约有50个功能,最后一列是每个对象的类标签。
我想在这个数据集上创建并运行最近邻分类器算法并检索错误率。我已经设法让NN算法适用于每个功能,下面是一个简短的伪代码示例。对于每个特征,我遍历每个对象,根据最近的邻居分配对象j。
for i = 1:Number of features
for j = 1:Number of objects
distance between data(j,i) and values of feature i
order by shortest distance
sum or the class labels k shortest distances
assign class with largest number of labels
end
error = mean(labels~=assigned)
end
我遇到的问题是如何为多个功能制定1-NN算法。我将从我的数据集中选择功能1,2和3。如果我将功能5添加到我选择的功能集中,我想计算错误率。我想用1NN解决错误。我会在所选功能中找到所有功能1-3中最接近的值吗?
例如,对于我上面的数据集:
添加特征5 - 对于特征5的对象1,与特征3的对象4最接近的数字。因为它具有2的类标签,所以我将为特征5的对象1分配类2.这显然是错误分类但我会继续对功能5中的所有其他对象进行分类,并比较分配的值和实际值。
这是针对多个功能执行1NN的正确方法吗?