%书中例题实现朴素贝叶斯 %特征1的取值集合 A1=[1;2;3]; %特征2的取值集合 A2=[4;5;6];%S M L AValues={A1;A2}; %Y的取值集合 YValue=[-1;1]; %数据集和 T=[ 1,4,-1; 1,5,-1; 1,5,1; 1,4,1; 1,4,-1; 2,4,-1; 2,5,-1; 2,5,1; 2,6,1; 2,6,1; 3,6,1; 3,5,1; 3,5,1; 3,6,1; 3,6,-1]; %训练带Laplace平滑的朴素贝叶斯模型 ltheta = LaplaceNBtrain(T(:, 1:size(T, 2) - 1), T(:, size(T, 2)), AValues, YValue, 1); %训练朴素贝叶斯模型 theta = NBtrain(T(:, 1:size(T, 2) - 1), T(:, size(T, 2)), AValues, YValue); %测试两个数据与书中答案相符 ans = NBtest(theta, [2,4;], AValues, YValue) lans = NBtest(ltheta, [2,4;], AValues, YValue)
function y = NBtest(th |
|