快速入门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%


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

目录
相关文章
|
10月前
|
机器学习/深度学习 算法 Python
机器学习特征筛选:向后淘汰法原理与Python实现
向后淘汰法(Backward Elimination)是机器学习中一种重要的特征选择技术,通过系统性地移除对模型贡献较小的特征,以提高模型性能和可解释性。该方法从完整特征集出发,逐步剔除不重要的特征,最终保留最具影响力的变量子集。其优势包括提升模型简洁性和性能,减少过拟合,降低计算复杂度。然而,该方法在高维特征空间中计算成本较高,且可能陷入局部最优解。适用于线性回归、逻辑回归等统计学习模型。
402 7
|
8月前
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
1105 12
Scikit-learn:Python机器学习的瑞士军刀
|
7月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
337 1
|
11月前
|
机器学习/深度学习 数据可视化 算法
Python与机器学习:使用Scikit-learn进行数据建模
本文介绍如何使用Python和Scikit-learn进行机器学习数据建模。首先,通过鸢尾花数据集演示数据准备、可视化和预处理步骤。接着,构建并评估K近邻(KNN)模型,展示超参数调优方法。最后,比较KNN、随机森林和支持向量机(SVM)等模型的性能,帮助读者掌握基础的机器学习建模技巧,并展望未来结合深度学习框架的发展方向。
Python与机器学习:使用Scikit-learn进行数据建模
|
10月前
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
10月前
|
机器学习/深度学习 数据可视化 算法
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
|
机器学习/深度学习 存储 搜索推荐
利用机器学习算法改善电商推荐系统的效率
电商行业日益竞争激烈,提升用户体验成为关键。本文将探讨如何利用机器学习算法优化电商推荐系统,通过分析用户行为数据和商品信息,实现个性化推荐,从而提高推荐效率和准确性。
598 14
|
机器学习/深度学习 算法 数据可视化
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
实现机器学习算法时,特征选择是非常重要的一步,你有哪些推荐的方法?
590 1
|
机器学习/深度学习 算法 搜索推荐
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
Machine Learning机器学习之决策树算法 Decision Tree(附Python代码)
|
机器学习/深度学习 数据采集 算法
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
解码癌症预测的密码:可解释性机器学习算法SHAP揭示XGBoost模型的预测机制
1190 0

推荐镜像

更多