用于多个功能的最近邻分类器

时间:2013-12-09 17:06:02

标签: matlab classification nearest-neighbor feature-selection

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

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

0 个答案:

没有答案