불균형 학급의 실적 평가

불균형 데이터는 하나의 종류나 종류의 견본이 비교적 많고 모든 다른 종류의 견본이 비교적 적은 데이터를 가리킨다.이것은 기계 학습의 분류 문제다.기계 학습을 감독하는 데 있어서 분류는 해결해야 할 중요한 문제 중의 하나이다.그것은 기본적으로 두 가지 유형으로 나뉘는데 그것이 바로 이원분류와 다류분류이다.이원 분류에서 견본은 두 종류로 나뉘는데 그것이 바로 기계 학습 용어 중의 종류이다.분류는 예측 데이터가 샘플에 집중된 라벨(특징과 라벨이 있는 데이터 집합)을 의미한다.2치 분류의 간단한 예는 이미지가 개인지 고양이인지 식별하는 것이다.다종류 분류의 예는 이미지 식별 숫자를 바탕으로 하고 이미지는 각 숫자를 대표하는 10개의 종류를 포함한다.
대부분의 현실 장면에서 불균형 데이터가 자주 나타난다. 예를 들어 스팸메일 검출 상황에서 스팸메일 유형의 전자메일은 매우 적고 암 검출 상황에서 암 유형의 전자메일은 매우 적기 때문에 정확도(즉 정확하게 예측한 유형과 샘플 총수의 비율)는 불균형 데이터 집합의 성능 평가에 사용할 수 없다.이러한 상황을 설명하는 한 예는 만약에 우리가 스팸메일과 스팸메일이 아닌 전자메일을 포함하는 데이터 집합을 가지고 있다면 전자메일의 총수가 1000이고 스팸메일 수량이 10이라면 모델이 모든 견본이 스팸메일이 아닌 것으로 예측한다면 모델의 정확도는 99.90%가 될 것이다.따라서 정확도는 이 데이터 집합 모델의 성능을 잘 평가하지 못한다.우리는 불균형 데이터 집합의 모델을 평가하기 위해 다른 성능 지표가 필요하다.
불균형 데이터 집합을 바탕으로 하는 모델의 일부 성능 지표는 다음과 같다-
  • 정밀도
  • 리콜
  • 특이성
  • F1 성적
  • 기하 평균수
  • 지수 균형 정밀도
  • 이러한 성능 지표를 이해하기 위해서 우리는 먼저 몇 가지 용어를 이해해야 한다.이들 용어는 진양성(TP), 진음성(TN), 가양성(FP), 가음성(FN)이다.
    진정으로 정류가 정확하게 예측되는 것을 의미하고, 진음은 음류가 정확하게 예측되는 것을 의미한다.실제 유형이 플러스이고 마이너스로 예측되면 가짜 마이너스라고 한다.실제 클래스가 마이너스이고 예측 클래스가 플러스라면 가양성이라고 한다.다음 표에서 관련 총결을 제시하였다.
    예측 양성
    음성 예측
    실제 정수
    트루 양성(TP)
    가음성(FN)
    실제 음수
    가짜 양성(FP)
    진음성(TN)
    또한 TP, TN, FP 및 FN을 설명하는 이미지가 아래에 나와 있습니다.

    정확성


    그것은 정확하게 예측하는 적극류와 적극예측류 총수의 비율이다.정밀도를 계산하는 공식은

    Precision = TP/(TP+FP)


    회상


    추억도 민감도와 진양성률이라고 한다.그것은 정확하게 예측한 정류와 전체 실제 정류의 비율이다.리콜의 공식은

    Recall = TP/(TP+FN)


    특이성


    그것도 진음성률이라고 불린다.그것은 정확하게 예측된 부정 유형과 실제 부정 유형 총수의 비율이다.특이성의 공식은

    Specificity = TN/(TN+FP)


    F1 성적


    F1 점수는 정확성과 리콜율의 조화 평균치다.F1 성적의 공식은요.

    F1-score = 2*Precision*Recall/(Precision+Recall)


    기하 평균수


    기하 평균치는 리콜율과 특이성 곱셈의 제곱근이다.기하 평균수의 공식은

    Geometric Mean = √(Recall*Specificity) or Geometric Mean = √(True Positive Rate * True Negative Rate)


    지수 평형 정밀도


    이것은 실적을 평가하는 새로운 지표다.우선 우위도, 즉 진양성률과 진음성률의 차이를 계산한다.공식은 Dominance = Recall-Specificity입니다.우세도의 값은 권중 α를 부여받는다.지수 평형 정밀도(IBA)는 공식IBA = (1 + α*Dominance)(GMean²)이다.요컨대 이렇다

    IBA = (1 + α*(Recall-Specificity))*(Recall*Specificity)


    Python의 imbalanced learn 라이브러리는 이 모든 지표를 제공하여 불균형류의 성능을 평가한다.다음과 같이 가져올 수 있습니다
    from imblearn import metrics
    
    다음과 같이 다른 측정 값을 찾는 코드 예가 있습니다.
    y_true = [1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2]
    y_pred = [1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2]
    target_names = [ 'class 1', 'class 2'] 
    result = metrics.classification_report_imbalanced(y_true, y_pred, target_names=target_names)
    print(result)
    

    출력



    여기pre는 정밀도,rec는 추억,spe는 특이성,f1은 f1분수,geo는 기하 평균수,iba는 지수 균형 정밀도,sup는 지원.IBA의 경우 α의 기본값은 0.1입니다.

    좋은 웹페이지 즐겨찾기