Python の混同行列のトリック

Jun 11, 2023 am 10:43 AM
スキル Pythonプログラミング 混同行列

機械学習とデータ マイニングの人気に伴い、ますます多くのデータ サイエンティストや研究者が高級プログラミング言語である Python を使用してデータを処理および分析し始めています。Python の直観性と使いやすさにより、Python は広く使用されています。深さ 学習や人工知能の分野で広く使用されています。ただし、多くの初心者は Python を使用するときにいくつかの問題に遭遇します。その 1 つは混同行列の難しさです。この記事では、Python での混同行列の使用方法と、混同行列を扱うときに役立ついくつかのテクニックを紹介します。

1.混同行列とは

ディープラーニングとデータマイニングにおいて、混同行列とは、予測結果と実際の結果の差異を比較するために使用される長方形のテーブルです。このマトリックスは、分類アルゴリズムの精度、エラー率、精度、再現率などの重要な指標を含む、分類アルゴリズムのパフォーマンスを示します。混同行列は通常、分類器のパフォーマンスを視覚化し、分類器の改善と最適化のための予測結果の主な参照を提供します。

通常、混同行列は 4 つのパラメーターで構成されます。

  • 真陽性 (TP): 分類アルゴリズムは、陽性クラスを陽性クラスとして正確に予測します。
  • 偽陰性 (FN): 分類アルゴリズムは、陽性クラスを陰性クラスとして誤って予測します。
  • 偽陽性 (FP): 分類アルゴリズムは、陰性クラスを陽性クラスとして誤って予測します。
  • 真陰性 (TN): 分類アルゴリズムは、陰性クラスを陰性クラスとして正確に予測します。

2. 混同行列の計算方法

Python の scikit-learn ライブラリには、混同行列を計算する便利な関数が用意されています。この関数はconfusion_matrix()と呼ばれ、分類子とテストセットの実際の結果の間の入力として使用でき、混同行列のパラメータ値を返します。この関数の構文は次のとおりです。

from sklearn.metrics import confusion_matrix
confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
ログイン後にコピー

このうち、y_true は分類子の正しい結果を表し、y_pred は分類子の予測結果を表し、ラベルはクラス ラベルの名前を表します (指定されていない場合)。 、デフォルトは y_true および y_pred から抽出された値です)、sample_weight は各サンプルの重みを表します (必要ない場合は、このパラメーターを設定しないでください)。

たとえば、次のデータの混同行列を計算する必要があるとします。

y_true = [1, 0, 1, 2, 0, 1]
y_pred = [1, 0, 2, 1, 0, 2]
ログイン後にコピー

混同行列を計算するには、次のコードを使用できます。

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred)
print(cm)
ログイン後にコピー

The出力結果は次のとおりです:

array([[2, 0, 0],
       [0, 1, 2],
       [0, 1, 0]])
ログイン後にコピー

つまり、混同行列は、「1」が「1」として 2 回正しく分類され、「0」が「0」として 1 回正しく分類され、「2」が正しく分類されていることを示しています。 as "2" 「「1」が「2」と誤分類されるケースが 0 件あり、「2」が「1」と誤分類されるケースが 2 件あり、「0」が「2」と誤分類されるケースが 1 回発生しました。

3. 混同行列を表示する

混同行列をより適切に視覚化する必要がある状況は数多くあります。 Python の matplotlib ライブラリは、混同行列を視覚化できます。以下は、matplotlib ライブラリと sklearn.metrics を使用して混同行列を視覚化する Python コードです。

import itertools
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix

