【问题标题】:Bag of Words Classification Using KNN使用 KNN 进行词袋分类
【发布时间】:2015-05-14 16:44:57
【问题描述】:

我已经计算了用于训练和测试图像的词袋模型。我有 260 个弓矢量(100x1)用于训练图像和 282 个弓矢量(100x1)用于测试图像。我想使用 knn 算法对测试图像进​​行分类。但是,我不知道如何使用那些弓向量。

【问题讨论】:

  • 你是问如何实现KNN?

标签: matlab image-processing machine-learning computer-vision knn


【解决方案1】:

我假设您想在决策过程中使用 KNN。

为了能够使用 KNN,您需要计算两个向量之间的距离。您可以使用范数来计算距离。幸运的是,如果您有 Statistics and Machine Learning Toolbox,MATLAB 会为我们做这件事。

让 X 是一个向量,它的每一行都是你的 1x100 BOW 向量(它们的转置)。并且 y 是一个向量,它分配每个 BOW 向量的类。例如,如果您想对图像进行分类,无论它们是否包含自行车,您的 y 必须包含有关每个直方图的二进制信息(如果图像中显示自行车:1 或否则:0)。

x = [ - ---- -- - -- -  first histogram;         y = [1;
      - - - ---- -- --  second histogram;             0;
       - ---- - ------  third histogram]              1]

mdl = fitcknn(X,y); %this will be your model. 

实际上,我不知道它是否适用于 BOW,因为我总是使用 SVM。所以,祝你好运,如果它有效,请通知我们。

【讨论】:

  • KNN 是一种有效的机器学习方法,在许多情况下都非常有效。恕我直言,在进入 SVM 之前尝试更简单的 KNN 是明智的,尤其是 KNN 实现起来很简单
  • 是的,你是对的。这个问题发布后我搜索了一下,所以我想,我需要编辑我的答案;但是,我的假设是在 Bag of Words 实现中会有一些误解,因为 BOW 在训练阶段之前使用了 KNN,并且问题不是很清楚。
猜你喜欢
  • 2011-02-20
  • 2018-11-07
  • 2017-05-08
  • 2018-02-09
  • 2014-09-28
  • 2012-12-02
  • 2019-10-04
  • 2016-02-24
  • 2016-08-28
相关资源
最近更新 更多