Python での単純ベイズの例

Jun 09, 2023 pm 11:36 PM
Pythonプログラミング ナイーブ・ベイズ デモンストレーション例

Python は、科学計算ライブラリとデータ処理ツールの豊富なセットを備えた、シンプルで学習しやすいプログラミング言語です。中でもナイーブベイズアルゴリズムは古典的な機械学習手法としてPython言語でも広く使われています。この記事では、Python での Naive Bayes の使い方と手順を例を使って紹介します。

  1. Naive Bayes の概要

Naive Bayes アルゴリズムは、ベイズの定理に基づく分類アルゴリズムです。その中心的な考え方は、既知のトレーニング データを使用することです。セットの特性新しいデータの分類結果を推測するために使用されます。実際のアプリケーションでは、Naive Bayes アルゴリズムは、テキスト分類、スパム フィルタリング、センチメント分析などのシナリオでよく使用されます。

Naive Bayes アルゴリズムの特徴は、各特徴が互いに独立であると仮定していることですが、実際の状況ではこの仮定が当てはまらないことが多いため、Naive Bayes アルゴリズムは「ナイーブ」と呼ばれます。この前提にもかかわらず、Naive Bayes は短いテキストの分類などの問題では依然として良好なパフォーマンスを発揮します。

  1. 単純ベイズ分類器の使用

Python で単純ベイズ分類器を使用する手順は次のように要約できます。

2.1 データの準備

まず、分類するトレーニング データとテスト データを準備する必要があります。このデータはテキスト、画像、音声などの形式にすることができますが、コンピュータが理解できる形式に変換する必要があります。テキスト分類問題では、多くの場合、テキストをベクトル表現に変換する必要があります。

2.2 トレーニング モデル

次に、トレーニング データ セットを使用して単純ベイズ分類器を構築する必要があります。 Python には一般的に使用される 3 つの単純ベイズ分類器があります:

  • GaussianNB: 連続データの分類に適しています。
  • BernoulliNB: バイナリ データの分類に適しています。
  • MultinomialNB: 多変量データの分類に適しています。

テキスト分類を例に挙げると、sklearn ライブラリによって提供される TfidfVectorizer クラスを使用してテキストをベクトル表現に変換し、トレーニングに MultinomialNB 分類器を使用できます。

2.3 テスト モデル

トレーニングが完了したら、モデルのパフォーマンスを評価するためにテスト データ セットを使用する必要があります。通常、テスト データ セットとトレーニング データ セットは独立しています。トレーニング データセットのデータはテスト中に使用できないことに注意してください。 sklearn ライブラリによって提供される activity_score 関数を使用して、モデルの精度を計算できます。

  1. 例: ナイーブ ベイズに基づくテキスト分類

ナイーブ ベイズ分類器の実際の応用例を示すために、この記事ではナイーブ ベイズに基づくテキスト分類を使用します。 。

3.1 データの準備

まず、インターネットから「スポーツ ニュース」と「科学技術ニュース」という 2 つのテキスト データ セットを検索します。各データ セットには 1,000 個のテキストが含まれています。 2 つのデータ セットを別のフォルダーに置き、テキストにそれぞれ「スポーツ」と「テクノロジー」というラベルを付けます。

3.2 sklearn ライブラリを使用して分類する

次に、sklearn ライブラリが提供する単純ベイズ分類器を分類に使用します。

(1) 関連ライブラリのインポート

from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
import os
ログイン後にコピー

(2) テキスト データとその注釈の読み取り

def read_files(path):
    text_list = []
    label_list = []
    for root, dirs, files in os.walk(path):
        for file in files:
            file_path = os.path.join(root, file)
            with open(file_path, 'r', encoding='utf-8') as f:
                text = ''.join(f.readlines())
                text_list.append(text)
                if '体育' in file_path:
                    label_list.append('体育')
                elif '科技' in file_path:
                    label_list.append('科技')
    return text_list, label_list
ログイン後にコピー

(3) テキストをベクトル表現に変換

def text_vectorizer(text_list):
    vectorizer = TfidfVectorizer()
    X = vectorizer.fit_transform(text_list)
    return X, vectorizer
ログイン後にコピー

(4) モデルをトレーニングし、精度を返します

def train(text_list, label_list):
    X, vectorizer = text_vectorizer(text_list)
    y = label_list
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
    clf = MultinomialNB()
    clf.fit(X_train, y_train)
    y_pred = clf.predict(X_test)
    acc = accuracy_score(y_test, y_pred)
    return clf, vectorizer, acc
ログイン後にコピー

(5) モデルをテストします

def predict(clf, vectorizer, text):
    X = vectorizer.transform(text)
    y_pred = clf.predict(X)
    return y_pred[0]
ログイン後にコピー

3.3 結果分析

上記のコードを実行して分類器の精度を取得しますは0.955です。実際に分類を行う場合は、predict関数に分類対象のテキストを入力するだけで、そのテキストが属するカテゴリが返されます。たとえば、「iPhone 12 がついにリリースされました!」というテキストを入力すると、「テクノロジー」カテゴリに戻ります。

  1. 概要

シンプルで効果的な分類アルゴリズムとして、Naive Bayes アルゴリズムも Python で広く使用されています。この記事では、Naive Bayes 分類器を使用する方法と手順を紹介し、Naive Bayes に基づくテキスト分類を例として取り上げ、分類器の実際の応用例を示します。実際の適用プロセスでは、分類器の精度を向上させるために、データの前処理、特徴の選択などの操作も必要になります。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AssertionError: Python アサーション エラーを解決するにはどうすればよいですか? AssertionError: Python アサーション エラーを解決するにはどうすればよいですか? Jun 25, 2023 pm 11:07 PM

