"""
=========================================
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()))