朴素贝叶斯算法
一、从生活角度来理解朴素贝叶斯算法
朴素贝叶斯算法是统计学味道最浓的一款算法,也是最能体现我们日常生活经验的算法;
与我们读万卷书行万里路形成我们自己的生活经验类似,朴素贝叶斯算法也是基于收集的历史数据分析得到相关事情发生的原因,从而形成解决问题的模型;
与我们面对未知的未来类似,基于自己的生活经验计算各种可能的情况,最终选择一个最大可能的方向进行努力 ,朴素贝叶斯算法也是基于学习的模型计算给定的输入属于各个分类的概率,并选择概率最大的分类作为结果;
从我们出生开始,就在不断的进行学习,通过上学、不同的人生体验、阅读不同类型的书籍来学习;我们把人生的前二十多年全力投入到学习之中,就是要尽最大的可能通过各种方式来丰富自己面对未来不确定性的经验;只不过由于各种客观或者主观条件的限制,我们的内化的经验可能会误差比较大,同时可能也不具有统计性规律;
二、从数学的角度来理解朴素贝叶斯算法
朴素贝叶斯法实现简单,学习与预测的效率都很高,是一种常用的方法;该算法是基于贝叶斯定理和特征条件独立假设的分类算法;该算法首先通过分析训练数据得到先验概率、似然度,从而得到输入输出的联合概率分布;最后基于此训练模型,利用贝叶斯定理计算得到输入的后验概率最大的分类;
联合概率P(X,Y)是通过计算先验概率和条件概率得到的;
朴素贝叶斯法通过训练数据集学习得到先验概率
P(Y=ck),k=1,2,3,…,K
条件概率
P(X=x|Y=ck)=P(X(1)=x(1),…,X(n)=x(n)|Y=ck),k=1,2,3,…,K
由于算法假设特征条件独立性假设,所以条件概率转化为
P(X=x|Y=ck)=P(X(1)=x(1),…,X(n)=x(n)|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck)
当预测分类的时候,对给定的输入x,通过学习到的模型计算后验概率分布,k|X=x),将后验概率最大的类作为x的类输出。后验概率计算根据贝叶斯定理进行:
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)P(X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)
由于分母P(X = x)是对整个训练样本进行计算的,所以这里类似一个常数,故可以忽略;同时结合上边特征独立性得到的条件概率,可以得到
y=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)
三、朴素贝叶斯算法分类示例
在Scikit-Learn库中,基于贝叶斯这一大类的算法模型的相关类库都在sklearn.naive_bayes包之中;
from sklearn.datasets import load_iris
from sklearn.naive_bayes import MultinomialNB
X, y = load_iris(return_X_y= True)
clf = MultinomialNB().fit(X, y)
r = clf.predict(X)
print®
s = clf.score(X, y)
print(s)
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 1
1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2]
0.9533333333333334
相关文章
- 利用h5,chart.js监测手机三轴加速度,用以研究计步算法等
- 朴素贝叶斯文本分类算法学习
- 朴素贝叶斯算法的python实现方法
- 朴素贝叶斯算法的python实现方法
- 大数据等最核心的关键技术:32个算法
- 一步步教你轻松学朴素贝叶斯模型算法Sklearn深度篇3
- 一步步教你轻松学朴素贝叶斯模型算法理论篇1
- 朴素贝叶斯算法的python实现方法
- 朴素贝叶斯算法的python实现方法
- Atitit 机器学习算法分类 目录 1. 传统的机器学习算法 vs 深度学习1 1.1. 传统的机器学习算法包括决策树、聚类、贝叶斯分类、支持向量机、EM、Adaboost等等。2 2. 监
- Atitti 文本分类 以及 垃圾邮件 判断原理 以及贝叶斯算法的应用解决方案
- ML之NB:利用朴素贝叶斯NB算法(TfidfVectorizer+不去除停用词)对20类新闻文本数据集进行分类预测、评估
- NLP之TEA之NB/LoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
- Python实现贝叶斯优化器(Bayes_opt)优化支持向量机分类模型(SVC算法)项目实战
- Python实现贝叶斯优化器(Bayes_opt)优化Catboost分类模型(CatBoostClassifier算法)项目实战
- Python实现贝叶斯优化器(Bayes_opt)优化卷积神经网络分类模型(CNN分类算法)项目实战
- 数据挖掘十大经典算法(9) 朴素贝叶斯分类器 Naive Bayes
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
- 从决策树学习谈到贝叶斯分类算法、EM、HMM
- 大数据分析案例-基于朴素贝叶斯算法构建电信客户流失分析预警模型
- 数据结构和算法 十五、线性算法/二分查找/插值查找