• 大小: 4KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: Matlab
  • 标签:

资源简介

朴素贝叶斯算法,matlab程序,极大似然估计,贝叶斯估计

资源截图

代码片段和文件信息


% 朴素Bayes算法的极大似然估计和贝叶斯估计
% 两种方法都能得到结果

close all
clear all
clc

syms Y X1 X2
syms M S L %训练数据集
T=[111112222233333;SMMSSSMMLLLMMLL;-1-111-1-1-11111111-1];

%%%%%%%%%%%%%%%%%极大似然估计%%%%%%%%%%%%%%%
%先验概率
P_Posive1 = length(find(T(3:)==1))/size(T2);  %P_Posive1变量名的含义是P(Y=1),以下类比
P_Negtive1 = length(find(T(3:)==-1))/size(T2);
%条件概率
cols12=find(T(3:)==1);%在Y=1的条件下计算各个条件概率
P_X1_1atY_Posive1 = length((find(T(1cols12)==1)))/length(find(T(3:)==1));%P_X1_1atY_Posive1变量名的含义是P(X1=1|Y=1),以下类比
P_X1_2atY_Posive1 = length((find(T(1cols12)==2)))/length(find(T(3:)==1));
P_X1_3atY_Posive1 = length((find(T(1cols12)==3)))/length(find(T(3:)==1));
P_X2_SatY_Posive1 = length((find(T(2cols12)==S)))/length(find(T(3:)==1));
P_X2_MatY_Posive1 = length((find(T(2cols12)==M)))/length(find(T(3:)==1));
P_X2_LatY_Posive1 = length((find(T(2cols12)==L)))/length(find(T(3:)==1));
cols2=find(T(3:)==-1);%在Y=-1的条件下计算各个条件概率
P_X1_1atY_Negtive1 = length((find(T(1cols2)==1)))/length(find(T(3:)==-1));
P_X1_2atY_Negtive1 = length((find(T(1cols2)==2)))/length(find(T(3:)==-1));
P_X1_3atY_Negtive1 = length((find(T(1cols2)==3)))/length(find(T(3:)==-1));
P_X2_SatY_Negtive1 = length((find(T(2cols2)==S)))/length(find(T(3:)==-1));
P_X2_MatY_Negtive1 = length((find(T(2cols2)==M)))/length(find(T(3:)==-1));
P_X2_LatY_Negtive1 = length((find(T(2cols2)==L)))/length(find(T(3:)==-1));
%对于给定的x=(2,S)计算其后验概率
P_Y_Posive1andX1_2atY_1andX2_SatY_1 = P_Posive1*P_X1_2atY_Posive1*P_X2_SatY_Posive1;
P_Y_Negtive1andX1_2atY_1andX2_SatY_1 = P_Negtive1*P_X1_2atY_Negtive1*P_X2_SatY_Negtive1;
%给出结果标记
if P_Y_Posive1andX1_2atY_1andX2_SatY_1>P_Y_Negtive1andX1_2atY_1andX2_SatY_1
    fpr

评论

共有 条评论