Python での単純ベイズ アルゴリズムの例

王林
リリース: 2023-06-10 08:23:18
オリジナル
1367 人が閲覧しました

Naive Bayes アルゴリズムは古典的な機械学習アルゴリズムの 1 つで、特にテキスト分類やスパム フィルタリングなどの分野で広く使用されており、高い精度と効率を備えています。この記事では、Python での Naive Bayes アルゴリズムの実装を紹介し、その応用例を例を挙げて説明します。

1. ナイーブ ベイズ アルゴリズムの概要
ナイーブ ベイズ アルゴリズムは、ベイズの定理と特徴の独立性の仮定に基づいた分類アルゴリズムです。基本的な考え方は、既知のカテゴリ データの条件付き確率を通じて新しいデータの分類を推測することです。具体的には、分類の前にモデルをトレーニングする必要があります。つまり、各カテゴリの各特徴の条件付き確率が計算されます。そして、分類する際には、ベイズの定理に従って新規データが各カテゴリに属する​​確率を計算し、その確率が最大となるカテゴリを予測結果として選択する。特徴が独立していると仮定されているため、このアルゴリズムは「Naive Bayes」と名付けられています。

2. Python での Naive Bayes の実装
Python には、scikit-learn、nltk、gensim など、Naive Bayes アルゴリズムの実装に使用できる複数のライブラリまたはモジュールがあります。この記事では、scikit-learn ライブラリを使用して単純ベイズ アルゴリズムを実装する方法を紹介します。

1. データ セットを準備する
まず、分類器をトレーニングおよびテストするためのデータ セットを準備する必要があります。この例では、UCI Machine Learning リポジトリの「スパムベース データ セット」を選択します。このデータ セットには 4601 件の電子メールが含まれており、そのうち 1813 件がスパム メール、2788 件が通常のメールです。このデータセットは、CSV 形式でダウンロードして保存できます。

2. データをインポートし、トレーニング セットとテスト セットに分割します
pandas ライブラリの read_csv 関数を使用して、CSV ファイルを DataFrame 形式に読み込み、トレーニング セットとテスト セットに分割します。コードは次のとおりです。

import pandas as pd
from sklearn.model_selection import train_test_split

Import data

df = pd.read_csv('spambase.csv' )

トレーニング セットとテスト セットを分割します

XX = df.iloc[:, :-1]
y = df.iloc[:, -1]
X_train , X_test, y_train, y_test = train_test_split (X, y, test_size=0.3, random_state=42)

3. トレーニング モデル
sklearn ライブラリの MultinomialNB クラスを使用して、単純ベイズ分類モデルを初期化し、モデルのトレーニングにトレーニング データを使用し、次のようにコーディングします。

from sklearn.naive_bayes import MultinomialNB

トレーニング モデル

clf = MultinomialNB()
clf.fit( X_train, y_train)

4. テスト モデル
テスト セットを使用して分類器をテストし、分類精度を計算します。コードは次のとおりです:

from sklearn.metrics import activity_score

テスト モデル

y_pred = clf.predict(X_test)
acc = precision_score(y_test, y_pred)
print('精度: {:.2f}%'.format( acc*100))

#5. モデルの適用

トレーニング済みモデルを使用して新しいデータを分類し、予測結果を出力します。コードは次のとおりです:

モデルの適用

new_data = [[0.05, 0.08, 0.00, 0.00, 0.04, 0.00, 0.00, 0.14, 0.03, 0.10, 0.05, 0.00, 0.02, 0.04, 0.00, 0.10, 0.05, 0.01, 0.04, 0. 67、2.16、10.00、 136.00, 0.00, 0.96, 0.00, 0.00, 0.00, 0.32, 0.01]]

prediction = clf.predict(new_data)
print('Prediction:',予測)

3. 分析例

この例では分類問題を使用しており、その特徴は電子メール内の単語の頻度であり、電子メールをスパム電子メールと通常の電子メールに分類することを目的としています。トレーニング後、単純ベイズ アルゴリズムが分類に使用され、90.78% の精度が得られました。この結果から、特定のアプリケーション状況では、Naive Bayes が優れた分類結果をもたらすことがわかります。

4. 結論

Naive Bayes アルゴリズムはシンプルで効果的な分類方法であり、テキスト分類やスパム フィルタリングなどの分野で広く使用されています。 Python の scikit-learn ライブラリは、モデルのトレーニング、テスト、およびアプリケーションを適切にサポートできる単純ベイズ分類器の便利な実装を提供します。

以上がPython での単純ベイズ アルゴリズムの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート