본문 바로가기

Programming/Python

[sklearn] Target is multiclass Error 해결

728x90
반응형

모델의 precision 성능을 확인하려고 sklearn.metrics 라이브러리에서 제공하는 precision_score 함수에서 이런 에러를 만났다!

ValueError: Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted'].

이럴 때는 역시 바로 공식 문서를 보는게 최고다.

 

sklearn.metrics.precision_score

Examples using sklearn.metrics.precision_score: Probability Calibration curves Probability Calibration curves, Precision-Recall Precision-Recall,

scikit-learn.org

 

precision_score 함수에는 파라미터로 "average"이라는 값이 존재한다.

이 파라미터는 multiclass/multilabel targets에 대해 계산할 때 필요한 값이다.

만약 값을 주지 않으면 기본적으로 binary targets에 대해 계산하는 것!

나같은 경우 movielens 데이터셋을 사용했고, 1~5까지의 multiclass targets이므로 에러가 난 것이다.

 

average에 줄 수 있는 값으로는 micro, macro,, samples, weighted, binary가 있다. (default = binary)

 

1) micro : 전체 true positives, false negatives, false positives에 대해서 전체적으로 계산

2) macro : 각 라벨에 대해서 계산하여 평균

3) weighted : 각 라벨에 대해서 계산하되 불균형 문제에 대해 가중치 값 부여

 

공식 문서를 참고해서 필요한 속성을 사용하면 될 것 같다!

728x90
반응형