贝叶斯分类器_python机器学习API介绍10:多项式贝叶斯分类器
MultinomialNB是高斯贝叶斯分类器,它假设特征的条件分布概率满足高斯分布。
其原型为:
class sklearn.naive_bayes.MultinomialNB(alpha=1.0, fit_prior=True, class_prior=None)
参数说明:
alpha:一个浮点数,指定a值;
fit_prior:布尔值,如果为Ture,咋不去学习P(Y=Ck),替代以均匀分布;如果为False,则去学习P(Y=Ck)。
class_prior:一个数组,指定每个分类的先验概率P(y=c1),P(y=c2),...p(y=ck)。如果制定了该参数,则每个分类的先验概率不再从数据集中学得。
属性说明:
class_log_prior:一个数组对象,形式为(n_class,),给出了每个类别调整后的经验概率分布对数值。
feature_log_prob_:一个数组对象,形状为(n_class,n_feature),给出了P(X(j)/y=Ck)的经验概率分布的对数值
feature_count_:一个数组,形式为(n_class,n_feature),训练过程中,每个类每个特征遇到的样本数。
class_count_:一个数组,形状为(n_class,),是每个类别包含的训练样本数量
方法说明:
fit(x, y[,sample_weight):训练模型。
partial_fit(x,y[, classes,sample_weight):` 追加训练模型。该方法主要用于大规模数据集的训练。这个时候可以将大数据集划分成若干个小数据集,然后在这些小数据集上连续调用partial_fit方法来训练模型。
predict(x):用模型进行预测,返回预测值
predict_log_proba(x):返回一个数组,数组的元素依次是x预测为各个类别的概率的对数值。
predict_proba(x):返回一个数值,数组元素依次是x预测为各个类别的概率值。
score(x, y[,sample_weight]):返回测试性能得分(测试分数不超过1,但是可能为负数(当预测效果太差的时候),score值越接近1,说明预测效果越好)。
代码示例说明(代码接上节内容):
def test_MultinomialNB(*data):
x_train, x_test, y_train, y_test = data
cls = naive_bayes.MultinomialNB()
cls.fit(x_train, y_train)
print("MultinomialNB training score set is: {:.3f}".format(cls.score(x_train, y_train)))
print("MultinomialNB test score set is: {:.3f}".format(cls.score(x_test, y_test)))
x_train, x_test, y_train, y_test = load_digits_data()
test_MultinomialNB(x_train, x_test, y_train, y_test)
运行上述代码结果为:
MultinomialNB training score set is: 0.908
MultinomialNB test score set is: 0.906
由上述运行结果可知,对训练集的预测分数为0.908,对测试机的预测结果为0.906,接下来我们看一下调节alpha参数的值,给出函数如下:
def test_MultinomialNB_alpha(*data):
#alpha对预测性能的影响
x_train,x_test,y_train,y_test=data
alphas = np.logspace(-2,5,num=200)
training_scores=[]
testing_scores=[]
for alpha in alphas:
cls = naive_bayes.MultinomialNB(alpha=alpha)
cls.fit(x_train, y_train)
training_scores.append(cls.score(x_train,y_train))
testing_scores.append(cls.score(x_test,y_test))
## 将对应的结果可视化
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(alphas,training_scores,label="traing score")
ax.plot(alphas,testing_scores,label="testing score")
ax.set_xlabel("alphas value")
ax.set_ylabel("score value")
ax.set_ylim(0,1.0)
ax.set_title("MultinomialNB")
ax.set_xscale("log")
plt.show()
x_train, x_test, y_train, y_test = load_digits_data()
test_MultinomialNB_alpha(x_train, x_test, y_train, y_test)
运行后其结果如图:
多项式贝叶斯在不同alpha值时对应的训练和测试分数
这里为了便于观察,我们将x轴设置为对数坐标,由此可以看出,当alpha>100后,随着alpha值的增长,其预测值在下降,这是由多项式贝叶斯本身的函数决定的。
贝叶斯分类器_python机器学习API介绍10:多项式贝叶斯分类器相关推荐
- python朴素贝叶斯分类器实现_用scikit-learn实现朴素贝叶斯分类器
朴素贝叶斯(Naive Bayes Classifier)是一种「天真」的算法(假定所有特征发生概率是独立的),同时也是一种简单有效的常用分类算法.关于它的原理,参见朴素贝叶斯分类器的应用. scik ...
- 吴裕雄 python 机器学习——多项式贝叶斯分类器MultinomialNB模型
import numpy as np import matplotlib.pyplot as pltfrom sklearn import datasets,naive_bayes from skle ...
- sklearn朴素贝叶斯分类器_python机器学习:方法链和朴素贝叶斯分类器
今天我们在学习朴素贝叶斯分类器之前,我们先来总结下前面经常用到的内容,方法链:在scikit-learn中所有模型的fit方法返回的都是self.我们用一行代码初始化模型并拟合,对应代码如下:logr ...
- thinkcmf5调用指定分类的二级_python机器学习API介绍11: 伯努利贝叶斯分类器
BernoulliNB是伯努利贝叶斯分类器,它是假设模型的条件概率分布满足对应的二次项分布,其原型为: class sklearn.naive_bayes.BernoulliNB(alpha=1.0, ...
- 【机器学习算法介绍】朴素贝叶斯
文章目录 1 概述 2 原理 2.1 贝叶斯定理 2.2 属性条件独立假设 2.3 高斯朴素贝叶斯 2.3.1 计算方法 2.3.2 API调用 2.4 Multinomial Naive Bayes ...
- 机器学习与R之朴素贝叶斯分类器
朴素贝叶斯 1联合概率分布 p(x,y)=p(y)P(x|y) 或者p(A交B)=p(A)xp(B) p(A交B)不容易求,假设条件独立拆分成两个事件的乘积 2基本假设条件独立性 3利用贝叶斯定理 ...
- 对pca降维后的手写体数字图片数据分类_python机器学习API介绍13: 数据降维及主成分分析...
数据降维概述:数据降维是机器学习领域中重要的内容,所谓的降维就是采用某种映射方法,将高维空间中的数据点映射到低维的空间中.其本质是学习一个映射函数f: x->y.其中x是原始数据点的表述,目前多 ...
- python图像压缩主成分分析实例_python机器学习API介绍13: 数据降维及主成分分析...
数据降维概述:数据降维是机器学习领域中重要的内容,所谓的降维就是采用某种映射方法,将高维空间中的数据点映射到低维的空间中.其本质是学习一个映射函数f: x->y.其中x是原始数据点的表述,目前多 ...
- 【一起入门MachineLearning】中科院机器学习第3课-朴素贝叶斯分类器
专栏介绍:本栏目为 "2021秋季中国科学院大学周晓飞老师的机器学习" 课程记录,不仅仅是课程笔记噢- 每周上两小节课,每周更新两篇博客,如果感兴趣的话,就和我一起入门Machin ...
最新文章
- poj 1185 NYOJ 85 炮兵阵地(状态压缩dp)
- centos7安装uwsgi报错_如何将CentOS 7升级到CentOS 8
- linux mysql 主从数据库_linux mysql数据库的主从配置
- 【渝粤教育】国家开放大学2018年秋季 0273-22T中国现代文学 参考试题
- signature=1982ab87dc2679ab32a4cc77dcd4ace3,Spin phonon coupling in frustrated magnet CdCr$_2$O$_4$
- android 线性布局
- 一起谈.NET技术,asp.net控件开发基础(17)
- 白话java_白话Java
- 计算机键盘最小化,电脑最小化键盘怎么按
- 三星手机android版本怎么升级,如何在三星Galaxy手机上更新软件
- 29岁程序员,该怎么在写作、沟通、能力方面提升自己?
- 我的冷笑话20100125
- MySQL 不等于的三种表示及区别
- 重磅!我组问卷调查结果公布
- Zabbix监控web基本配置
- 很久未使用计算机会怎样,很久没用,电脑为什么不能启动?
- 微信小程序-view(视图容器)
- 关于使用腾讯云HiFlow场景连接器每天提醒签到打卡
- mssql和mysql注入区别_Mssql手工注入小结
- 手机浏览器能接收彩信,还hold住吗?
热门文章
- Employee Assign Organization unit
- 得到application server上所有的logon user
- 如何设置search parameter的默认operator
- 在BAdI definition PRODUCT_R3_ADAPTER的implementation里获得download type
- One order search dynamic SQL build logic
- 增强现实和3D渲染技术是如何应用在SAP产品里的
- 使用ABAP代码提交SAP CRM Survey调查问卷
- android decorview动画,Android窗口机制(二)Window,PhoneWindow,DecorView,setContentView源码理解...
- 画箱线图_箱线图的N种画法
- 使用 stm32实现锂电充电_实现高负载锂电池的超快速充电需要哪些要求?