02-28 scikit-learn库之线朴素贝叶斯
更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html
scikit-learn库之朴素贝叶斯
在scikit-learn库中朴素贝叶斯由于数据分布的不同,主要分为以下三种BernoulliNB、GaussianNB和MultinomialNB,先验分布分别对应伯努利分布、高斯分布和多项式分布。
接下来将会讨论这三者的区别,由于MUltinomiallNB用的比较多,因此会细讲该模型。由于是从官方文档翻译而来,翻译会略有偏颇,有兴趣的也可以去scikit-learn官方文档查看https://scikit-learn.org/stable/modules/classes.html#module-sklearn.naive_bayes
一、MultinomialNB
1.1 使用场景
Bernoulli分布一般应用于样本特征是二元离散值,或者是很稀疏的多元离散值的场景。
1.2 代码
import numpy as np
X = np.random.randint(5, size=(6, 100))
y = np.array([1, 2, 3, 4, 5, 6])
from sklearn.naive_bayes import MultinomialNB
clf = MultinomialNB()
clf.fit(X, y)
MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)
print(clf.predict(X[2:3]))
[3]
1.3 参数详解
- alpha:超参数,float类型。建议使用默认值,如果真的需要调优时也尽量选择稍大于或稍小于1的数。默认为1。
- fit_prior:先验概率选择,bool类型。fit_prior=True,所有样本类别输出的先验概率是不同的;fit_prior=False,所有样本类别输出的先验概率是相同的。默认为True。
- class_prior:先验概率,array-like类型。只有fit_prior=True时才选择该参数,该参数可以自己填写各个类别的先验概率,也可以不填写让模型自动计算各个类别的先验概率。默认为None。
1.4 属性
- class_log_prior_:每个类别对应的对数概率。
- intercept_:将多项式朴素贝叶斯模型作为线性模型时的class_log_prior_镜像的截距。
- feature_log_prob_:给定样本某个特征的的概率,如\(p(x_i|y)\)。
- coef_:将多项式朴素贝叶斯模型作为线性模型时的feature_log_prob_镜像的系数。
- class_count_:每个类在拟合过程中遇到的样本数量,这个值由fit()中的sample_weigth加权得到。
- feature_count_:每个特征在拟合过程中遇到的样本数量,这个值由fit()中的sample_weigth加权得到。
1.5 方法
- fit(X,y):把数据放入模型中训练模型。
- get_params([deep]):返回模型的参数,可以用于Pipeline中。
- partial_fit(X, y[, classes, sample_weight]):把数据集切割成多份进行增量训练,尤其适合大数据集,其中sample_weight可以控制训练集中样本的权重。
- predict(X):预测样本X的分类类别。
- predict_lot_proba(X):返回样本X在各个类别上对应的对数概率。
- predict_proba(X):返回样本X在各个类别上对应的概率。
- score(X,y[,sample_weight]):基于报告决定系数\(R^2\)评估模型。
- set_prams(**params):创建模型参数。
二、GaussianNB
GaussianNB模型类似于MultinomiaNB模型,两者区别之处在于,前者更适合解决特征值为连续值,而后者更适合解决特征值为多元离散值的情况。
三、Bernoulli
Bernoulli模型类似于MultinomiaNB模型,两者区别之处在于,前者更适合解决特征值为二元离散值或稀疏的多元离散值,而后者更适合解决特征值为多元离散值的情况,并且Bernoulli模型多了一个参数binarize,该参数不设置则默认特征已经被二值化处理,反之模型将自动二值化处理特征。
02-28 scikit-learn库之线朴素贝叶斯的更多相关文章
- 朴素贝叶斯(Naive Bayesian)
简介 Naive Bayesian算法 也叫朴素贝叶斯算法(或者称为傻瓜式贝叶斯分类) 朴素(傻瓜):特征条件独立假设 贝叶斯:基于贝叶斯定理 这个算法确实十分朴素(傻瓜),属于监督学习,它是一个常用 ...
- 朴素贝叶斯算法下的情感分析——C#编程实现
这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Language Pr ...
- 朴素贝叶斯方法(Naive Bayes Method)
朴素贝叶斯是一种很简单的分类方法,之所以称之为朴素,是因为它有着非常强的前提条件-其所有特征都是相互独立的,是一种典型的生成学习算法.所谓生成学习算法,是指由训练数据学习联合概率分布P(X,Y ...
- C#编程实现朴素贝叶斯算法下的情感分析
C#编程实现 这篇文章做了什么 朴素贝叶斯算法是机器学习中非常重要的分类算法,用途十分广泛,如垃圾邮件处理等.而情感分析(Sentiment Analysis)是自然语言处理(Natural Lang ...
- 朴素贝叶斯算法 & 应用实例
转载请注明出处:http://www.cnblogs.com/marc01in/p/4775440.html 引 和师弟师妹聊天时经常提及,若有志于从事数据挖掘.机器学习方面的工作,在大学阶段就要把基 ...
- R语言︱贝叶斯网络语言实现及与朴素贝叶斯区别(笔记)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 一.贝叶斯网络与朴素贝叶斯的区别 朴素贝叶斯的 ...
- NLP系列(4)_朴素贝叶斯实战与进阶
作者: 寒小阳 && 龙心尘 时间:2016年2月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50629608 htt ...
- NLP系列(3)_用朴素贝叶斯进行文本分类(下)
作者: 龙心尘 && 寒小阳 时间:2016年2月. 出处: http://blog.csdn.net/longxinchen_ml/article/details/50629110 ...
- 第十三次作业——回归模型与房价预测&第十一次作业——sklearn中朴素贝叶斯模型及其应用&第七次作业——numpy统计分布显示
第十三次作业——回归模型与房价预测 1. 导入boston房价数据集 2. 一元线性回归模型,建立一个变量与房价之间的预测模型,并图形化显示. 3. 多元线性回归模型,建立13个变量与房价之间的预测模 ...
随机推荐
- Allegro PCB导入DXF文件详解
一:导入方法 1.确认Allegro PCB的单位精度设置和DXF文件保持一致(一般情况下DXF文件用mm,Allegro文件用mil). 2. 在Allegro中点击File→Import→DXF… ...
- python科学计算与可视化视频教程
目录: 下载链接:https://www.yinxiangit.com/616.html 第一单元TVTK入门-1.mp4第一单元TVTK入门-2.mp4第一单元TVTK入门-3.mp4 第一单元TV ...
- Mysql高手系列 - 第9篇:详解分组查询,mysql分组有大坑!
这是Mysql系列第9篇. 环境:mysql5.7.25,cmd命令中进行演示. 本篇内容 分组查询语法 聚合函数 单字段分组 多字段分组 分组前筛选数据 分组后筛选数据 where和having的区 ...
- 一次搞懂建模语言UML
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到 ...
- zookeeper学习(一)_简介
上篇文章 我们已经安装上了zookeeper,也简单的体验了一把,但是如果让你给别人介绍下zookeeper,可能也是说不出来.本篇文章就参考了网上各位优秀博主的文章,整理出自己更能理解的内容 优秀博 ...
- selenium IDE的断言与验证
断言 验证应用程序的状态是否同所期望的一致.常见的断言包括验证页面内容,如标题是否为X或当前位置是否正确等等 断言被用于4种模式+5种手段: Assert Assert断言失败时,该测试将终止 ver ...
- 中国知网(CNKI)验证码识别
中国知网(CNKI)是最重要的中文学术资源数据库,收录绝大多数中文学术刊物.我们可以检索论文,也可以导出检索结果前6000条论文的题录数据. 在CNKI检索结果翻页10次以上,用户需要手动输入验证码才 ...
- 01 (H5*) Vue第一天
目录 1:什么是Vue.js 2:MVC和MVVM. 3:为什么要学习前段框架 4:框架和库的区别 5:怎么使用Vue. 6:常见的Vue指令 7: 五大事件修饰符 8:在vue中使用class样式 ...
- centos7搭建squid
squid在做爬虫代理时候,我们只需要做到一个squid代理,然后对其他代理做转发轮询,如何使用squid做代理并自动转发轮询? 加上这行代码: cache_peer 120.xx.xx.32 par ...
- NestedInteger Java
''' class NestedInteger { private List list; private Integer integer; public NestedInteger(List<N ...