scikit-learn - 朴素贝叶斯的高斯模型

1. 参考资料

http://cwiki.apachecn.org/pages/viewpage.action?pageId=10814109
http://www.cnblogs.com/Scorpio989/p/4760281.html
http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html
http://www.ruanyifeng.com/blog/2013/12/naive_bayes_classifier.html

2. iris数据集

http://archive.ics.uci.edu/ml/datasets/Iris
iris是一个植物数据库,我们可以通过植物的特征判断它的产地,数据集特征:
实例数:150(三类中的每一类为50)其中:
特征向量有四个:

  • 萼片长度(厘米)
  • 萼片宽度(厘米)
  • 花瓣长度(厘米)
  • 花瓣宽度(厘米)
    类有三个:
  • Setosa
  • Versicolour
  • Virginica

3. 使用贝叶斯定理,根据植物特征,预测其产地

"""
=========================================
Gaussian Naive Bayes ( 高斯朴素贝叶斯 )
=========================================

"""
print(__doc__)

from sklearn import datasets
from sklearn.naive_bayes import GaussianNB
import numpy as np

# 装载测试数据集
iris = datasets.load_iris()

# 600 共600/4=150个样本
print("Number of test points %d" % (iris.data.shape[0]))

# 打印特征名称
print("Feature names: ")
print(iris.feature_names)

# 打印分类名称
print("Target class names: ")
print(iris.target_names)

gnb = GaussianNB()

# 输入样本与分类,开始训练
gnb.fit(iris.data, iris.target)

# 指定植物特征向量预测产地
plant = np.array([5.9, 3., 5.1, 1.8])
class_pred = gnb.predict([plant])
print("Predict class is %s" % (iris.target_names[class_pred[0]]))

# 对训练数据再次运行分类,这个可以看作是一种回归测试,通常不会和target完全一致,否则可能造成过拟合问题
y_pred = gnb.predict(iris.data)

# 打印有多少个样本不一致
print("Number of mislabeled points out of a total %d points : %d"
      % (iris.data.shape[0], (iris.target != y_pred).sum()))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 0x01 概述 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。 0x02 贝叶...
    Pino_HD阅读 1,140评论 0 0
  • 大部分的后端会很很鄙视前端。我也不知道为什么,可能大部分人都会觉得脚本语言根本不算语言。 大多人 会叫我们切图仔,...
    小黑的眼阅读 3,489评论 0 15
  • 再见到梁雨生就是真相揭晓日,他穿着一件土黄色不合时宜又老气的T恤,背了个脏兮兮的帆布包,一双黑色的板鞋也是脏兮兮的...
    张铁钉阅读 766评论 2 4
  • (一) 如果说相遇是错,那么在轮回的因果中,我一错再错,仅仅只是从遇到你的那一刻。 落花无数阶前雨,总无语,也依依...
    纳兰木儿阅读 455评论 0 3