快速入门Python机器学习(12)

简介: 快速入门Python机器学习(12)

7.5 多项式贝叶斯(MultinomialNB)


7.5.1 属性与方法



class sklearn.naive_bayes.MultinomialNB(*, alpha=1.0, fit_prior=True, class_prior=None)


属性

属性

解释

class_count_

ndarray of shape (n_classes,)拟合期间遇到的每个类的样本数。当提供时,该值由样本重量加权。

class_log_prior_

ndarray of shape (n_classes, )平滑的经验对数概率为每一类。

classes_

ndarray of shape (n_classes,)分类器已知的类标签。

coef_

ndarray of shape (n_classes, n_features)镜像的特点是把多项式解释为线性模型。

feature_count_

ndarray of shape (n_classes, n_features)拟合期间每个(类、特征)遇到的样本数。

feature_log_prob_

ndarray of shape (n_classes, n_features)当提供时,该值由样本重量加权。给定一类特征的经验对数概率Px|i|y)。

intercept_

ndarray of shape (n_classes,)镜像类logprior,用于将多项式nb解释为线性模型。

n_features_

n_features_int每个样本的特征数


方法

fit(X, y[, sample_weight])

根据Xy拟合多项式朴素贝叶斯

get_params([deep])

获取此估计器的参数。

partial_fit(X, y[, classes, sample_weight])

对一批样品进行增量拟合。

predict(X)

对测试向量X的数组执行分类。

predict_log_proba(X)

测试向量X的返回对数概率估计。

predict_proba(X)

测试向量X的返回概率估计。

score(X, y[, sample_weight])

返回给定测试数据和标签的平均精度。

set_params(**params)

设置此估计器的参数。


7.5.2多项式贝叶斯拟合make_blobs数据

def multinomialNB_for_make_blobs():
       myutil = util()
       X,y = make_blobs(n_samples=500,random_state=8,centers=8)
       X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
       scaler = MinMaxScaler()
       scaler.fit(X_train)
       X_train = scaler.transform(X_train)
       X_test = scaler.transform(X_test)
       nb = MultinomialNB()
       nb.fit(X_train,y_train)
       title = "多项式贝叶斯 make_blobs"
       myutil.draw_scatter(X,y,nb,title)
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(MultinomialNB(),X,y,title)
       myutil.show_pic(title)


输出

多项式贝叶斯 make_blobs:
13.33%
多项式贝叶斯 make_blobs:
9.60%


由此可见,多项式贝叶斯拟合make_blobs数据是非常差的。

 image.png

image.png


7.5.3 多项式贝叶斯拟合鸢尾花数据

def multinomialNB_for_iris():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_iris().data,datasets.load_iris().target
       X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
       scaler = MinMaxScaler()
       scaler.fit(X_train)
       X_train = scaler.transform(X_train)
       X_test = scaler.transform(X_test)
       nb = MultinomialNB()
       nb.fit(X_train,y_train)
       title = "多项式贝叶斯 鸢尾花"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(MultinomialNB(),X,y,title)
       myutil.show_pic(title)


输出

多项式贝叶斯 鸢尾花:
66.07%
多项式贝叶斯 鸢尾花:
65.79%


多项式贝叶斯拟合鸢尾花数据刚刚及格,不是很好。

image.png


7.5.4多项式贝叶斯拟合红酒数据

def multinomialNB_for_wine():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_wine().data,datasets.load_wine().target
       X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
       scaler = MinMaxScaler()
       scaler.fit(X_train)
       X_train = scaler.transform(X_train)
       X_test = scaler.transform(X_test)
       nb = MultinomialNB()
       nb.fit(X_train,y_train)
       title = "多项式贝叶斯 红酒"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(MultinomialNB(),X,y,title)
       myutil.show_pic(title)


输出

多项式贝叶斯 红酒:
96.24%
多项式贝叶斯 红酒:
91.11%


多项式贝叶斯拟合红酒数据刚还是不错的。

image.png


7.5.5多项式贝叶斯拟合乳腺癌数据

def multinomialNB_for_breast_cancer():
       warnings.filterwarnings("ignore")
       myutil = util()
       X,y = datasets.load_breast_cancer().data,datasets.load_breast_cancer().target
       X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
       scaler = MinMaxScaler()
       scaler.fit(X_train)
       X_train = scaler.transform(X_train)
       X_test = scaler.transform(X_test)
       nb = MultinomialNB()
       nb.fit(X_train,y_train)
       title = "多项式贝叶斯 乳腺癌"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(MultinomialNB(),X,y,title)
       myutil.show_pic(title)


