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个变量与房价之间的预测模 ...
随机推荐
- JS-特效 ~ 03. 楼层跳跃、事件对象event的获取与使用、event的主要内容、screenX、pageX、clientX的区别、放大镜、模拟滚动条
楼层跳跃 100%子盒子会继承父盒子的宽高.父盒子继承body宽高.Body继承html的宽高. 盒子属性:auto:适应盒子自身的宽度或者高度.(对自己负责) 盒子属性:100%:适应盒子父盒子的宽 ...
- 【Offer】[34] 【二叉树中和为某一值的路径】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径.  ...
- centos 6.5 搭建DHCP实验
搭建DHCP服务 安装DHCP服务 挂载光盘:mount /dev/cdrom /qswz 从光盘的安装包中安装DHCP rpm -ivh dhcp-4.1.1-38.P1.el6.centos.i6 ...
- 通过脚本实现将服务器的Log实时传送到Telegram群组
首先说下需求,IT老大提出的一个需求,实现将php-laravel的应用日志实时传送到telegram的监控群组中,不用登陆服务器就可以实时查看应用的日志. 具体思路是: 先要将日志切割,并实时更新这 ...
- Windows服务器远程桌面不能复制粘贴的解决方法
今天使用windows 2008服务器,实然就不能从本地复制内容和粘贴内容了,从网上找了下原因,最终解决了.一般本地和服务器不能复制粘贴分两种情况: 情况一:复制粘贴功能原本可以用,突然失灵了. 解决 ...
- 剖析nsq消息队列(二) 去中心化代码源码解析
在上一篇帖子剖析nsq消息队列(一) 简介及去中心化实现原理中,我介绍了nsq的两种使用方式,一种是直接连接,还有一种是通过nslookup来实现去中心化的方式使用,并大概说了一下实现原理,没有什么难 ...
- OpenGl读取导入3D模型并且添加鼠标移动旋转显示
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11543828.html 最近实习要用到opengl库就是跟opencv 有点像的那个,然后下了 ...
- Day 6 文件属性与命令执行流程
1. 第一列第一个字符 表示文件类型 rw-r--r-- 权限(下周) 4 这个文件被链接次数 root 文件的拥有者(用户) root 文件的拥有组(用户组 ==>家族) 2018 文 ...
- Java8虚拟机(JVM)内存溢出实战
前言 相信很多JAVA中高级的同学在面试的时候会经常碰到一个面试题 你是如何在工作中对JVM调优和排查定位问题的? 事实上,如果用户量不大的情况下,在你的代码还算正常的情况下,在工作中除非真正碰到与J ...
- [Leetcode] 第357题 计算各个位数不同的数字个数
一.题目描述 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11,22,33,44,55, ...