【问题标题】:MATLAB - Supervised Classifcation/SegmentationMATLAB - 监督分类/分割
【发布时间】:2012-05-10 18:17:13
【问题描述】:

我目前正在使用 PRtools。 我非常坚持我正在做的事情。

请任何人指导我如何从训练数据集到分类器? 我查看的训练和测试数据的所有示例都是从同一数据集生成的,在本例中为 A,随机如下:

A=datafile(2:end,1:end-1);
labs=datafile(2:end,end);
A=dataset(A,labs);
A=setprior(A,[0.5 0.5]);
[B,C] = gendat(A,0.2);
W = pca(B,2);  % compute PCA on training set only
A2 = A*W;      % maps all data to 2D
B2 = B*W;      % maps training set to 2D
C2 = C*W;      % maps test set to 2D
figure; gridsize(50); scatterd(A2,'legend');
V = B2*ldc;    % compute classifier in 2D
plotc(V);      % plot in 2D
D = C2*V;      % classify
testc(D);      % compute error
confmat(D)     % compute confusion matrix 

但是,我有不同纹理的训练图像。计算特征;

train = dataset(double(glcm_features));     
train_label = setlabels(a, label(:,1));

但我的测试图像是单个图像上 2 个或多个纹理的组合:http://i.imgur.com/hLjPh.jpg

请任何人给我一些指导,我需要做什么才能做到这一点? 我被卡住了,因为我显然没有测试集的标签,而且它给了我错误,说应该有标签......

请帮忙。 先感谢您。

========================更新

我真正想做的是,如何让程序对包含多个纹理的图像中的纹理进行分类

【问题讨论】:

    标签: image matlab image-processing classification image-segmentation


    【解决方案1】:

    首先我不明白你想做什么。但是,要计算分类错误,您需要随身携带真实/真实标签。但是正如您所说,您没有测试集的标签,因此您无法计算错误。

    但是,通常所做的是将训练集分为两组,分别称为训练集和验证集。您使用训练集进行训练,并在您拥有真实标签的验证集上计算分类错误。

    假设您的测试集和训练集来自同一个分布,您可以将验证集上计算的误差概括为测试集上的预期误差。

    【讨论】:

    • 首先非常感谢您的回复。我真正想做的是,如何让程序识别包含多个纹理的图像中感兴趣的单个纹理(如上面的链接所示)--------
    • 对不起,如果我误解了你,但我从你这里所说的理解是,我可以直接将多个纹理图像输入到分类器中?就像我首先通过将混合纹理图像映射到不同强度的蒙版来划分混合纹理图像一样;然后我从所有类中获取特征并给它们标签;最后我将样本随机分成2组并从那里得到分类错误? --------我说的对吗?
    猜你喜欢
    • 2019-06-04
    • 2019-05-09
    • 2016-05-02
    • 2017-05-01
    • 2019-05-12
    • 2017-12-24
    • 2017-05-09
    • 2015-04-05
    • 2021-08-16
    相关资源
    最近更新 更多