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

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

朴素贝叶斯可以分为贝努利贝叶斯(BernoulliNB)、高斯贝叶斯(GaussianNB)和多项式贝叶斯(MultinomailNB)。贝努利贝叶斯(BernoulliNB)又可以分为二项分布和0-1分布。我们首先来介绍贝努利贝叶斯(BernoulliNB)。


7.3 贝努利贝叶斯(BernoulliNB)


7.3.1 属性与方法


class sklearn.naive_bayes.BernoulliNB(*, alpha=1.0, binarize=0.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,用于将BernoulliNB解释为线性模型。

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.3.2用贝努利贝叶斯make_blobs

def bernoulliNB_for_make_blobs():
       myutil = util()
       X,y = make_blobs(n_samples=500,centers=8, random_state=8)
       X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
       nb = BernoulliNB()
       nb.fit(X,y)
       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(BernoulliNB(),X,y,title)
       myutil.show_pic(title)


输出

贝努利贝叶斯 make_blobs:
38.13%
贝努利贝叶斯 make_blobs:
37.60%


用贝努利贝叶斯make_blobs效果不是很好。

image.png

image.png


7.3.3用贝努利贝叶斯分析鸢尾花数据

def bernoulliNB_for_iris():
       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)
       nb = BernoulliNB()
       nb.fit(X,y)
       title = "贝努利贝叶斯 鸢尾花"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(BernoulliNB(),X,y,title)
       myutil.show_pic(title)


输出

贝努利贝叶斯 鸢尾花:
33.04%
贝努利贝叶斯 鸢尾花:
34.21%


用贝努利贝叶斯分析鸢尾花数据效果不是很好

image.png


7.3.4用贝努利贝叶斯分析红酒数据

def bernoulliNB_for_wine():
       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)
       nb = BernoulliNB()
       nb.fit(X,y)
       title = "贝努利贝叶斯 红酒"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(BernoulliNB(),X,y,title)
       myutil.show_pic(title)


输出

贝努利贝叶斯 红酒:
41.35%
贝努利贝叶斯 红酒:
35.56%


用贝努利贝叶斯分析红酒数据效果也不是很好

image.png


7.3.5用贝努利贝叶斯分析乳腺癌数据

def bernoulliNB_for_breast_cancer():
       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)
       nb = BernoulliNB()
       nb.fit(X,y)
       title = "贝努利贝叶斯 乳腺癌"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(BernoulliNB(),X,y,title)
       myutil.show_pic(title)


输出

贝努利贝叶斯 乳腺癌:
63.85%
贝努利贝叶斯 乳腺癌:
59.44%


用贝努利贝叶斯分析乳腺癌数据效果仍旧不是很好。


7.4 高斯贝叶斯(GaussianNB)


7.4.1 属性与方法


classsklearn.naive_bayes.GaussianNB(*, priors=None, var_smoothing=1e-09)


属性

属性

解释

class_count_

ndarray of shape (n_classes,)每类观察到的训练样本数。

class_prior_

ndarray of shape (n_classes,)每一类的概率。

classes_

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

epsilon_

float方差的绝对加和值

sigma_

ndarray of shape (n_classes, n_features)每类特征的方差

theta_

ndarray of shape (n_classes, n_features)每类特征的平均值


方法

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.4.2用高斯贝叶斯make_blobs

def bernoulliNB_for_make_blobs():
       myutil = util()
       X,y = make_blobs(n_samples=500,centers=8, random_state=8)
       X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=8)
       nb = GaussianNB ()
       nb.fit(X,y)
       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(BernoulliNB(),X,y,title)
       myutil.show_pic(title)


输出

高斯贝叶斯 make_blobs:
85.60%
高斯贝叶斯 make_blobs:
92.00%


用高斯贝叶斯make_blobs效果还是不错的。

image.png

image.png


7.3.3用高斯贝叶斯分析鸢尾花数据

def bernoulliNB_for_iris():
       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)
       nb = GaussianNB()
       nb.fit(X,y)
       title = "高斯贝叶斯 鸢尾花"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(GaussianNB(),X,y,title)
       myutil.show_pic(title)


输出

高斯贝叶斯 鸢尾花:
98.21%
高斯贝叶斯 鸢尾花:
89.47%


用高斯贝叶斯分析鸢尾花数据效果仍旧很好。

image.png


7.3.4用高斯贝叶斯分析红酒数据

def bernoulliNB_for_wine():
       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)
       nb = GaussianNB()
       nb.fit(X,y)
       title = "高斯贝叶斯 红酒"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(GaussianNB(),X,y,title)
       myutil.show_pic(title)


输出

高斯贝叶斯 红酒:
99.25%
高斯贝叶斯 红酒:
97.78%


用高斯贝叶斯分析红酒数据效果仍旧很好

image.png


7.3.5用高斯贝叶斯分析乳腺癌数据

def bernoulliNB_for_breast_cancer():
       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)
       nb = GaussianNB()
       nb.fit(X,y)
       title = "高斯贝叶斯 乳腺癌"
       myutil.print_scores(nb,X_train,y_train,X_test,y_test,title)
       myutil.plot_learning_curve(GaussianNB(),X,y,title)
       myutil.show_pic(title)


输出

高斯贝叶斯 乳腺癌:
94.37%
高斯贝叶斯 乳腺癌:
93.71%


用高斯贝叶斯分析乳腺癌数据效果仍旧很好。

目录
相关文章
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
Python数据科学实战:从Pandas到机器学习
Python数据科学实战:从Pandas到机器学习
|
1月前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
85 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
1月前
|
机器学习/深度学习 数据采集 人工智能
探索机器学习:从理论到Python代码实践
【10月更文挑战第36天】本文将深入浅出地介绍机器学习的基本概念、主要算法及其在Python中的实现。我们将通过实际案例,展示如何使用scikit-learn库进行数据预处理、模型选择和参数调优。无论你是初学者还是有一定基础的开发者,都能从中获得启发和实践指导。
47 2
|
1月前
|
机器学习/深度学习 数据可视化 数据处理
掌握Python数据科学基础——从数据处理到机器学习
掌握Python数据科学基础——从数据处理到机器学习
42 0
|
1月前
|
机器学习/深度学习 数据采集 人工智能
机器学习入门:Python与scikit-learn实战
机器学习入门:Python与scikit-learn实战
42 0
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
Python在数据科学中的应用:从数据处理到模型训练
Python在数据科学中的应用:从数据处理到模型训练
|
18天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
16天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
5天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
98 80
|
23天前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
134 59