MATLAB工具箱的statistic toolbox中有naivebayes的类,可以直接使用。
使用默认的高斯分布和混淆矩阵:
>> load fisheriris生成
>> O1 = fitNaiveBayes(meas,species);
其中,NClass是因变量的频数,ClassLevels则是因变量类别,prior为类别的频率。
NDims是特征数量,
Dist是分布名称,为normal。
Params是各特征对各因变量的参数估计。
<span style="font-family:Times New Roman;font-size:14px;">>> C1 = O1.predict(meas);
>> cMat1 = confusionmat(species,C1)
cMat1 =
50 0 0
0 47 3
0 3 47</span>
获得预测数据。
二、指定分布函数
>> O2 = NaiveBayes.fit(meas,species,'dist',{'normal','kernel','normal','kernel'});
>> C2 = O2.predict(meas);
>> cMat = confusionmat(species, C2)
cMat =
50 0 0
0 47 3
0 3 47
此处则指定四个特征分别符合高斯、核密度平滑估计、 高斯、核密度平滑估计分布。
更多详情,见MATLAB帮助文档:Naive Bayes classifier