输出

多项式贝叶斯 乳腺癌:
84.27%
多项式贝叶斯 乳腺癌:
81.12%


多项式贝叶斯拟合乳腺癌数据还可以。


7.6 总结

7.6.1三个贝叶斯之间进行比较


算法

鸢尾花

红酒

乳腺癌

贝努利贝叶斯

33.04%/34.21%

41.35%/35.56%

63.85%/59.44%

高斯贝叶斯

98.21%/89.47%

99.25%/97.78%

94.37%/93.71%

多项式贝叶斯

66.07%/65.79%

96.24%/91.11%

84.27%/81.12%


看来,对三组数据高斯贝叶斯算法在三个数据中最好,我们让他与以前学习过的分类算法做个比较。


7.6.2与其他分类算法进行比较


算法

鸢尾花

红酒

乳腺癌

高斯贝叶斯

98.21%/89.47%

99.25%/97.78%

94.37%/93.71%

逻辑回归

96.67%/100.00%

100.00%/94.44%

94.95%/97.37%

K邻近分类算法

97.50%/96.67%

77.46%/72.22%

94.07%/95.61%


  • 对于鸢尾花数据,三个算法差不多;
  • 对于红酒数据,逻辑回归最好,K邻近分类算法最差;
  • 对于乳腺癌数据,三个算法差不多。
目录
相关文章
|
5天前
|
机器学习/深度学习 数据采集 算法
Python机器学习:Scikit-learn库的高效使用技巧
【10月更文挑战第28天】Scikit-learn 是 Python 中最受欢迎的机器学习库之一,以其简洁的 API、丰富的算法和良好的文档支持而受到开发者喜爱。本文介绍了 Scikit-learn 的高效使用技巧,包括数据预处理(如使用 Pipeline 和 ColumnTransformer)、模型选择与评估(如交叉验证和 GridSearchCV)以及模型持久化(如使用 joblib)。通过这些技巧,你可以在机器学习项目中事半功倍。
16 3
|
10天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
机器学习基础:使用Python和Scikit-learn入门
20 1
|
16天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
21天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
16 1
|
22天前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
18 2
|
28天前
|
机器学习/深度学习 人工智能 自然语言处理
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
阿里云人工智能平台 PAI 团队发表的图像编辑算法论文在 MM2024 上正式亮相发表。ACM MM(ACM国际多媒体会议)是国际多媒体领域的顶级会议,旨在为研究人员、工程师和行业专家提供一个交流平台,以展示在多媒体领域的最新研究成果、技术进展和应用案例。其主题涵盖了图像处理、视频分析、音频处理、社交媒体和多媒体系统等广泛领域。此次入选标志着阿里云人工智能平台 PAI 在图像编辑算法方面的研究获得了学术界的充分认可。
【MM2024】阿里云 PAI 团队图像编辑算法论文入选 MM2024
|
24天前
|
机器学习/深度学习 人工智能 算法
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
玉米病害识别系统,本系统使用Python作为主要开发语言,通过收集了8种常见的玉米叶部病害图片数据集('矮花叶病', '健康', '灰斑病一般', '灰斑病严重', '锈病一般', '锈病严重', '叶斑病一般', '叶斑病严重'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。再使用Django搭建Web网页操作平台,实现用户上传一张玉米病害图片识别其名称。
49 0
【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练
|
1月前
|
机器学习/深度学习 算法 决策智能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
【机器学习】揭秘深度学习优化算法:加速训练与提升性能
|
4天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的决策树算法
【10月更文挑战第29天】本文将深入浅出地介绍决策树算法,一种在机器学习中广泛使用的分类和回归方法。我们将从基础概念出发,逐步深入到算法的实际应用,最后通过一个代码示例来直观展示如何利用决策树解决实际问题。无论你是机器学习的初学者还是希望深化理解的开发者,这篇文章都将为你提供有价值的见解和指导。
|
28天前
|
机器学习/深度学习 算法 Python
探索机器学习中的决策树算法:从理论到实践
【10月更文挑战第5天】本文旨在通过浅显易懂的语言,带领读者了解并实现一个基础的决策树模型。我们将从决策树的基本概念出发,逐步深入其构建过程,包括特征选择、树的生成与剪枝等关键技术点,并以一个简单的例子演示如何用Python代码实现一个决策树分类器。文章不仅注重理论阐述,更侧重于实际操作,以期帮助初学者快速入门并在真实数据上应用这一算法。