def plot_confusion_matrix(cm, classes,
                          normalize=False,
                          title='Confusion matrix',
                          cmap=plt.cm.Blues):
    """
    This function prints and plots the confusion matrix.
    Normalization can be applied by setting `normalize=True`.
    """
    if normalize:
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        print("Normalized confusion matrix")
    else:
        print('Confusion matrix, without normalization')

    print(cm)

    plt.imshow(cm, interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation=45)
    plt.yticks(tick_marks, classes)

    fmt = '.2f' if normalize else 'd'
    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):
        plt.text(j, i, format(cm[i, j], fmt),
                 horizontalalignment="center",
                 color="white" if cm[i, j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True label')
    plt.xlabel('Predicted label')

# Compute confusion matrix
cnf_matrix = confusion_matrix(y_test, y_pred)
np.set_printoptions(precision=2)

# Plot non-normalized confusion matrix
plt.figure()
plot_confusion_matrix(cnf_matrix, classes=class_names,
                      title='Confusion matrix, without normalization')

# Plot normalized confusion matrix
plt.figure()
plot_confusion_matrix(cnf_matrix, classes=class_names, normalize=True,
                      title='Normalized confusion matrix')

plt.show()
ログイン後にコピー

上記のコードでは、plot_confusion_matrix() という名前のカスタム関数を定義します。この関数は、混同行列のパラメータ、カテゴリ名のテキスト文字列をパラメータとして受け取り、混同行列をカラー イメージとして出力します。混同行列の各セルの色は、その値のサイズを表します。次に、それぞれの真のカテゴリと予測されたカテゴリを使用して混同行列を計算し、上で定義した Lot_confusion_matrix() 関数を使用して混同行列を表す必要があります。

4. 概要

Python 言語は、データ サイエンティストや研究者がディープ ラーニングや人工知能のデータ分析をより迅速に実行できるようにする、多数の視覚化およびデータ分析ライブラリを提供します。この記事では、混同行列とそのアプリケーション、Python で混同行列を計算する方法、および matplotlib ライブラリを使用して混同行列のグラフィックを生成する方法を紹介します。混同行列技術は、ディープラーニングや人工知能の分野で重要な応用分野があるため、混同行列技術を習得することが非常に必要です。

以上が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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Win11 ヒントの共有: ワン トリックで Microsoft アカウントのログインをスキップする Mar 27, 2024 pm 02:57 PM

Win11 のヒントの共有: Microsoft アカウントのログインをスキップする 1 つのトリック Windows 11 は、新しいデザイン スタイルと多くの実用的な機能を備えた、Microsoft によって発売された最新のオペレーティング システムです。ただし、一部のユーザーにとっては、システムを起動するたびに Microsoft アカウントにログインしなければならないのが少し煩わしい場合があります。あなたがそのような人であれば、次のヒントを試してみるとよいでしょう。これにより、Microsoft アカウントでのログインをスキップして、デスクトップ インターフェイスに直接入ることができるようになります。まず、Microsoft アカウントの代わりにログインするためのローカル アカウントをシステムに作成する必要があります。これを行う利点は、

ベテラン必携:C言語の*と&のヒントと注意点 ベテラン必携:C言語の*と&のヒントと注意点 Apr 04, 2024 am 08:21 AM

C 言語では、他の変数のアドレスを格納するポインタを表し、& は変数のメモリ アドレスを返すアドレス演算子を表します。ポインタの使用に関するヒントには、ポインタの定義、ポインタの逆参照、ポインタが有効なアドレスを指していることの確認が含まれます。アドレス演算子の使用に関するヒントには、変数アドレスの取得、配列要素のアドレスを取得するときに配列の最初の要素のアドレスを返すことなどが含まれます。 。ポインター演算子とアドレス演算子を使用して文字列を反転する実際の例。

初心者がフォームを作成するためのヒントは何ですか? 初心者がフォームを作成するためのヒントは何ですか? Mar 21, 2024 am 09:11 AM

私たちは Excel で表を作成したり編集したりすることがよくありますが、ソフトウェアに触れたばかりの初心者にとって、Excel を使用して表を作成する方法は私たちほど簡単ではありません。以下では、初心者、つまり初心者がマスターする必要があるテーブル作成のいくつかの手順について演習を行います。初心者向けのサンプルフォームを以下に示します。入力方法を見てみましょう。 1. Excel ドキュメントを新規作成するには 2 つの方法があります。 [デスクトップ]-[新規作成]-[xls]ファイル上の何もない場所でマウスを右クリックします。 [スタート]-[すべてのプログラム]-[Microsoft Office]-[Microsoft Excel 20**] を実行することもできます。 2. 新しい ex ファイルをダブルクリックします。

Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する Oracle データベースのクエリ スキル: 重複データを 1 つだけ取得する Mar 08, 2024 pm 01:33 PM

Oracle データベース クエリ スキル: 重複データを 1 つだけ取得するには、特定のコード サンプルが必要です 実際のデータベース クエリでは、重複データから 1 つのデータだけを取得する必要がある状況によく遭遇します。この記事では、Oracle データベースのテクニックを使用して重複データから 1 つのレコードのみを取得する方法を紹介し、具体的なコード例を示します。シナリオの説明 従業員情報を含む、employee という名前のテーブルがあるとします。従業員情報が重複している可能性があります。すべての重複を見つける必要があります

VSCode 入門ガイド: 初心者が使い方のスキルをすぐにマスターするための必読の書です。 VSCode 入門ガイド: 初心者が使い方のスキルをすぐにマスターするための必読の書です。 Mar 26, 2024 am 08:21 AM

VSCode (Visual Studio Code) は、Microsoft によって開発されたオープン ソース コード エディターであり、強力な機能と豊富なプラグイン サポートを備えており、開発者にとって推奨されるツールの 1 つです。この記事では、初心者が VSCode の使用スキルをすぐに習得できるようにするための入門ガイドを提供します。この記事では、VSCode のインストール方法、基本的な編集操作、ショートカット キー、プラグインのインストールなどを紹介し、具体的なコード例を読者に提供します。 1. まず VSCode をインストールします。

PHP プログラミング スキル: 3 秒以内に Web ページにジャンプする方法 PHP プログラミング スキル: 3 秒以内に Web ページにジャンプする方法 Mar 24, 2024 am 09:18 AM

タイトル: PHP プログラミングのヒント: 3 秒以内に Web ページにジャンプする方法 Web 開発では、一定時間内に別のページに自動的にジャンプする必要がある状況によく遭遇します。この記事では、PHP を使用して 3 秒以内にページにジャンプするプログラミング手法を実装する方法と、具体的なコード例を紹介します。まず、ページ ジャンプの基本原理は、HTTP 応答ヘッダーの Location フィールドを通じて実現されます。このフィールドを設定すると、ブラウザは指定されたページに自動的にジャンプできます。以下は、P の使用方法を示す簡単な例です。

Go 言語の関数リファクタリング手法についての深い理解 Go 言語の関数リファクタリング手法についての深い理解 Mar 28, 2024 pm 03:05 PM

Go言語プログラム開発において、関数再構築スキルは非常に重要な部分です。関数の最適化とリファクタリングにより、コードの品質と保守性が向上するだけでなく、プログラムのパフォーマンスと可読性も向上します。この記事では、読者がこれらの手法をよりよく理解して適用できるように、Go 言語での関数再構築手法を具体的なコード例と組み合わせて詳しく説明します。 1. コード例 1: 重複したコード部分を抽出する 実際の開発では、コード部分が再利用されることがよくありますが、このとき、重複するコード部分を独立した機能として抽出することを検討できます。

Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Win11 の裏技が明らかに: Microsoft アカウントのログインをバイパスする方法 Mar 27, 2024 pm 07:57 PM

Win11 のトリックが明らかに: Microsoft アカウントのログインをバイパスする方法 最近、Microsoft は新しいオペレーティング システム Windows11 を発表し、広く注目を集めています。以前のバージョンと比較して、Windows 11 はインターフェイスのデザインや機能の改善の点で多くの新しい調整を加えましたが、いくつかの議論も引き起こしました. 最も目を引く点は、ユーザーが Microsoft アカウントでシステムにログインすることを強制することです。ユーザーによっては、ローカル アカウントでログインすることに慣れており、個人情報を Microsoft アカウントにバインドすることに抵抗がある場合があります。

See all articles