机器学习十大算法之Matlab-8贝叶斯

本文提供了三个Matlab代码示例,详细展示了如何使用fitcnb函数进行朴素贝叶斯(NaiveBayes)分类。从基础的多分类例子开始,然后演示了如何指定先验概率,最后通过鸢尾花数据集解释了模型在二维特征空间的可视化。通过交叉验证评估了不同先验概率设置对模型性能的影响。

NB

Matlab代码

例子1-系统fitcnb做多分类

  • nba_mat.m
%朴素贝叶斯算法MATLAB实现
clear all; close all; clc;
load fisheriris   %载入样本数据
X=meas; %训练样本矩阵
Y=species; %标签向量
Mdl=fitcnb(X,Y)  %训练朴素贝叶斯模型
Mdl.ClassNames   %查看模型中的分类名称
Mdl.Prior       %查看模型中的先验概率
predict(Mdl,[1 0.2 0.4 2]) %预测新样本的类别

例子2-使用函数 fitcnb 时还可以预先指定先验概率

  • nba1_mat.m
load fisheriris
X = meas;
Y = species;
classNames = {'setosa','versicolor','virginica'}; %指定类的顺序
prior = [0.5 0.2 0.3]; %给定每个类的先验概率
Mdl = fitcnb(X,Y,'ClassNames',classNames,'Prior',prior);
%按指定的类序和先验概率创建新模型
CVMdl = crossval(Mdl); %对Mdl模型k折交叉验证
Loss = kfoldLoss(CVMdl), %损失率
rng(1); %可重复性
defaultPriorMdl = Mdl;
FreqDist = cell2table(tabulate(Y)); %混淆矩阵
defaultPriorMdl.Prior = FreqDist{:,3}; %先验概率用1/3,1/3,1/3
defaultCVMdl = crossval(defaultPriorMdl); %k折交叉验证
defaultLoss = kfold
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值