2014-04-01 139 views
-3

所以我想编码最近邻居算法。我的功能的输入将是一组数据和样本进行分类。我只是想了解算法的运作。你们可以告诉我,这个我试图做的“伪代码”是正确的吗?K最近邻居伪码?

kNN (dataset, sample){ 

    1. Go through each item in my dataset, and calculate the "distance" from that data item to my specific sample. 
    2. Out of those samples I pick the "k" ones that are most close to my sample, maybe in a premade array of "k" items? 

} 

我感到困惑的部分是当我说“通过我的数据集中的每个项目”。我是否应该浏览数据集中的每个CLASS并查找最近邻居?然后从那里找到哪一个最接近我的样本,然后告诉我这堂课?

第2部分问题(ISH),是使用这种算法,但没有样本。我将如何计算数据集的“准确性”?

我的确在寻找宽泛的单词而不是具体的答案,但任何能够帮助我理解的东西都是值得赞赏的。我在R.实施这一

感谢

+0

你究竟是什么意思的“准确性”? 否则第一部分的想法似乎是正确的,相当蛮力,不高效,但正确 –

+0

老实说不知道,只是一个硬件问题我试图解决这个问题并不清楚。感谢您在第一部分的回答。我是否正确地说我需要循环遍历每个类,并找到每个类的k个最近邻居,而不仅仅是整个数据集? – user3037172

回答

8

你的伪代码应该改变这样的:

 
kNN (dataset, sample){ 
    1. Go through each item in my dataset, and calculate the "distance" 
    from that data item to my specific sample. 
    2. Classify the sample as the majority class between K samples in 
    the dataset having minimum distance to the sample. 
} 

这pseduocode已经INT如下图所示。

enter image description here

假设数据集包括两个类A和B,分别显示为红色和蓝色,我们希望与K = 5申请KNN的来样订做,用绿色和紫色星星表示。
KNN计算每个测试样本与所有样本的距离,并找到五个与测试样本距离最小的邻居,并将多数类别指定给测试样本。

精度:1 -

对于 “R” 实现(错误分类的测试样品/试样的数)可能显示thisthis