찾다
백엔드 개발파이썬 튜토리얼Python의 혼동 행렬 트릭

Python의 혼동 행렬 트릭

Jun 11, 2023 am 10:43 AM
기능파이썬 프로그래밍혼동 행렬

머신러닝과 데이터마이닝의 인기로 데이터 처리 및 분석을 위해 고급 프로그래밍 언어인 Python을 사용하는 데이터 과학자와 연구자가 늘어나고 있으며, Python의 직관성과 사용 용이성으로 딥러닝 분야에서 인기를 끌고 있습니다. 인공지능 분야에서 널리 활용되고 있습니다. 그러나 많은 초보자들이 Python을 사용할 때 몇 가지 어려움을 겪는데, 그 중 하나는 혼동 행렬의 어려움입니다. 이 기사에서는 Python에서 혼동 행렬을 사용하는 방법과 혼동 행렬을 다룰 때 유용한 몇 가지 기술을 소개합니다.

1. 혼동행렬이란 무엇인가요

딥러닝과 데이터 마이닝에서 혼동행렬은 예측된 결과와 실제 결과의 차이를 비교하는 데 사용되는 직사각형 테이블입니다. 이 매트릭스는 분류 알고리즘의 정확도, 오류율, 정밀도 및 재현율과 같은 중요한 지표를 포함하여 분류 알고리즘의 성능을 보여줍니다. 혼동행렬은 일반적으로 분류기의 성능을 시각화하고 분류기의 개선 및 최적화를 위한 예측 결과에 대한 주요 참조를 제공합니다.

일반적으로 혼동 행렬은 다음 네 가지 매개변수로 구성됩니다.

  • 진정성(TP): 분류 알고리즘은 양성 클래스를 양성 클래스로 정확하게 예측합니다.
  • False Negative(FN): 분류 알고리즘이 양성 클래스를 음성 클래스로 잘못 예측합니다.
  • False Positive(FP): 분류 알고리즘이 음성 클래스를 양성 클래스로 잘못 예측합니다.
  • 트루 네거티브(TN): 분류 알고리즘은 네거티브 클래스를 네거티브 클래스로 정확하게 예측합니다.

2. 혼동행렬 계산 방법

파이썬의 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는 분류기의 예측 결과를 나타내며, labels는 클래스 레이블의 이름을 나타냅니다(제공되지 않은 경우 기본값은 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)

출력 결과는 다음과 같습니다.

array([[2, 0, 0],
       [0, 1, 2],
       [0, 1, 0]])

즉, 혼동 행렬은 "1"이 "1"로 올바르게 분류된 경우가 2개, "0"이 "0"으로 올바르게 분류된 경우가 1개, "2"가 "2"로 올바르게 분류된 경우가 0개, 0개의 경우가 있음을 보여줍니다. "1"이 "2"로 잘못 분류된 경우 "는 "1"로 두 번 오분류되었고, "2"는 "1"로 한 번 오분류되었으며, "0"은 "2"로 한 번 오분류되었습니다.

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()

위 코드에서는 혼동 행렬의 매개변수, 카테고리 이름의 텍스트 문자열을 매개변수로 받아들이고 혼동 행렬을 컬러 이미지로 출력하는 플롯_confusion_matrix()라는 사용자 정의 함수를 정의합니다. 행렬 각 셀의 색상은 해당 값의 크기를 나타냅니다. 다음으로, 각각의 실제 범주와 예측 범주를 사용하여 혼동행렬을 계산하고 위에서 정의한plot_confusion_matrix() 함수를 사용하여 혼동행렬을 표현해야 합니다.

4. 요약

Python 언어는 데이터 과학자와 연구자가 딥 러닝과 인공 지능 데이터 분석을 더 빠르게 수행할 수 있는 수많은 시각화 및 데이터 분석 라이브러리를 제공합니다. 이 기사에서는 혼동 행렬과 그 응용 프로그램을 소개하고, Python에서 혼동 행렬을 계산하는 방법과 matplotlib 라이브러리를 사용하여 혼동 행렬의 그래픽을 생성하는 방법을 소개합니다. 혼동행렬 기술은 딥러닝과 인공지능 분야에서 중요한 응용분야를 갖고 있으므로, 혼동행렬 기술을 배우는 것이 매우 필요합니다.

위 내용은 Python의 혼동 행렬 트릭의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
파이썬 어레이에서 수행 할 수있는 일반적인 작업은 무엇입니까?파이썬 어레이에서 수행 할 수있는 일반적인 작업은 무엇입니까?Apr 26, 2025 am 12:22 AM

