1. 程式人生 > >sklearn的快速使用之十(高斯樸素貝葉斯 )

sklearn的快速使用之十(高斯樸素貝葉斯 )

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