iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
AI & Data

深入探索AI模型系列 第 24

【Day 24】 Naïve Bayes實作

  • 分享至 

  • xImage
  •  

今天我們要來用python實作Naïve bayes,首先老樣子的第一步,先載入資料集,這次的資料集一樣是iris資料集。將特徵(feature)設為x、標籤(label)設為y。

from sklearn import datasets

data = datasets.load_iris()
x = data.data
y = data.target

下一步使用train_test_split套件,將iris資料集分為訓練集以及測試集,筆者這邊的訓練集與測試集比例為7:3。讀者們可以根據自己的喜好或是多次試驗去調整比例。

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.3, random_state = 42)

接著利用sklearn套件中的naive_bayes函式庫來建構Naïve bayes模型,筆者這邊使用的是GaussianNB,其他還有像是MultinomialNB、BernoulliNB許多其他的Naïve bayes模型可以做選擇。讀者們可以嘗試看看其他的Naïve bayes模型,看看會不會有更好的結果。

from sklearn.naive_bayes import GaussianNB

model = GaussianNB()
model.fit(x_train, y_train)

接下來我們可以自定義一個函式來看看模型的準確度,內容是簡單的對比預測結果和實際是是否相同。

def accuracy(real, predictions):
    n = 0
    for i, p in enumerate(predictions):
        if (real[i] == p):
            n += 1
            
    return n / len(real)

最後利用predict函式獲得預測結果過後,將結果丟進剛剛定義的函式之中獲得準確度,筆者這邊所獲得的準確度為97.78%左右。

predictions = model.predict(x_test)
print(f"Accuracy: {accuracy(y_test, predictions)}")

上一篇
【Day 23】 Naïve Bayes(貝式分類器)
下一篇
【Day 25】 GAN(生成對抗網路 Generative Adversarial Network)
系列文
深入探索AI模型30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言