【问题标题】:Implementation of text classification in MATLAB with naive bayes用朴素贝叶斯在 MATLAB 中实现文本分类
【发布时间】:2015-02-18 04:37:14
【问题描述】:

我想在 MATLAB 中使用朴素贝叶斯算法实现文本分类。 我现在有 3 个矩阵:

  1. 类先验(8*2 单元格 - 8 个类名,每个类的百分比来自训练)
  2. 训练数据:字数矩阵 - (15000*9 单元格 - 每个类别,每个特征(字)的计数。最后一列是所有文档的每个字数。
  3. 测试数据:具有 (2000*1) 个单元格的矩阵 - 每个单元格都有一个代表文档的单词列表。

我现在该怎么办?我想计算测试集的召回率和精度。我查看了 matlab 朴素贝叶斯函数,它假设很简单,但我不确定如何以及从哪里开始。

谢谢

【问题讨论】:

    标签: matlab classification text-classification


    【解决方案1】:

    这是一个朴素贝叶斯分类的例子,

    x1 = 5 * rand(100,1);
    y1 = 5 * rand(100,1);
    data1 = [x1,y1];
    x2 = -5 * rand(100,1);
    y2 =  5 * rand(100,1);
    data2 = [x2,y2];
    x3 = -5 * rand(100,1);
    y3 = -5 * rand(100,1);
    data3 = [x3,y3];
    traindata = [data1(1:50,:);data2(1:50,:);data3(1:50,:)];
    testdata = [data1(51:100,:);data2(51:100,:);data3(51:100,:)];
    label = [repmat('x+y+',50,1);repmat('x-y+',50,1);repmat('x-y-',50,1)];
    

    那是我的数据,三个类别。现在分类,

    nb = NaiveBayes.fit(traindata, label);
    ClassifierOut = predict(nb,testdata);
    

    我认为您应该将数据更改为矩阵而不是单元格,但是标签还可以。

    这是结果,blue 是训练数据,其余是三个类的分类器输出。

    您还可以查看here 来计算多类数据的召回率和精度。

    【讨论】:

      猜你喜欢
      • 2016-08-26
      • 2012-02-21
      • 2016-08-02
      • 2018-07-29
      • 2012-04-09
      • 2015-03-06
      • 2013-12-24
      • 2014-04-14
      • 2015-08-27
      相关资源
      最近更新 更多