全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python中如何使用朴素贝叶斯算法

这里再重复一下标题为什么是"使用"而不是"实现":

首先,专业人士提供的算法比我们自己写的算法无论是效率还是正确率上都要高。

其次,对于数学不好的人来说,为了实现算法而去研究一堆公式是很痛苦的事情。

再次,除非他人提供的算法满足不了自己的需求,否则没必要"重复造轮子"。

下面言归正传,不了解贝叶斯算法的可以去查一下相关资料,这里只是简单介绍一下:

1.贝叶斯公式:

P(A|B)=P(AB)/P(B)

2.贝叶斯推断:

P(A|B)=P(A)×P(B|A)/P(B)

用文字表述:

后验概率=先验概率×相似度/标准化常量

而贝叶斯算法要解决的问题就是如何求出相似度,即:P(B|A)的值

3. 在scikit-learn包中提供了三种常用的朴素贝叶斯算法,下面依次说明:

1)高斯朴素贝叶斯:假设属性/特征是服从正态分布的(如下图),主要应用于数值型特征。

 

使用scikit-learn包中自带的数据,代码及说明如下:

>>>from sklearn import datasets ##导入包中的数据
>>> iris=datasets.load_iris() ##加载数据
>>> iris.feature_names  ##显示特征名字
 ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
>>> iris.data   ##显示数据
 array([[ 5.1, 3.5, 1.4, 0.2],[ 4.9, 3. , 1.4, 0.2],[ 4.7, 3.2, 1.3, 0.2]............
>>> iris.data.size  ##数据大小 ---600个
>>> iris.target_names  ##显示分类的名字 
 array(['setosa', 'versicolor', 'virginica'], dtype='<U10')
>>> from sklearn.naive_bayes import GaussianNB ##导入高斯朴素贝叶斯算法
>>> clf = GaussianNB()    ##给算法赋一个变量,主要是为了方便使用
>>> clf.fit(iris.data, iris.target)  ##开始分类。对于量特别大的样本,可以使用函数partial_fit分类,避免一次加载过多数据到内存

>>> clf.predict(iris.data[0].reshape(1,-1)) ##验证分类。标红部分特别说明:因为predict的参数是数组,data[0]是列表,所以需要转换一下
array([0])
>>> data=np.array([6,4,6,2])   ##验证分类
>>> clf.predict(data.reshape(1,-1))
array([2])

这里涉及到一个问题:如何判断数据符合正态分布? R语言里面有相关函数判断,或者直接绘图也可以看出来,但是都是P(x,y)这种可以在坐标系里面直接

画出来的情况,而例子中的数据如何确定,目前还没有搞明白,这部分后续会补上。

2)多项式分布朴素贝叶斯:常用于文本分类,特征是单词,值是单词出现的次数。

##示例来在官方文档,详细说明见第一个例子
>>> import numpy as np
>>> X = np.random.randint(5, size=(6, 100)) ##返回随机整数值:范围[0,5) 大小6*100 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)伯努力朴素贝叶斯:每个特征都是是布尔型,得出的结果是0或1,即出现没出现

##示例来在官方文档,详细说明见第一个例子
>>> import numpy as np
>>> X = np.random.randint(2, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB(alpha=1.0, binarize=0.0, class_prior=None, fit_prior=True) 
>>> print(clf.predict(X[2]))
[3]

补充说明:此文还不完善,示例一中也有部分说明需要写,最近事情较多,后续会逐渐完善。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# 朴素贝叶斯算法  # python  # 算法  # python实现朴素贝叶斯算法  # Python实现的朴素贝叶斯算法经典示例【测试可用】  # 朴素贝叶斯算法的python实现方法  # Python机器学习算法库scikit-learn学习之决策树实现方法详解  # Python机器学习之scikit-learn库中KNN算法的封装与使用方法  # python机器学习之KNN分类算法  # python 实现朴素贝叶斯算法的示例  # 都是  # 正态分布  # 第一个  # 包中  # 详细说明  # 求出  # 自己的  # 的人  # 高斯  # 加载  # 文档  # 还没有  # 也有  # 都要  # 还不  # 这部  # 而去  # 言归正传  # 布尔  # 三种 


相关文章: 如何用腾讯建站主机快速创建免费网站?  网站制作需要会哪些技术,建立一个网站要花费多少?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  制作网站的模板软件,网站怎么建设?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  免费网站制作appp,免费制作app哪个平台好?  建站之星图片链接生成指南:自助建站与智能设计教程  高端智能建站公司优选:品牌定制与SEO优化一站式服务  家具网站制作软件,家具厂怎么跑业务?  建站之星代理商如何保障技术支持与售后服务?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  中山网站推广排名,中山信息港登录入口?  h5在线制作网站电脑版下载,h5网页制作软件?  TestNG的testng.xml配置文件怎么写  历史网站制作软件,华为如何找回被删除的网站?  临沂网站制作公司有哪些,临沂第四中学官网?  建站上传速度慢?如何优化加速网站加载效率?  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何在阿里云香港服务器快速搭建网站?  无锡营销型网站制作公司,无锡网选车牌流程?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  广州营销型建站服务商推荐:技术优势与SEO优化解析  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  Android自定义控件实现温度旋转按钮效果  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  公司网站设计制作厂家,怎么创建自己的一个网站?  小程序网站制作需要准备什么资料,如何制作小程序?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?    定制建站策划方案_专业建站与网站建设方案一站式指南  如何在局域网内绑定自建网站域名?  文字头像制作网站推荐软件,醒图能自动配文字吗?  高端企业智能建站程序:SEO优化与响应式模板定制开发  学校建站服务器如何选型才能满足性能需求?  如何配置WinSCP新建站点的密钥验证步骤?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星云端配置指南:模板选择与SEO优化一键生成  ,如何利用word制作宣传手册?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  如何在阿里云虚拟服务器快速搭建网站?  如何通过西部建站助手安装IIS服务器?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  如何正确下载安装西数主机建站助手?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。