鸢尾花分类_机器学习:鸢尾花数据集--贝叶斯分类
鶯尾花數據集--貝葉斯分類
Step1: 庫函數導入
import warnings
warnings.filterwarnings('ignore')
import numpy as np# 加載鶯尾花數據集
from sklearn import datasets# 導入高斯樸素貝葉斯分類器
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_splitStep2: 數據導入&分析
X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
我們需要計算兩個概率分別是:條件概率: ( ( )= ( )| = )P(X(i)=x(i)|Y=ck)和類目 ck的先驗概率: ( = )P(Y=ck)。
通過分析發現訓練數據是數值類型的數據,這里假設每個特征服從高斯分布,因此我們選擇高斯樸素貝葉斯來進行分類計算。
Step3: 模型訓練# 使用高斯樸素貝葉斯進行計算
clf = GaussianNB(var_smoothing=1e-8)
clf.fit(X_train, y_train)
GaussianNB(var_smoothing=1e-08)Step4: 模型預測# 評估
y_pred = clf.predict(X_test)
acc = np.sum(y_test == y_pred) / X_test.shape[0]
print("Test Acc : %.3f" % acc)
?# 預測
y_proba = clf.predict_proba(X_test[:1])
print(clf.predict(X_test[:1]))
print("預計的概率值:", y_proba)
Test Acc : 0.967 [2] 預計的概率值: [[1.63542393e-232 2.18880483e-006 9.99997811e-001]]
Step5: 原理簡析
高斯樸素貝葉斯假設每個特征都服從高斯分布,我們把一個隨機變量X服從數學期望為μ,方差為σ^2的數據分布稱為高斯分布。對于每個特征我們一般使用平均值來估計μ和使用所有特征的方差估計σ^2。
( ( )= ( )| = )=12 2 ????????√exp(?( ( )? )22 2 )P(X(i)=x(i)|Y=ck)=12πσy2exp?(?(x(i)?μck)22σck2)
從上述例子中的預測結果中,我們可以看到類別2對應的后驗概率值最大,所以我們認為類目2是最優的結果。
總結
以上是生活随笔為你收集整理的鸢尾花分类_机器学习:鸢尾花数据集--贝叶斯分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2015快捷键在哪里设置_炒股软件的选择
- 下一篇: mysql 导出中文乱码_sqoop导出