[scikit-learn 机器学习] 7. 朴素贝叶斯
文章目錄
- 1. 樸素貝葉斯
- 2. NB 與 邏輯回歸對比
本文為 scikit-learn機(jī)器學(xué)習(xí)(第2版)學(xué)習(xí)筆記
相關(guān)知識(shí)參考:《統(tǒng)計(jì)學(xué)習(xí)方法》樸素貝葉斯法(Naive Bayes,NB)
1. 樸素貝葉斯
通過最大概率來預(yù)測類:
y=arg?max?ckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)\color{red} y=\argmax\limits_{c_k} P(Y=c_k) \prod\limits_{j} P(X^{(j)}=x^{(j)}|Y=c_k)y=ck?argmax?P(Y=ck?)j∏?P(X(j)=x(j)∣Y=ck?)
模型假設(shè):
-
樣本獨(dú)立同分布;
-
條件獨(dú)立性 :X(j)X^{(j)}X(j) 之間條件獨(dú)立
P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},...,X^{(n)}=x^{(n)}|Y=c_k)=\prod_{j=1}^nP(X^{(j)}=x^{(j)}|Y=c_k)P(X=x∣Y=ck?)=P(X(1)=x(1),...,X(n)=x(n)∣Y=ck?)=∏j=1n?P(X(j)=x(j)∣Y=ck?)
模型變體:
- 多項(xiàng)式NB:適合于類別特征
- 高斯NB:適合連續(xù)特征,假設(shè)每個(gè)特征對每個(gè)類都符合正態(tài)分布
- 伯努利NB:適合所有特征為二元值的情況
樸素貝葉斯的假設(shè)很少為真,但是NB模型可以有效地判別線性可分類
- 當(dāng)訓(xùn)練數(shù)據(jù)缺乏時(shí),性能通常優(yōu)于判別模型
- 模型簡單,運(yùn)行速度快,易于實(shí)現(xiàn)
2. NB 與 邏輯回歸對比
%matplotlib inline import pandas as pd from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.model_selection import train_test_split import matplotlib.pyplot as pltX, y = load_breast_cancer(return_X_y=True) X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=11) # stratify=y, 對標(biāo)簽進(jìn)行分層抽樣,確保數(shù)據(jù)集之間的樣本占比一致lr = LogisticRegression() nb = GaussianNB()lr_scores = [] nb_scores = []train_sizes = range(10, len(X_train), 10)for train_size in train_sizes:X_slice, _, y_slice, _ = train_test_split(X_train, y_train, train_size=train_size, stratify=y_train, random_state=11)nb.fit(X_slice, y_slice)nb_scores.append(nb.score(X_test, y_test))lr.fit(X_slice, y_slice)lr_scores.append(lr.score(X_test, y_test))plt.plot(train_sizes, nb_scores, label='Naive Bayes') plt.plot(train_sizes, lr_scores, linestyle='--', label='Logistic Regression') plt.rcParams['font.sans-serif'] = 'SimHei' # 消除亂碼 plt.title("NB vs LogRg 對比") plt.xlabel("訓(xùn)練樣本數(shù)") plt.ylabel("測試集預(yù)測準(zhǔn)確率") plt.legend()- 在小型數(shù)據(jù)集上,NB模型性能優(yōu)于邏輯回歸
- 當(dāng)訓(xùn)練樣本數(shù)增多以后,邏輯回歸模型性能逐漸提升
總結(jié)
以上是生活随笔為你收集整理的[scikit-learn 机器学习] 7. 朴素贝叶斯的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1503. 所有蚂蚁掉
- 下一篇: LeetCode 1287. 有序数组中