朴素贝叶斯分类(matlab数学建模)

650 阅读1分钟

本文简要介绍朴素贝叶斯基本思想及给出其简要应用示例。后续将基于预测性能评估(先验概率-高斯轮廓、后验概率、误分类成本)、分类准确性比较、交叉验证、超参数优化、模型选择等进一步评估优化模型。

简要了解朴素贝叶斯

对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。

预测数据并效果展示

示例

%数据导入
load fisheriris
X = meas;
Y = species;
rng('default')
%指定30%保持率样本进行测试
cv = cvpartition(Y,'HoldOut',0.30);
%培训和测试数据集
trainInds = training(cv);
testInds = test(cv);
XTrain = X(trainInds,:);
YTrain = Y(trainInds);
XTest = X(testInds,:);
YTest = Y(testInds);

%训练朴素贝叶斯分类器,指定类名
Mdl = fitcnb(XTrain,YTrain,'ClassNames',{'setosa','versicolor','virginica'})
%预测测试样本,取10个数据
idx = randsample(sum(testInds),10);
label = predict(Mdl,XTest);
%预测效果展示
table(YTest(idx),label(idx),'VariableNames',...
    {'TrueLabel','PredictedLabel'})
%创建混淆图,matlab2018-
%cm = confusionchart(YTest,label);

其中XTrain为训练样本数据,YTrain为训练样本分类,XTest为预测样本数据,label为得到的预测样本分类。