【发布时间】:2016-11-24 17:47:54
【问题描述】:
我刚刚开始使用 MATLAB。我应该做一个项目,其中必须使用 k-means 和 ID3 算法对图像进行分类。
以动物数据库为例。图像必须根据颜色和纹理等特征进行分类。以后可以通过输入动物的颜色、纹理和行为来检索这些图像。将检索具有指定特征的动物。 我如何使用 MATLAB 实现这个项目?我可以解释一下过程吗?
【问题讨论】:
标签: algorithm matlab k-means id3
我刚刚开始使用 MATLAB。我应该做一个项目,其中必须使用 k-means 和 ID3 算法对图像进行分类。
以动物数据库为例。图像必须根据颜色和纹理等特征进行分类。以后可以通过输入动物的颜色、纹理和行为来检索这些图像。将检索具有指定特征的动物。 我如何使用 MATLAB 实现这个项目?我可以解释一下过程吗?
【问题讨论】:
标签: algorithm matlab k-means id3
首先,尝试从图像及其对应的标签中提取特征。
假设X 表示所有图像的特征矩阵。所以,X 的每一行表示每个样本的特征向量。
opts = statset('Display','final');
k = 2;
startPositions = [0.01 0.01 ; -0.01 -0.01];
[idx,ctrs] = kmeans(X,k,...
'Distance','city',...
'Options',opts,...
'Start',startPositions ...
);
plot(X(idx==1,1),X(idx==1,2),'r.','MarkerSize',12)
hold on
plot(X(idx==2,1),X(idx==2,2),'b.','MarkerSize',12)
plot(ctrs(:,1),ctrs(:,2),'kx',...
'MarkerSize',12,'LineWidth',2)
plot(ctrs(:,1),ctrs(:,2),'ko',...
'MarkerSize',12,'LineWidth',2)
legend('Cluster 1','Cluster 2','Centroids',...
'Location','NW')
以上代码取自 Matlab 文档。
现在,一旦您拥有了所有示例及其对应的集群,您就可以轻松地将查询特征向量与集群的中心在一些距离度量方面进行比较,并将最近的集群作为结果。
【讨论】: