ナイーブベイズのサンプルコード教えて

ナイーブベイズ(Naive Bayes)をScikit-learnを使用して実装するサンプルコードを提供します。この例では、ナイーブベイズを使用してテキスト文書の分類を行います。具体的には、スパムメール検出のためにナイーブベイズをトレーニングします。

python
from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # スパムとノンスパムのテキストデータを用意 spam_data = ["Free Viagra now!!!", "Send money to a Nigerian prince", "Get a $1000 gift card", "Hello, how are you?", "Meeting agenda for next week", "Lunch today?"] labels = [1, 1, 1, 0, 0, 0] # スパムメールは1、ノンスパムメールは0 # テキストデータをベクトル化(単語の出現頻度を特徴として使用) vectorizer = CountVectorizer() X = vectorizer.fit_transform(spam_data) # データをトレーニングセットとテストセットに分割 X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42) # ナイーブベイズモデルを作成 naive_bayes_model = MultinomialNB() # モデルをトレーニング naive_bayes_model.fit(X_train, y_train) # テストデータで予測 y_pred = naive_bayes_model.predict(X_test) # モデルの性能を評価 accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy}")

このコードでは、スパムとノンスパムのテキストデータを用意し、CountVectorizerを使用してテキストデータをベクトル化しています。次に、Multinomial Naive Bayesモデルを作成し、トレーニングデータを使用してモデルをトレーニングします。最後に、テストデータで予測を行い、正確度(accuracy)を計算して性能を評価しています。

ナイーブベイズはテキスト分類のタスクに特に有用で、単純なベイズの定理に基づいています。この例では、スパムメール検出の例を示していますが、ナイーブベイズはさまざまなテキスト分類タスクに適用できます。

未分類

Posted by ぼっち