当前位置:   article > 正文

朴素贝叶斯算法matlab代码详细解释_朴素贝叶斯matlab代码

朴素贝叶斯matlab代码
T = xlsread('data1.xlsx',1,'A1 : C1628');
x = T(:,1);  %横坐标向量
y = T(:,2); %纵坐标向量
c = T(:,3); %类标签向量
data = [x,y];  %训练样本矩阵
k = 1500;  %样本数量
T1 = sortrows([x(1:k,1),y(1:k,1),c(1:k,1)],3);%为方便处理按类这一列对样本进行升序排序(整个行的变化会和这一列的变化相同),如果是-3就是降序排列
%T1
temp = zeros(23,5);%用来存储样本中各个属性的均值, 方差和每个类的概率(一共有23类,每一类有两个特征属性,每个属性有均值和方差,那就是四个,再加概率一共五个)
%计算出样本中各个属性的均值, 方差和每个类的概率
for i = 1:23
    X = [];  Y = [];  count = 0;
    for j = 1:k
        if T1(j,3)==i
            X = [X;T1(j,1)];
            Y = [Y;T1(j,2)];
            count = count + 1;
        end
    end
    temp(i,1) = mean(X);  %计算第一个属性的均值
    temp(i,2) = std(X);   %计算第一个属性的方差
    temp(i,3) = mean(Y);  %计算第二个属性的均值
    temp(i,4) = std(Y);   %计算第二个属性的方差
    temp(i,5) = count/k;  %计算第i类别出现的概率
end
%计算预测结果
result = [];
for m = 1:1628
    pre = [];
    for n = 1:23
        PX = 1/temp(n,2)*exp(((data(m,1)-temp(n,1))^2)/-2/(temp(n,2)^2)); %计算P(xi|y=X)(这里省略了分母,并且将样本的概率分布设为正态分布)
        PY = 1/temp(n,4)*exp(((data(m,2)-temp(n,3))^2)/-2/(temp(n,4)^2)); %计算P(xi|y=Y)同上
        pre = [pre;PX*PY*temp(n,5)*10^8]; %为了防止求出来的概率值太小,于是乘以10^8便于比较
    end
    [da,index]=max(pre);%获得这一列的最大值及其索引值
    result = [result;index]; %将分类结果添加到result矩阵中
end
xlswrite('data1.xlsx',result,'F1:F1628'); %将预测结果写到Excel表格
%画图
for i = 1:1628
    rand('seed',result(i,1));
    color = rand(1,3);
    plot(x(i,1),y(i,1),'*','color',color);
    hold on;
end  
%查看正确率
num = 0;
for i = 1:1628
    if result(i)==c(i)
        num = num+1;%正确的个数
    end
end
num,
correct_ratio=num/1628,

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/920929
推荐阅读
相关标签
  

闽ICP备14008679号