十大经典数据挖掘算法(9) 朴素贝叶斯分类器 Naive Bayes
贝叶斯分类器
贝叶斯分类分类原则是一个对象的通过先验概率。贝叶斯后验概率公式后计算,也就是说,该对象属于一类的概率。选择具有最大后验概率的类作为对象的类属。现在更多的研究贝叶斯分类器,有四个,每间:Naive Bayes、TAN、BAN和GBN。
贝叶斯网络是一个带有概率凝视的有向无环图,图中的每个结点均表示一个随机变量,图中两结点
间若存在着一条弧,则表示这两结点相相应的随机变量是概率相依的。反之则说明这两个随机变量是条件独立的。网络中随意一个结点X
均有一个对应的条件概率表(Conditional Probability Table。CPT)。用以表示结点X
在其父结点取各可能值时的条件概率。
若结点X 无父结点,则X 的CPT 为其先验概率分布。贝叶斯网络的结构及各结点的CPT
定义了网络中各变量的概率分布。
贝叶斯分类器是用于分类的贝叶斯网络。
该网络中应包括类结点C,当中C
的取值来自于类集合( c1 , c2 , ... , cm),还包括一组结点X = ( X1 , X2 , ... ,
Xn),表示用于分类的特征。对于贝叶斯网络分类器,若某一待分类的样本D。其分类特征值为x = ( x1 , x2 , ... , x n)
,则样本D 属于类别ci 的概率P( C = ci | X1 = x1 , X2 = x 2 , ... , Xn = x n) ,( i =
1 ,2 , ... , m) 应满足下式:
P( C = ci | X = x) = Max{ P( C = c1 | X = x) , P( C = c2 | X = x ) , ... , P( C = cm | X = x ) }
而由贝叶斯公式:
P( C = ci | X = x) = P( X = x | C = ci) * P( C = ci) / P( X = x)
当中。P( C = ci) 可由领域专家的经验得到,而P( X = x | C = ci) 和P( X = x) 的计算则较困难。
应用贝叶斯网络分类器进行分类主要分成两阶段。第一阶段是贝叶斯网络分类器的学习,即从样本数
据中构造分类器。包含结构学习和CPT
学习;第二阶段是贝叶斯网络分类器的推理。即计算类结点的条件概率,对分类数据进行分类。这两个阶段的时间复杂性均取决于特征值间的依赖程度,甚至能够是
NP 全然问题,因而在实际应用中,往往须要对贝叶斯网络分类器进行简化。依据对特征值间不同关联程度的如果。能够得出各种贝叶斯分类器,Naive
Bayes、TAN、BAN、GBN 就是当中较典型、研究较深入的贝叶斯分类器。
朴素贝叶斯
分类是将一个未知样本分到几个预先已知类的过程。数据分类问题的解决是一个两步过程:第一步,建立一个模型,描写叙述预先的数据集或概念集。通过分析由属性
描写叙述的样本(或实例,对象等)来构造模型。假定每个样本都有一个预先定义的类。由一个被称为类标签的属性确定。为建立模型而被分析的数据元组形成训练数
据集,该步也称作有指导的学习。
在众多的分类模型中。应用最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive
Bayesian
Model,NBC)。
决策树模型通过构造树来解决分类问题。首先利用训练数据集来构造一棵决策树,一旦树建立起来。它就可为未知样本产生一个分类。在分
类问题中使用决策树模型有非常多的长处,决策树便于使用,并且高效。依据决策树能够非常easy地构造出规则,而规则通常易于解释和理解。决策树可非常好地扩展到大
型数据库中,同一时候它的大小独立于数据库的大小;决策树模型的另外一大长处就是能够对有很多属性的数据集构造决策树。决策树模型也有一些缺点,比方处理缺失
数据时的困难。过度拟合问题的出现。以及忽略数据集中属性之间的相关性等。
和决策树模型相比,朴素贝叶斯模型发源于古典数学理论。有着坚实的数学基础,以
及稳定的分类效率。同一时候。NBC模型所需预计的參数非常少,对缺失数据不太敏感,算法也比較简单。
理论上,NBC模型与其它分类方法相比具有最小的误差率。
可是实际上并不是总是如此,这是由于NBC模型如果属性之间相互独立,这个如果在实际应用中往往是不成立的。这给NBC模型的正确分类带来了一定影响。在属
性个数比較多或者属性之间相关性较大时。NBC模型的分类效率比不上决策树模型。而在属性相关性较小时。NBC模型的性能最为良好。
朴素贝叶斯模型:
----
Vmap=arg max P( Vj | a1,a2...an)
Vj属于V集合
当中Vmap是给定一个example,得到的最可能的目标值.
当中a1...an是这个example里面的属性.
这里面,Vmap目标值,就是后面计算得出的概率最大的一个.所以用max 来表示
----
贝叶斯公式应用到 P( Vj | a1,a2...an)中.
可得到 Vmap= arg max P(a1,a2...an | Vj ) P( Vj ) / P (a1,a2...an)
又由于朴素贝叶斯分类器默认a1...an他们互相独立的.
所以P(a1,a2...an)对于结果没实用处. [由于全部的概率都要除同一个东西之后再比較大小,最后结果也似乎影响不大]
可得到Vmap= arg max P(a1,a2...an | Vj ) P( Vj )
然后
"朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。换言之。该假定说明给定实力的目标值情况下。观察到联合的a1,a2...an的概率正好是对每一个单独属性的概率乘积: P(a1,a2...an | Vj ) = Π i P( ai| Vj )
....
朴素贝叶斯分类器:Vnb =arg max P( Vj ) Π i P ( ai | Vj )
"
Vnb = arg max P ( Vj )
这里Vj ( yes | no )。样本对应的天气。
十大经典数据挖掘算法(9) 朴素贝叶斯分类器 Naive Bayes的更多相关文章
- 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes
贝叶斯分类器 贝叶斯分类器的分类原理是通过某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类.眼下研究较多的贝叶斯分类器主要有四种, ...
- 【十大经典数据挖掘算法】Naïve Bayes
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 朴素贝叶斯(Naïve Bayes) ...
- 【十大经典数据挖掘算法】PageRank
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 我特地把PageRank作为[十大经 ...
- 【十大经典数据挖掘算法】EM
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 极大似然 极大似然(Maxim ...
- 【十大经典数据挖掘算法】AdaBoost
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 集成学习 集成学习(ensem ...
- 【十大经典数据挖掘算法】SVM
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART SVM(Support Vector ...
- 【十大经典数据挖掘算法】C4.5
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 决策树模型与学习 决策树(de ...
- 【十大经典数据挖掘算法】k-means
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 引言 k-means与kNN虽 ...
- 【十大经典数据挖掘算法】Apriori
[十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART 1. 关联分析 关联分析是一类非常有 ...
随机推荐
- Chrome App远程控制
現在google app連上chrome就能遠控了出了幾年了, 能用觸控控制mouse https://chrome.google.com/webstore/detail/chrome-remote- ...
- Spring中继承配置的注入方法
(1)两个java类.一个父类一个字类 package com.lc.inherit; /* * 这里是父类 */ public class Student { protected String na ...
- VS快捷键教程
删除或剪切一行(Ctrl + X) 不须要选择不论什么文本, 用来剪切一行, 最经常使用来删除一行. 删除一行也能用 Shift+Delete 格式化整个文档(Ctrl + K, Ctrl + D) ...
- VLC笔记 它 立志
不过,别忘了找工作的时候毕业,我说:"至少不会操心你会饿死了". 直到刚刚我才认为我妈有点过于乐观了. 今天下午,在做vlc如今播放器部分,一堆代码看的我头大. 正在此时,boss ...
- MapReduce 异常 LongWritable cannot be cast to Text
有一个txt文件,内容格公式是这样的: 深圳订做T恤 5729944 深圳厂家t恤批发 5729945 深圳定做文化衫 5729944 文化衫厂家 5729944 订做文化衫 5729944 深圳t恤 ...
- Hadoop里的Partitioner
人们对于Mapreduce程序刚開始时都觉得仅仅须要一个reduce就够了. 毕竟,在你处理数据之前一个reducer已经把数据都分好类了,有谁不喜欢分好类的数据呢. 可是这样我们就忽略了并行计算的优 ...
- 【Unity Shaders】使用CgInclude让你的Shader模块化——Unity内置的CgInclude文件
本系列主要參考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同一时候会加上一点个人理解或拓展. 这里是本书全部的插图. 这里是本书所需的代码 ...
- ecshop中getAll ,getOne ,getRow的区别
ecshop的数据库抽象层其实就是在模仿adodb $GLOBALS['db']->getAll($sql);//以二维关联数组返回所有数据 $GLOBALS['db']->getOne( ...
- Broadcast Receiver注意事项
静态登记 <receiver android:name=".MyReceiver" android:enabled="true"> <inte ...
- 《Javascript高级程序设计》读书笔记之bind函数详解
为什么需要bind var name = "The Window"; var object = { name: "My Object", getNameFunc ...