1

我有一个如下所示的数据集:

   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 的正确方法吗?

4

0 回答 0