My Data Story
[분류] 다중 레이블 분류, 다중 출력 분류 본문
728x90
◈ '분류' 목차 ◈
5. 다중 레이블 분류, 다중 출력 분류
다중 레이블 분류, 다중 출력 분류에 대한 정의와 방법에 대해 알아본다.
1. 다중 레이블 분류
분류기가 샘플마다 여러 개의 레이블에 대해 출력해야 할 때도 있다.
예를 들어
얼굴 인식 분류기는 사진 속 여러 얼굴에 대해 각각 레이블을 출력해야 한다.
분류기가 앨리스, 밥, 찰리 세 얼굴을 인식하도록 훈련이 되어 있을 때,
사진에 앨리스와 찰리의 얼굴이 있다면 [1,0,1] 로 출력할 것이다.
from sklearn.neighbors import KNeighborsClassifier
#여러 레이블 생성
y_train_large = (y_train >=7)
y_train_odd = (y_train % 2 == 1)
y_multilabel = np.c[y_train_large, y_train_odd]
#다중 레이블 모델 생성
#KNeighborsClassifier는 다중 레이블 분류 지원하지만, 모든 분류기가 지원하는 것은 아님!
knn_clf = KNeighborsClassifier()
#여러 레이블에 학습
knn_clf.fit(X_train, y_multilabel)
#여러 레이블에 예측
knn_clf.predict([some_digit])
y_train_pred = cross_val_predict(knn_clf, X_train, y_multilabel, cv=3)
#모델 성능 측정
#average='macro' : 모든 레이블의 가중치 동일하게 설정해 평균낸다.
#average='weighted' : 각 레이블의 샘플 수에 따라 가중치를 설정하여 평균낸다.
#average='micro' : 레이블 별 성능 지표를 모두 더한다.
f1_score(y_multilabel, y_train_pred, average='macro')
2. 다중 출력 분류
다중 레이블 분류에서 한 레이블이 다중 클래스가 될 수 있도록 일반화 한 것 이다.
예를 들어
이미지에서 잡음을 제거하는 시스템을 만들 때,
분류기의 출력은 다중 레이블(픽셀당 한 레이블)이고 각 레이블은 값을 여러 개 가질 수 있다. (0~255 픽셀값)
위 예시 처럼, 분류와 회귀 사이의 경계는 때때로 모호하다.
픽셀 강도 예측은 분류보다 회귀와 비슷하다.
더욱이 다중 출력 시스템이 분류 작업에 국한되지 않는다.
그래서 샘플마다 클래스와 값을 모두 포함하는 다중 레이블이 출력되는 시스템도 가능하다.
'Machine Learning > 2. 지도 학습 알고리즘' 카테고리의 다른 글
[분류] K 최근접 이웃(KNN) (0) | 2021.08.09 |
---|---|
[분류] 모델 평가 (0) | 2021.08.07 |
[분류] 소프트맥스 회귀 (0) | 2021.08.06 |
[분류] 로지스틱 회귀 (0) | 2021.08.06 |
[분류] 선형판별분석(LDA) (0) | 2021.08.06 |