自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

閉著眼學機器學習—樸素貝葉斯分類

發(fā)布于 2025-1-16 12:17
瀏覽
0收藏

1. 算法介紹

    樸素貝葉斯是一種基于貝葉斯定理的分類算法,廣泛應(yīng)用于文本分類、垃圾郵件過濾、情感分析等領(lǐng)域。它是一種簡單但非常有效的分類方法,特別適用于高維度特征空間的分類問題。

    樸素貝葉斯分類器的"樸素"來源于它對特征之間獨立性的假設(shè)。盡管這個假設(shè)在現(xiàn)實中往往不成立,但該算法在許多實際應(yīng)用中仍然表現(xiàn)出色。

2. 算法原理

閉著眼學機器學習—樸素貝葉斯分類-AI.x社區(qū)

3. 案例分析

我們使用著名的鳶尾花(Iris)數(shù)據(jù)集來演示樸素貝葉斯分類器的應(yīng)用。

首先建立樸素貝葉斯分類模型訓練數(shù)據(jù)進行分類并打印分類結(jié)果:

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, classification_report
from sklearn.decomposition import PCA

# 加載數(shù)據(jù)
iris = datasets.load_iris()
X = iris.data
y = iris.target

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 創(chuàng)建并訓練模型
gnb = GaussianNB()
gnb.fit(X_train, y_train)

# 預測
y_pred = gnb.predict(X_test)

# 評估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"準確率: {accuracy:.2f}")

print("\n分類報告:")
print(classification_report(y_test, y_pred, target_names=iris.target_names))

打印出模型的準確率和分類報告如下:

接下來對分類結(jié)果進行可視化:

# 可視化
# 使用PCA降維到2D
pca = PCA(n_compnotallow=2)
X_pca = pca.fit_transform(X)

# 繪制散點圖
plt.figure(figsize=(10, 8))
colors = ['red', 'green', 'blue']
for i, c in zip(range(3), colors):
    plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1], c=c, label=iris.target_names[i])

plt.title('鳶尾花數(shù)據(jù)集的PCA可視化')
plt.xlabel('第一主成分')
plt.ylabel('第二主成分')
plt.legend()
plt.show()

# 繪制決策邊界
x_min, x_max = X_pca[:, 0].min() - 0.5, X_pca[:, 0].max() + 0.5
y_min, y_max = X_pca[:, 1].min() - 0.5, X_pca[:, 1].max() + 0.5
xx, yy = np.meshgrid(np.arange(x_min, x_max, 0.02),
                     np.arange(y_min, y_max, 0.02))
Z = gnb.predict(pca.inverse_transform(np.c_[xx.ravel(), yy.ravel()]))
Z = Z.reshape(xx.shape)

plt.figure(figsize=(10, 8))
plt.contourf(xx, yy, Z, alpha=0.8, cmap=plt.cm.RdYlBu)
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap=plt.cm.RdYlBu, edgecolor='black')
plt.title('樸素貝葉斯分類器的決策邊界')
plt.xlabel('第一主成分')
plt.ylabel('第二主成分')
plt.show()

繪制數(shù)據(jù)降維后的數(shù)據(jù)散點圖:

繪制樸素貝葉斯分類結(jié)果圖:

    在這個例子中,我們使用了高斯樸素貝葉斯分類器(GaussianNB),它假設(shè)特征的條件概率分布服從高斯分布。模型在測試集上達到了98%的準確率,表現(xiàn)相當不錯。

4. 總結(jié)

樸素貝葉斯分類器的優(yōu)點包括:

  1. 簡單,易于實現(xiàn)
  2. 訓練速度快
  3. 對小規(guī)模數(shù)據(jù)表現(xiàn)良好
  4. 對高維數(shù)據(jù)有很好的分類性能

然而,它也有一些局限性:

  1. 特征獨立性假設(shè)在實際中往往不成立
  2. 對數(shù)值型特征的處理不如某些其他算法

    總的來說,樸素貝葉斯是一種簡單而強大的分類算法,特別適用于文本分類等高維度特征空間的問題。在實際應(yīng)用中,它常常作為基準模型或快速原型開發(fā)的首選算法。

本文轉(zhuǎn)載自??寶寶數(shù)模AI??,作者: BBSM ????

收藏
回復
舉報
回復
相關(guān)推薦