机器学习笔记 贝叶斯分类器(附Python与R代码)

这篇博客介绍了朴素贝叶斯分类器的原理和特点,包括其对缺失和噪声数据的不敏感性,以及在不同特征相关性条件下的表现。在Python中,通过scikit-learn库展示了GaussianNB、BernoulliNB和MultinomialNB的使用,并进行了参数优化。在R语言中,使用Rattle包和NaiveBayes函数对audit数据集进行分类,讨论了数据预处理、模型建立、预测和错误率分析的过程。
摘要由CSDN通过智能技术生成

朴素贝叶斯算法

原理:通过某对象的先验概率,利用贝叶斯公式计算出后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。

主要特点

  • 属性可以离散,也可以连续;
  • 数学基础扎实,分类效率稳定;
  • 对缺失和噪声数据不太敏感;
  • 属性如果不相关,分类效果很好;如果相关,则不低于决策树。

学习模型:计算对象归属于某一类的后验概率,以此最大概率的类作为对象所属类。即待学习的是对象的后验概率,及其涉及的概率分布。

输入
训练集在这里插入图片描述
测试实例在这里插入图片描述
输出:测试实例的分类

学习参数:先验概率在这里插入图片描述 ;条件概率:在这里插入图片描述

学习(估计)方法:极大似然估计

学习结果
先验概率在这里插入图片描述
后验概率在这里插入图片描述

测试实例
计算对象属于各类别的概率在这里插入图片描述
返回对象的分类y在这里插入图片描述

注意点

  1. 用极大似然估计可能会出现分母在这里插入图片描述为0的情况,此时可以采用贝叶斯估计(最大后验估计)在这里插入图片描述等价于在在这里插入图片描述的各个取值的频数上赋予了一个正数lamada
    此时在这里插入图片描述的贝叶斯估计调整为: 在这里插入图片描述
    在这里插入图片描述时,为极大似然估计;当在这里插入图片描述时,为拉普拉斯平滑。
  2. 在分类确定的条件下,用于分类的特征是条件独立的,但实际上并不符合,这也是为何理论上贝叶斯分类器准确率较高,但实际上的朴素贝叶斯很难成为最优分类器。
  3. 传统上认为事件的概率分布服从正态分布,但实际上不一定服从。在R与Python中均支持利用不同的分布进行估计。区别主要在于假设在这里插入图片描述了不同的分布。
    譬如:
    GaussianNB(高斯): 在这里插入图片描述
    BernoulliNB(伯努利): 在这里插入图片描述
    MultinomialNB(多项式):在这里插入图片描述

Python实战

目标:采用scikit-learn自带的手写识别数据集Digit Dataset,进行贝叶斯分类,并选择最优参数。

代码框架:导入包;导入并展示数据集,实现训练与测试集拆分;定义三种不同估计方法的贝叶斯分类器,实现分类;筛选最优参数;考虑训练数据追加,分类器的优化云联。(注:高斯贝叶斯分类器不存在优化的最优参数)

导入包

from sklearn import datasets,cross_validation,naive_bayes
import  numpy as np
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值