1、简单例子引入

2、先验概率

3、后验概率

4、最小错误率决策

5、最小风险贝叶斯决策

1. 贝叶斯公式

2简单例子

正常情况下,我们可以快速的将街上的人分成男和女两类。这里街上的人就是我们观测到的样本,将每一个人分成男、女两类就是我们做决策的过程。上面的问题就是一个分类问题。

分类可以看作是一种决策,即我们根据观测对样本做出应归属哪一类的决策。

假定我手里握着一枚硬币,让你猜是多少钱的硬币,这其实就可以看作一个分类决策的问题:你需要从各种可能的硬币中做出一个决策。硬币假设面值有1角、5角、1块。

如果事先告知这枚硬币只可能是一角或者五角,那么问题就是一个两分类问题。

3.先验概率

先验概率的一些问题

4.后验概率

5.决策

7.例子

例 假设在某个局部地区细胞识别中正常和异常两类的先验概率分别为,

正常状态

现有一待识别的细胞,其观察值为x,从类条件概率密度分布曲线上查得

试对该细胞进行分类。

解:利用贝叶斯公式,分别计算两类后验概率

8.最小错误率决策

根据贝叶斯决策规则,因为

P(w1 | x) = 0.818 > P(w2 | x) = 0.182

所以,将 x 归类于正常状态。

假设有某个观测值 x,

•若 x 使得 P(w1|x) > P(w2|x),则我们自然会做出真实类别是 w1 的判决

•若 x 使 得 P(w2|x) > P(w1|x),则我们更倾向于选择w2

据此规则进行一次判决的错误概率:

显然,对于某个给定的x,采用上述规则可以使错误概率最小。

问题是,这一规则能够使得平均错误概率最小吗?

平均错误概率:

如果对于每个 x 我们都能保证P(error|x)尽量小,则上述积分值也必然最小

9.最小风险贝叶斯决策

前面给出的是在最小错误率的原则下得到的决策规则。但是,根据情况的不同,我们关心的有可能不仅仅是错误率,而是错误所带来的损失。把五角错认成一角与一角错认成五角所带来的损失是不同的。

在癌细胞识别中,如果将正常细胞误判为癌细胞,会给病人带来精神上的负担和不必要的进一步检查,这是一种损失或风险;反之如果把癌细胞细胞误判为正常细胞,则损失更大,这可能会导致病人丧失宝贵的早期发现癌症的机会,甚至会造成影响病人生命的严重后果。

将这两种错误一视同仁来对待,在很多情况下是不恰当的。

所谓最小风险贝叶斯决策,就是考虑各种错误造成损失不同时的一种最优决策。

基本思想:

使错误率最小并不一定是一个普遍适用的最佳选择。

癌细胞分类

两种错误:

癌细胞 –>正常细胞

正常细胞 –>癌细胞

两种错误的代价(损失)不同

宁可扩大一些总的错误率,但也要使总的损失减少。

引进一个与损失有关联的,更为广泛的概念——风险。

在作出决策时,要考虑所承担的风险。

基于最小风险的贝叶斯决策规则正是为了体现这一点而产生的。

10.贝叶斯决策理论的分类方法

优点:数据较少仍然有效,可以处理多类别问题。

缺点:对于输入数据的准备方式较为敏感。

应用:文档分类的常用算法。

代码实例

问题分析:

实例说明

统一文本形式

代码实现

构建词汇表-词典

词向量—词集、词袋模型

类概率

类条件概率密度

判断:

存在问题

类条件概率及先验概率结果

结果

实例——使用贝叶斯方法对邮件进行分类

正常数据

垃圾邮件数据

分类步骤

垃圾邮件分类

