贝叶斯分类是一类分类算法的总称,这类算法均已贝叶斯定理为基础,因此统称为贝叶斯分类。在贝叶斯分类器中,常用朴素贝叶斯,就类似于看见黑人,大多会认为来自非洲。

事件A在事件B(发生)的条件下的概率,与事件B在事件A(发生)的条件下的概率是不一样的,但他们有确定的关系,贝叶斯定理就是对在这种关系的陈述。

优点:

简单、高效、健壮。能应用到大型数据库中,方法简单且分类准确率高,速度快。

缺点:

相关属性不独立,会影响贝叶斯分类准确率。

改进方法:

降低独立性假设的算法, 例如,TAN(Tree Augmented Bayes Network)算法、贝叶斯网络分类器(Bayes Network Classifier,BNC)。

朴素贝叶斯分类步骤:

(1)设为一个待分类项,a为x的一个特征属性。

(2)有类别集合

(3)计算

(4)如果,则

总体来说,大致分为三个阶段:

实例介绍:

运用朴素贝叶斯算法根据客户的16个属性,为一家银行建一个分类器,判断客户是否愿意购买理财产品:

MATLAB实现代码:

%% ————————————2.朴素贝叶斯分类器——————————————%%load 'bank.mat';names = bank.Properties.VariableNames;%使用数据文件,记录自变量和因变量的属性名category = varfun(@iscellstr,bank,'Output','uniform'); %输出格式为数值格式。为字符串的返回结果为1,为数字的返回结果为0for i = find(category)    bank.(names{i}) = categorical(bank.(names{i}));    %将bank中的属性创建分类数组。endcatPred = category(1:end-1); %记录除y值的是否为字符串的逻辑矩阵dist = repmat({'normal'},1,width(bank)-1); %repmat(A,M,N)指将A中的内容赋值给M*N的矩阵,A可为字符串或者矩阵等。dist(catPred) = {'mvmn'}; %将不为数值型的属性赋值为mvmn。%预测变量X = table2array(varfun(@double,bank(:,1:end-1)));%先将自变量转化为double类型,再将table转化为数组类型。Y = bank.y; %将因变量赋值给Ydisp('数据中YES&No的统计结果');tabulate(Y) %求重复数字的个数使用tabulate,占比率

%%%设置交叉验证方式cv = cvpartition(height(bank),'holdout',0.40);%height(bank)取bank的行数,采用holdout validation(保持验证),其中0.4*height(bank)的样本会作为测试集Xtrain = X(training(cv),:);%training是交叉验证的训练函数%training(cv)返回'holdout' or 'resubstitution'的逻辑变量%training(c,i)返回'kfold' or 'leaveout'.的逻辑变量%test是交叉验证的测试集函数%test(cv)与training函数用法类似Ytrain = Y(training(cv),:);Xtest = X(test(cv),:);Ytest = Y(test(cv),:);Xnum = [X(:,~catPred) dummyvar(X(:,catPred))];%~catPred是指catPed~=0的列,即初始不为数值型的属性%dummyvar是用于生成虚拟变量的函数,主要将某种类别转化为0和1组合的矩阵。即使用数值变量代表研究的样本子组。Ynum = double(Y)-1;XtestNum = Xnum(test(cv),:);YtestNum = Ynum(test(cv),:);%训练分类器Nb = NaiveBayes.fit(Xtrain,Ytrain,'Distribution',dist);%进行预测Y_Nb = Nb.predict(Xtest);Yscore_Nb = Nb.posterior(Xtest);Yscore_Nb = Yscore_Nb(:,2);%计算混淆矩阵disp('贝叶斯分类结果');C_nb = confusionmat(Ytest,Y_Nb)

转载于:https://www.cnblogs.com/somedayLi/p/9555578.html