Python のアサーションは、プログラマがコードをデバッグするための便利なツールです。これは、プログラムの内部状態が期待を満たしていることを確認し、これらの条件が false の場合にアサーション エラー (AssertionError) を発生させるために使用されます。開発プロセスでは、コードのステータスが期待される結果と一致するかどうかを確認するために、テストとデバッグ中にアサーションが使用されます。この記事では、原因、解決策、およびコード内でアサーションを正しく使用する方法について説明します。アサーションエラーの原因 アサーションエラーパス

Python での層化サンプリング手法 Python での層化サンプリング手法 Jun 10, 2023 pm 10:40 PM

Python の層化サンプリング手法 サンプリングは、統計学で一般的に使用されるデータ収集方法であり、データ セットから分析用のサンプルの一部を選択して、データ セット全体の特性を推測することができます。ビッグデータの時代では、データの量が膨大になり、分析に完全なサンプルを使用することは時間がかかり、経済的にも現実的ではありません。したがって、適切なサンプリング方法を選択することで、データ分析の効率を向上させることができます。この記事では主にPythonでの層別サンプリング手法を紹介します。層化サンプリングとは何ですか?サンプリングでは、層別サンプリング

Python で脆弱性スキャナーを開発する方法 Python で脆弱性スキャナーを開発する方法 Jul 01, 2023 am 08:10 AM

Python による脆弱性スキャナーの開発方法の概要 インターネット セキュリティの脅威が増大する今日の環境において、脆弱性スキャナーはネットワーク セキュリティを保護するための重要なツールとなっています。 Python は、簡潔で読みやすく強力な人気のあるプログラミング言語であり、さまざまな実用的なツールの開発に適しています。この記事では、Python を使用してネットワークにリアルタイムの保護を提供する脆弱性スキャナーを開発する方法を紹介します。ステップ 1: スキャン対象を決定する 脆弱性スキャナーを開発する前に、スキャンする対象を決定する必要があります。これは、独自のネットワークでも、テスト権限のあるネットワークでもかまいません

Linux でのスクリプト作成と実行に Python を使用する方法 Linux でのスクリプト作成と実行に Python を使用する方法 Oct 05, 2023 am 11:45 AM

Python を使用して Linux でスクリプトを作成および実行する方法 Linux オペレーティング システムでは、Python を使用してさまざまなスクリプトを作成および実行できます。 Python は、スクリプト作成をより簡単かつ効率的にするための豊富なライブラリとツールを提供する、簡潔で強力なプログラミング言語です。以下では、Linux で Python を使用してスクリプトを作成および実行する基本的な手順を紹介し、Python をよりよく理解して使用するのに役立つ具体的なコード例をいくつか示します。 Pythonをインストールする

Python での sqrt() 関数の使用法 Python での sqrt() 関数の使用法 Feb 21, 2024 pm 03:09 PM

Python での sqrt() 関数の使用法とコード例 1. sqrt() 関数の関数と紹介 Python プログラミングにおいて、sqrt() 関数は math モジュール内の関数であり、その機能は次の平方根を計算することです。数。平方根は、数値をそれ自体で乗算すると数値の 2 乗に等しいことを意味します。つまり、x*x=n の場合、x は n の平方根になります。プログラム内で sqrt() 関数を使用すると、平方根を計算できます。 2. Python で sqrt() 関数を使用する方法、sq

Python プログラミングの実践: Baidu Map API を使用して静的地図関数を生成する方法 Python プログラミングの実践: Baidu Map API を使用して静的地図関数を生成する方法 Jul 30, 2023 pm 09:05 PM

Python プログラミング演習: Baidu Map API を使用して静的地図関数を生成する方法 はじめに: 現代社会において、地図は人々の生活に欠かせないものとなっています。マップを操作する場合、多くの場合、Web ページ、モバイル アプリ、またはレポートに表示するために、特定のエリアの静的なマップを取得する必要があります。この記事では、Python プログラミング言語と Baidu Map API を使用して静的地図を生成する方法を紹介し、関連するコード例を示します。 1. 準備作業 Baidu Map API を使用して静的地図を生成する機能を実現するために、

Baidu Map API ドキュメントの座標変換関数を分析するための Python プログラミング Baidu Map API ドキュメントの座標変換関数を分析するための Python プログラミング Aug 01, 2023 am 08:57 AM

Baidu Map API ドキュメントの座標変換関数を分析するための Python プログラミング はじめに: インターネットの急速な発展に伴い、地図測位機能は現代人の生活に不可欠な部分になりました。中国で最も人気のある地図サービスの 1 つである Baidu Maps は、開発者が使用できる一連の API を提供しています。この記事では、Python プログラミングを使用して、Baidu Map API ドキュメントの座標変換関数を分析し、対応するコード例を示します。 1. はじめに 開発では、座標変換の問題が発生することがあります。百度地図AP

Python で PCA 主成分分析アルゴリズムを記述するにはどうすればよいですか? Python で PCA 主成分分析アルゴリズムを記述するにはどうすればよいですか? Sep 20, 2023 am 10:34 AM

Python で PCA 主成分分析アルゴリズムを記述するにはどうすればよいですか? PCA (主成分分析) は、データの次元を削減してデータをよりよく理解して分析するために使用される、一般的に使用される教師なし学習アルゴリズムです。この記事では、Python を使用して PCA 主成分分析アルゴリズムを作成する方法を学び、具体的なコード例を示します。 PCA の手順は次のとおりです。 データを標準化します。データの各特徴の平均をゼロにし、分散を同じ範囲に調整して、

See all articles