贝叶斯决策_bayes(新闻分类)的更多相关文章

  1. [Deep-Learning-with-Python]基于Kears的Reuters新闻分类

    Reuters数据集下载速度慢,可以在我的repo库中找到下载,下载后放到~/.keras/datasets/目录下,即可正常运行. 构建神经网络将路透社新闻分类,一共有46个类别.因为有多个类别,属 ...

  2. 朴素贝叶斯算法——实现新闻分类(Sklearn实现)

    1.朴素贝叶斯实现新闻分类的步骤 (1)提供文本文件,即数据集下载 (2)准备数据 将数据集划分为训练集和测试集:使用jieba模块进行分词,词频统计,停用词过滤,文本特征提取,将文本数据向量化 停用 ...

  3. 机器学习入门-贝叶斯中文新闻分类任务 1. .map(做标签数字替换) 2.CountVectorizer(词频向量映射) 3.TfidfVectorizer(TFDIF向量映射) 4.MultinomialNB()贝叶斯模型构建

    1.map做一个标签的数字替换 2.vec = CountVectorizer(lowercase=False, max_features=4000)  # 从sklean.extract_featu ...

  4. 我一直跑的分类LSTM模型原来是这一个,新闻分类网络

    原始的github可以参考这里: https://github.com/FudanNLP/nlpcc2017_news_headline_categorization 我的经验文章可以参考这里: ht ...

  5. 使用Sklearn构建朴素贝叶斯分类器-新闻分类

    # -*- coding: UTF-8 -*- import jieba import os import random from sklearn.naive_bayes import Multino ...

  6. 使用百度NLP接口对搜狐新闻做分类

    一.简介 本文主要是要利用百度提供的NLP接口对搜狐的新闻做分类,百度对NLP接口有提供免费的额度可以拿来练习,主要是利用了NLP里面有个文章分类的功能,可以顺便测试看看百度NLP分类做的准不准.详细 ...

  7. windows定时执行百度新闻爬虫

    想要做个新闻文本识别分类的项目,就先写了个爬取百度新闻的爬虫. 环境:win7 32 bit python3.4 若干第三方库 可以实现的功能:定期按照百度新闻的分类抓取新闻的标题,所属类别及文本内容 ...

  8. 使用jQuery Mobile实现新闻浏览器(3)

    在本教程的前两篇文章中,笔者分别向大家介绍了使用jQuery Mobile框架如何去设计手机新闻浏览器,其中实现了一个WEB版本的新闻浏览器,在本教程的最后一篇中,将讲解如何将已实现的web版本的新闻 ...

  9. JQuery Mobile实现手机新闻浏览器(2)

    在上一篇文章中,已经讨论了程序的结构和页面的布局,并简单介绍了一些jQuery Mobile的使用技巧.在本篇文章中,笔者将继续完成我们web应用的新闻浏览器的设计. 程序的启动 我们现在来研究一下程 ...

随机推荐

  1. 使用grub手动引导linux和windows

    引导Linux 重启进入到grub菜单界面时,按“c”键进入grub命令模式.1.指定/boot所在的分区,比如分区是第一块硬盘第一分区,即hd0,0 grub> root (hd0,0) 2. ...

  2. WCF入门

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  3. Servlet3.0中Servlet的使用

    目录 1.注解配置 2.异步调用 3.文件上传 相对于之前的版本,Servlet3.0中的Servlet有以下改进: l  支持注解配置. l  支持异步调用. l  直接有对文件上传的支持. 在这篇 ...

  4. Python基本数据类型之set

    一.定义 set是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), ...

  5. 常见linux命令释义(第五天)——shell变量学习

    由于时间有限,我写这篇博客的时间上限为30分钟.仅作为学习笔记而用,内容会尽量的讲清楚.如果讲的不清楚,你来打我啊! 玩笑开过,正式开始今天的学习. linux系统的中一些命令是在/bin下,这个是一 ...

  6. Django admin美化插件suit

    Django Suit 效果 使用前django页面 使用后django页面 安装 官方文档 http://django-suit.readthedocs.io/en/develop/index.ht ...

  7. c#多态之抽象类与虚方法的异同点~

    多态之抽象类与虚方法的相似点及不同点 : 不同点 1.方法关键字不一样 虚方法的方法关键字是:virtual. 抽象类的方法关键词是:abstract 2.基类的方法是否有方法体/实现 虚方法的方法: ...

  8. WinForm------点击Control弹出MessageBox

    private void barButtonItem3_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { //弹 ...

  9. Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互

    框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java   model文件夹下的 Global ...

  10. asp.net+mysq 数据库操作类

    对数据库操作的使用方法: 1.引入命名空间 2.操作.三四行代码即可完成数据操作.类似于: using System; using System.Data; using System.Text; us ...