《机器学习实战》第四章学习笔记(朴素贝叶斯)

本文详细介绍了朴素贝叶斯法的基本原理、参数估计,并探讨了其在文档分类中的应用,包括如何用于垃圾邮件过滤和个人广告区域倾向分析。通过极大似然估计和贝叶斯估计进行参数计算,并提供了Python代码实现。
摘要由CSDN通过智能技术生成

朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率密度分布;然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法。

一、朴素贝叶斯

1.1 基本方法

朴素贝叶斯法对条件概率分布作了条件独立性的假设。由于这是一个较强的假设,朴素贝叶斯由此得名。具体的,条件独立性假设是:


朴素贝叶斯法实际上学习到生成数据的机制,属于生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使得朴素贝叶斯法变得简单,但有时会牺牲一定的分类准确率。

朴素贝叶斯法分类时,对于给定的输入x,通过学习到的模型计算后验概率分布,将后验概率最大的类作为x的类的输出:

ps:后验概率最大化,等价于期望风险最小化,这就是贝叶斯所采用的原理。

1.2 朴素贝叶斯法的参数估计

1.2.1 极大似然估计


1.2.2 贝叶斯估计

二、使用朴素贝叶斯进行文档分类

      机器学习的一个重要应用就是文档的自动分类。在文档分类中,整个文档(如一封电子邮件)是实例,而电子邮件中的某些元素则构成特征。虽然电子邮件是一种会不断增加的文本, 但我们同样也可以对新闻报道、用户留言、 政府公文等其他任意类型的文本进行分类。我们可以观察文档中出现的词, 并把每个词的出现或者不出现作为一个特征,这样得到的特征数目就会跟词汇表中的词目一样多。朴素贝叶斯是用于文档分类的常用算法。

      要得到好的概率分布,就需要足够的数据样本,假定样本数为N。由统计学知,如果每个特征需要N个样本,那么对于10个特征将需要 N^10个样本,对于包含1000个特征的词汇表将需要N^1000个样本。可以看到,所需要的样本数会随着特征数目增大而迅速增长。如果特征之间相互独立,那么样本数就可以从N^1000减少到1000*N况。所谓独立指的是统计意义上的独立,即一个特征或者单词出现的可能性与它和其他单词相邻没有关系。

朴素贝叶斯分类器通常有两种实现方式:一种基于贝努利模型的实现,一种是基于多项式模型的实现。前者是只考虑词在文档中出现的次数,只考虑出不出现,因此在这个意义上相当于假设词是等权重的;后者考虑词在文档中出现的次数。

2.1 朴素贝叶斯的一般过程:

2.2 使用朴素贝叶斯过滤垃圾邮件:

2.2.1 代码实现:

# -*- coding: utf-8 -*-
"""
Created on Mon Apr 16 20:18:51 2018
file name:bayes.py
goal:使用朴素贝叶斯过滤恶意留言和垃圾邮件
@author: lizihua
"""
import numpy as np
from numpy import log
import re

#加载数据
def loadDataSet():
    postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
                 ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
                 ['my', 'dalmation', 'is', 'so', '
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值