朴素贝叶斯行分类

Posted

技术标签:

【中文标题】朴素贝叶斯行分类【英文标题】:Naive Bayes row classification 【发布时间】:2012-07-02 00:07:30 【问题描述】:

如何在 MATLAB 中对一行单独的单元格进行分类?

目前我可以像这样对单个列进行分类:

training = [1;0;-1;-2;4;0;1]; % this is the sample data.
target_class = ['posi';'zero';'negi';'negi';'posi';'zero';'posi'];
% target_class are the different target classes for the training data; here 'positive' and 'negetive' are the two classes for the given training data

% Training and Testing the classifier (between positive and negative)
test = 10*randn(25, 1); % this is for testing. I am generating random numbers.
class  = classify(test,training, target_class, 'diaglinear')  % This command classifies the test data depening on the given training data using a Naive Bayes classifier

和上面的不同,我要分类:

        A   B   C
Row A | 1 | 1 | 1 = a house

Row B | 1 | 2 | 1 = a garden

这是来自 MATLAB 网站的代码示例:

nb = NaiveBayes.fit(training, class)
nb = NaiveBayes.fit(..., 'param1', val1, 'param2', val2, ...)

我不明白param1val1 等是什么。有人可以帮忙吗?

【问题讨论】:

【参考方案1】:

这是一个改编自文档的示例:

%# load data, and shuffle instances order
load fisheriris
ord = randperm(size(meas,1));
meas = meas(ord,:);
species = species(ord);

%# lets split into training/testing
training = meas(1:100,:);         %# 100 rows, each 4 features
testing = meas(101:150,:);        %# 50 rows
train_class = species(1:100);     %# three possible classes
test_class = species(101:150);

%# train model
nb = NaiveBayes.fit(training, train_class);

%# prediction
y = nb.predict(testing);

%# confusion matrix
confusionmat(test_class,y)

这种情况下的输出是 2 个错误分类的实例:

ans =
    15     0     1
     0    20     0
     1     0    13

现在您可以为分类器自定义各种选项(您提到的参数/值),只需参考 documentation 以获取每个选项的描述。

例如,它允许您选择高斯或非参数内核分布来对特征进行建模。您还可以指定类的先验概率,如果它是从训练实例估计的,还是假设相等的概率。

【讨论】:

嗨 amro 在这种情况下 test_class 是什么? @JungleBoogie:它是测试集的真实类标签。我们使用它来获得公正的性能衡量标准(我们在一组上训练模型,并在完全不同的一组上进行测试) 啊我现在明白了。我遇到了一些错误,但是尝试使用您的方法,但我设法使用了自己的方法(不确定区别)您可以看到实现 here。 @JungleBoogie:就上述而言,解决方案很好,没有错误(并按要求回答问题)。您的另一个问题是使用对角协方差矩阵进行判别分析。虽然被认为等同于朴素贝叶斯,但这两种算法完全不同......

以上是关于朴素贝叶斯行分类的主要内容,如果未能解决你的问题,请参考以下文章

贝叶斯分类器(3)朴素贝叶斯分类器

朴素贝叶斯

朴素贝叶斯-商品评论情感分析

数据挖掘十大经典算法之朴素贝叶斯

分类算法 - 朴素贝叶斯算法

朴素贝叶斯分类——大道至简