【问题标题】:Misclassification error rate and accuracy误分类错误率和准确率
【发布时间】:2012-04-15 13:29:22
【问题描述】:

Below 是用于贝叶斯分类器的 Matlab 代码,可将任意数字分类到它们的类中。

 training = [3;5;17;19;24;27;31;38;45;48;52;56;66;69;73;78;84;88]; 
     target_class = [0;0;10;10;20;20;30;30;40;40;50;50;60;60;70;70;80;80];  

      test = [1:2:90]'; 
     class  = classify(test,training, target_class, 'diaglinear');  % Naive Bayes classifier 
 [test class]

(a) 如果有人可以提供代码 sn-ps 来计算错误分类和准确性的贝叶斯误差。我浏览了 matlab 关于[class,err]=classify(...) 的文档。但是,我无法遵循它并工作。

(b) 另外,如何绘制散点图和直方图,指示属于不同类别的数据点的数量?我尝试了scatter(training(:),target_class(:)),但它提供了其他东西!

(c) 如何使用 crossvalidate()?举个例子真的很有帮助。谢谢。

【问题讨论】:

    标签: classification matlab pattern-recognition


    【解决方案1】:

    (a) 要计算错误分类错误,您还需要知道test_class。然后您可以将输出的class 变量与test_class 进行比较。

    misserr = sum(test_class~=class)./numel(test_class);
    

    如果您没有测试类,则第二个输出参数 err 将为您在训练集上应用生成的模型提供错误分类错误的估计值。

    (b)如果您在训练数据集中只有 2 个因子(列),您可以这样做

    scatter(training(:,1),training(:,2),[],target_class)
    

    相应地,您可以将 SCATTER3 用于 3 个因素。

    对于更多因子,您可以使用 PRINCOMP 执行主成分分析并绘制 2 或 3 个第一成分。

    更新:我错过了你实际上只有一个因素。您的 scatter 语句可以很好地工作。你为什么不喜欢它?您还可以将 target_class 添加为第四个参数,以不同的方式为点着色。您还可以交换第一个和第二个参数,以获得更好的表示。

    (c) 您可以使用 Statistical Toolbox 中的 CROSSVALCVPARTITION 函数执行 CV。有关有用的示例,请参阅文档。

    这是另一个 SO 问题 - How to use a cross validation test with MATLAB? 几乎没有其他选项。

    【讨论】:

    • 嗨。谢谢。(b) 当我使用散点图时,我得到了几个线图而不是散点图。您能否为一列/因子数据提供正确的代码? (c) 在我的案例中使用 cv 的目的是比较 2 个或更多分类器的性能,在这种情况下是贝叶斯与 k-nn、PCA 等。所以,我如何使用 CV 我的意思是要输入哪些参数比较目的。我发现你的例子比 Matlab 的更容易理解!
    • 您的散点图语句不应出现线条。我试过scatter(training, ones(size(training)), [], target_class),效果很好。 Y 轴和颜色取决于target_class
    • 您不能使用 CLASSIFY 应用所有这些分类器。它只有 4 种分类器。我相信你可以通过交叉验证来做到这一点。例如,请参阅 CROSSVAL 文档中的示例 2。您将必须提供不同的预测功能(分类除外)。它将返回错误分类率,您可以使用它来比较不同的功能。
    • 我知道其他可以比较不同分类方法的包,比如 R 中的 CMA、weka(或 wekamine)等。
    • 您提供的代码没有使用 CROSSVAL,misserr = sum(test_class~=class)./numel(test_class);会同样起到给出错误分类的目的吗?我已经上传了散点图的图像......它是否正确,因为它没有提供任何信息(小样本训练大小为 20)。另外,你能提供一个链接吗?可以得到k-nn的简单实现吗?
    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 2019-07-28
    • 2016-06-19
    • 2020-02-16
    • 2016-02-24
    • 2019-03-22
    • 2019-02-14
    • 1970-01-01
    相关资源
    最近更新 更多