我已经计算了用于训练和测试图像的单词模型包。我有260个用于训练图像的弓矢量(100x1)和用于测试图像的282个弓矢量(100x1)。我想用knn算法对测试图像进行分类。但是,我不知道如何使用这些弓矢量。
答案 0 :(得分:1)
我假设你想在决策过程中使用KNN。
为了能够使用KNN,您需要计算两个向量之间的距离。您可以使用标准来计算距离。幸运的是,如果您有统计和机器学习工具箱,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。祝你好运,如果有效,请通知我们。