• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

sentiment 가 0과 1이 아닌 1~5점 일 경우?

20.07.01 23:13 작성 조회수 542

1

안녕하세요. 좋은 강의 감사드립니다. 

코드를 따라가며 실행해보고 있는데 , sentiment 값이 0과 1이 아닌 5점척도 인 경우 어느 부분일 수정해야하는지요?

우선 아래의 코드 실행시 아래와 같은 오류가 발생합니다. 

from sklearn.model_selection import cross_val_score

%time score = np.mean(cross_val_score(\
    forest, train_data_features, \
    train['rating'], cv=10, scoring='roc_auc'))
score
=> error : multiclass format is not supported
강의 전체가 0과 1인 경우만을 기준으로 진행되는데 5점척도인 경우 차원이 많아져 분석이 어려운 건지요?
감사합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요.

보통 분류를 할 때 0,1 둘 중에 하나로 분류를 하면 binary  classification 이라고 하는데요. 

미리 정의된 roc_auc 는 주로 binary 에 사용을 해요.

질문 주신 내용을 class가 5개인 경우인데요.

아래의 방법으로 레이블을 binarizer 해서 사용하는 방법을 사용해 보시면 될거 같아요.

아래 함수를 주피터 노트북에 써주시고 scoring='roc_auc' 대신에  scoring=multiclass_roc_auc_score 로 사용해 보세요.

def multiclass_roc_auc_score(y_test, y_pred, average="macro"):lb = LabelBinarizer()
lb.fit(y_test)
y_test = lb.transform(y_test)
y_pred = lb.transform(y_pred)
return roc_auc_score(y_test, y_pred, average=average)

또, 아래의 링크를 참고해 보세요!

[AUC ROC Curve Scoring Function for Multi-class Classification](https://medium.com/@plog397/auc-roc-curve-scoring-function-for-multi-class-classification-9822871a6659)