我想在MATLAB中使用Naive Bayes算法实现文本分类。 我现在有3个矩阵:
我现在该怎么办?我想计算测试集的召回率和精度。我看了一下matlab天真的贝叶斯函数,它假设很简单,但我不知道如何以及从哪里开始。
谢谢
答案 0 :(得分:3)
以下是朴素贝叶斯分类的一个例子,
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);
我认为您应该将数据更改为矩阵而不是单元格,但标签是okey。
以下是结果,blue
是训练数据,其余是三个类的分类器输出。
您还可以查看here来计算多类数据的调用和精度。