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