• 大小: 6KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 贝叶斯  MATLAB  

资源简介

样本基于正态分布的朴素贝叶斯分类器,实测可用,内含数据

资源截图

代码片段和文件信息

%------------------------------------------------------------
% NaiveBayesian Classification
%-----------------------------------------------------------
% Parameter:
%  k: Number of Cluster;

clear all
close all


k = 3;
attribute = 4;

%------------------------------------------------------
load iris_tr;
Y= IRIS_training_data;
clear IRIS_training_data
%---------------------------------------------------------
% Learning process
%------------------------------ Calculating  P(Ci)
[nrnc] = size(Y);  75*7
for i= 1:1:k         k=3
    pc(i) = sum(Y(: attribute+i))/nr;
end
%--------------------------------------------------------------------
% Calculating Mean and Standard Error for each Class and Attribute 
%----------------------------------------------------------------------
for i = 1:1:k
    t = 1;
    for j = 1:1:nr
        if Y(j attribute+i) == 1
            x(t:) = Y(j 1:attribute);
            t = t+1;
        end
    end
    mu(i:)  = mean(x);
    xigma(i:) = std(x);
    clear x
end
%-----------------------------------------------------------------
%----------------------------------------------------------------
% Testing process
%----------------------------------------------------------------
% Load test data set
%--------------------------------------------
load iris_te;
X= IRIS_testing_data;
clear IRIS_testing_data

% load iris_tr;
% X= IRIS_training_data;
% clear IRIS_training_data
%----------------------------------------------
[xrxc] = size(X);

Correct = 0;
for i = 1:1:xr
%--------------------------------------------------------------
% Calculating P(xi | Ci) for given data X(i:)
%-------------------------------------------------------------
    for p = 1:1:k
        for j = 1:1:attribute
            temp1 = -(X(ij) - mu(p j))^2 / (2 * xigma(pj)^2);
            temp2 = 1/ (sqrt(2*pi) * xigma(p j));
            pxc(pj) = temp2 * exp(temp1);
        end
    end
%--------------------------------------------------------------
% Calculating P(X| Ci)*P(Ci) for given data X(i:); 
%  and assign  X(i:) into a Class.
%-------------------------------------------------------------   
    pxcc = ones(1k);
    p_min = -1;
    for p = 1:1:k
        for j = 1:1:attribute
            pxcc(p) = pxcc(p) * pxc(pj);
        end
        pxcc(p) = pxcc(p) * pc(p)
        
%         if pxcc(p) > p_min
%             p_min = pxcc(p);
%             class = p;
%         end
    end
    
%     class_label(i) = class;
%--------------------------------------------------------------
% Calculating Calssification Precision 
%-------------------------------------------------------------    
%     if X(iattribute+class) == 1
%         Correct = Correct + 1;
%     end
end
    
% Precision = Correct/xr
% Err = xr - Correct

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4408  2003-05-19 19:08  样本连续的朴素贝叶斯代码\iris_te.mat
     文件        4408  2003-05-19 19:08  样本连续的朴素贝叶斯代码\iris_tr.mat
     文件        3272  2018-03-09 15:58  样本连续的朴素贝叶斯代码\matlab.mat
     文件        2866  2018-03-09 15:56  样本连续的朴素贝叶斯代码\naivebayes.m

评论

共有 条评论