机器学习——朴素贝叶斯分类器相关推荐

  1. 机器学习-朴素贝叶斯分类器

    机器学习-朴素贝叶斯分类器 概述 定义 贝叶斯方法 朴素贝叶斯算法 算法原理 优缺点 优点 缺点 应用 文本分类 其他 概述 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 朴素贝叶斯分类 ...

  2. 机器学习—— 朴素贝叶斯分类器

    朴素贝叶斯分类器简述 条件概率 贝叶斯公式 拉普拉斯平滑 文本向量化 MultinomialNB 条件概率 在进入朴素贝叶斯分类算法的学习之前,我们需要先了解一些概率论的知识,首先来看看条件概率吧. ...

  3. 机器学习实验 - 朴素贝叶斯分类器

    目录 一.报告摘要 1.1 实验要求 1.2 实验思路 1.3 实验结论 二.实验内容 2.1 方法介绍 2.2 实验细节 2.2.1 实验环境 2.2.2 实验过程 2.2.3 实验与理论内容的不同 ...

  4. 机器学习实战 朴素贝叶斯分类器

    基于概率论的分类方法: 朴素贝叶斯 我的微信公众号: s406205391; 欢迎大家一起学习,一起进步!!! k-近邻算法和决策树会给出"该数据属于哪一类"的明确回答.不过,分类 ...

  5. 机器学习算法 - 朴素贝叶斯分类器

    ​ 一.算法简介 1.1 背景 监督学习分为生成模型 (generative model) 与判别模型 (discriminative model) 判别模型:SVM, LR, KNN, NN, CR ...

  6. 机器学习:朴素贝叶斯分类器,决策函数向量化处理,mask使用技巧

    文章目录 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 借助于numpy向量化处理,相当于并行计算,注意mask使用技巧,用途较广: 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 前面提到 ...

  7. sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器

    今天我们在学习朴素贝叶斯分类器之前,我们先来总结下前面经常用到的内容,方法链:在scikit-learn中所有模型的fit方法返回的都是self.我们用一行代码初始化模型并拟合,对应代码如下:logr ...

  8. python机器学习案例系列教程——文档分类器,朴素贝叶斯分类器,费舍尔分类器

    全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 github地址:https://github.com/626626cdllp/data-mining/tree/master/Bay ...

  9. 机器学习算法——贝叶斯分类器3(朴素贝叶斯分类器)

    基于贝叶斯公式来估计后验概率P(c|x)的主要困难在于:类条件概率P(x|c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得. 为避开这个障碍,朴素贝叶斯分类器(Naive Bayes cl ...

  10. 机器学习(3)高斯判别分析朴素贝叶斯分类器

    判别模型与生成模型 判别模型 判别模型是对观测数据进行直接分类,常见的判别模型有逻辑回归和感知机算法等.此模型仅对数据进行分类,并不能具象化或者量化数据本身的分布状态,因此也无法根据分类生成可观测的图 ...

最新文章

  1. 学习 ARM 系列 -- FS2410 开发板上 Nand Flash 到内存的代码搬移
  2. 理解A*寻路算法具体过程
  3. 网络系统服务器子系统,网管系统中服务器及网络设备监控子系统的设计与实现...
  4. Linux lvs 的固定访问
  5. 【Flink】 Flink 源码之 SQL 执行流程
  6. c语言可变参数 printf,c语言 使用可变参数列表实现printf(my_printf)
  7. spring原理学习
  8. 二叉树遍历(深度优先+广度优先)
  9. zabbix邮件报警功能的验证
  10. export和import 输出/接收模块变量的接口
  11. Microsoft store 微软商店 下载错误 代码: 0x80240004
  12. windows ghost系统下载
  13. springboot整合mysql数据库_springBoot 集成Mysql数据库
  14. 7、核心芯片说明文档
  15. 第四集:让声音变得更有磁性 —— 共鸣训练(汇播课程演说笔记)
  16. Rancher+k3s+阿里云流水线详细配置教程
  17. 程序员进阶!阿里P7级别面试经验总结,深度好文
  18. 计算机网络节点分为三类,计算机网络技术1—2——3章
  19. 小伙入职某互联网大厂的一天(1)
  20. 如何使用ROS 控制桌面机械手Dobot魔术师?

热门文章

  1. 【搬运及个人处理】联想电脑(Lenovo XiaoXinAir-14IIL 2020)散热模式Fn+Q 失效解决方案
  2. matlabsvd提取特征值_在MATLAB中使用SVD压缩图像
  3. 西南大学网络作业答案计算机,2019西南大学继续教育学院《计算机基础》作业答案...
  4. 使用gmediarender-resurrect搭建DLNA音箱
  5. space-evenly的兼容性问题
  6. 【学习日记】Dom基础
  7. 怎么从身份证号码批量提取出生年月日?
  8. Linux系统下查看dsdt table
  9. How a non-windowed component can receive messages from Windows -- AllocateHWnd
  10. 网站服务器被劫持,网站服务器被劫持了怎么修复