PythonArraysSupportVariousOperations : 1) SlicingExtractsSubsets, 2) 추가/확장 어드먼트, 3) 삽입 값 삽입 ATSpecificPositions, 4) retingdeletesElements, 5) 분류/ReversingChangesOrder 및 6) ListsompectionScreateNewListSbasedOnsistin

어떤 유형의 응용 프로그램에서 Numpy Array가 일반적으로 사용됩니까?어떤 유형의 응용 프로그램에서 Numpy Array가 일반적으로 사용됩니까?Apr 26, 2025 am 12:13 AM

NumpyArraysareSentialplosplicationSefficationSefficientNumericalcomputationsanddatamanipulation. Theyarcrucialindatascience, MachineLearning, Physics, Engineering 및 Financeduetotheiribility에 대한 handlarge-scaledataefficivally. forexample, Infinancialanyaly

파이썬의 목록 위의 배열을 언제 사용 하시겠습니까?파이썬의 목록 위의 배열을 언제 사용 하시겠습니까?Apr 26, 2025 am 12:12 AM

UseanArray.ArrayOveralistInpyThonWhendealingwithhomogeneousData, Performance-CriticalCode, OrinterFacingwithCcode.1) HomogeneousData : ArraysSaveMemorywithtypepletement.2) Performance-CriticalCode : arraysofferbetterporcomanceFornumericalOperations.3) Interf

모든 목록 작업은 배열에 의해 지원됩니까? 왜 또는 왜 그렇지 않습니까?모든 목록 작업은 배열에 의해 지원됩니까? 왜 또는 왜 그렇지 않습니까?Apr 26, 2025 am 12:05 AM

아니요, NOTALLLISTOPERATIONARESUPPORTEDBYARRARES, andVICEVERSA.1) ArraySDONOTSUPPORTDYNAMICOPERATIONSLIKEPENDORINSERTWITHUTRESIGING, WHITHIMPACTSPERFORMANCE.2) ListSDONOTEECONSTANTTIMECOMPLEXITEFORDITITICCESSLIKEARRAYSDO.

파이썬 목록에서 요소에 어떻게 액세스합니까?파이썬 목록에서 요소에 어떻게 액세스합니까?Apr 26, 2025 am 12:03 AM

ToaccesselementsInapyThonlist, 사용 인덱싱, 부정적인 인덱싱, 슬라이스, 오리 화.

어레이는 파이썬으로 과학 컴퓨팅에 어떻게 사용됩니까?어레이는 파이썬으로 과학 컴퓨팅에 어떻게 사용됩니까?Apr 25, 2025 am 12:28 AM

Arraysinpython, 특히 비밀 복구를위한 ArecrucialInscientificcomputing.1) theaRearedFornumericalOperations, DataAnalysis 및 MachinELearning.2) Numpy'SimplementationIncensuressuressurations thanpythonlists.3) arraysenablequick

같은 시스템에서 다른 파이썬 버전을 어떻게 처리합니까?같은 시스템에서 다른 파이썬 버전을 어떻게 처리합니까?Apr 25, 2025 am 12:24 AM

Pyenv, Venv 및 Anaconda를 사용하여 다양한 Python 버전을 관리 할 수 ​​있습니다. 1) PYENV를 사용하여 여러 Python 버전을 관리합니다. Pyenv를 설치하고 글로벌 및 로컬 버전을 설정하십시오. 2) VENV를 사용하여 프로젝트 종속성을 분리하기 위해 가상 환경을 만듭니다. 3) Anaconda를 사용하여 데이터 과학 프로젝트에서 Python 버전을 관리하십시오. 4) 시스템 수준의 작업을 위해 시스템 파이썬을 유지하십시오. 이러한 도구와 전략을 통해 다양한 버전의 Python을 효과적으로 관리하여 프로젝트의 원활한 실행을 보장 할 수 있습니다.

표준 파이썬 어레이를 통해 Numpy Array를 사용하면 몇 가지 장점은 무엇입니까?표준 파이썬 어레이를 통해 Numpy Array를 사용하면 몇 가지 장점은 무엇입니까?Apr 25, 2025 am 12:21 AM

Numpyarrayshaveseveraladvantagesstandardpythonarrays : 1) thearemuchfasterduetoc 기반 간증, 2) thearemorememory-refficient, 특히 withlargedatasets 및 3) wepferoptizedformationsformationstaticaloperations, 만들기, 만들기

See all articles

핫 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는