【问题标题】:k-NN Classify in MatlabMatlab中的k-NN分类
【发布时间】:2015-04-29 16:56:52
【问题描述】:

所以一旦我从原始图像中提取出我想要的图像, 我将轮廓长度视为特征 1,将轮廓区域视为特征 2。我使用 sum(sum(ds)) 来计算数量每个物种的二进制图像中的白色像素。 ds 是这里的附加图像。然后我通过以下代码找到了轮廓区域,轮廓所刻的像素数。

area=0;
for col=1:464 
    temp=find(ds(:,col)==1);  
    if temp 
        area= area + (temp(end)-temp(1)+1); 
    end
end
area;

现在我应该绘制特征 1 与特征 2 的图并检查是否存在可分离的集群并使用 k-NN 进行分类。谁能告诉我如何绘制,检查和分类。谢谢 !

【问题讨论】:

  • 你的问题是如何在matlab中运行knn?有很多关于 SO 的示例,MATLAB 文档可能会派上用场。
  • 希望您也知道,您编写的求和代码可能会因两个原因而失败:1) if temp 可能会崩溃或给您带来不想要的结果,我会使用 if ~isempty(temp) && length(temp)>1 左右。 2)只有当形状是凸的时,你的总和才会准确,但你可能对这个近似值感到满意。

标签: matlab machine-learning contour knn


【解决方案1】:

你可以画出来

figure(1);
plot(feature1_classA,feature2_classA,'b.');
plot(feature1_classOther,feature2_classOther,'r.');

然后检查蓝点是否以某种方式与蓝点分开。

KNN 可以很容易地实现。您需要一些标记的数据集。 对新数据点进行分类时,在标注数据集中找到 K 个最接近的点,并检查大多数来自哪个类。将此标签分配给新数据点。应该不难实现。

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 2016-05-06
    • 2016-06-04
    • 2019-07-05
    • 2016-08-27
    • 2011-07-31
    • 1970-01-01
    • 2012-11-14
    • 2011-12-30
    相关资源
    最近更新 更多