인프런 커뮤니티 질문&답변

김석종님의 프로필 이미지
김석종

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

다중분류 확률값 제출에 대해서 질문드립니다!

해결된 질문

작성

·

246

0

안녕하세요 선생님 계속 질문드려서 죄송합니다. 다름이 아니라 pred_proba를 test 데이터에 적용하고 제출할때 오류가 발생해서 질문드립니다.

y_val_dumm = pd.get_dummies(y_val)
pred_proba = model.predict_proba(X_val)
print(roc_auc_score(y_val_dumm, pred_proba, multi_class = 'ovo'))

####마지막 제출!!
pred_proba = model.predict_proba(test)
pd.DataFrame({'id':test_id,
              'Seg':pred_proba})

"Per-column arrays must each be 1-dimensional" 오류가 발생합니다. pred_proba의 컬럼을 지정 안해줘서 그런거 같은데 마지막 제출은 어떻게 해야 하나요??

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

좋은 지적해주셨어요! 다중분류 확률은 출제 가능성은 낮지만 나온다면

각 클래스에 대한 확률을 각각의 컬럼으로 만들어야 합니다. 예를 들어, 클래스가 A, B, C 세 가지라면 A에 대한 확률, B에 대한 확률, C에 대한 확률을 각각의 컬럼으로 만들어야 해요

반복문을 사용하는 방법도 있지만 단순하게는 이런식으로 될 수 있겠네요!

각 클래스의 확률을 데이터프레임의 컬럼으로 만들기
pred_proba = model.predict_proba(test)

result_df = pd.DataFrame()
result_df['id'] = test_id #test_id라는 변수에는 test 데이터의 id가 있다는 가정
result_df['prob_class_0'] = pred_proba[:, 0]
result_df['prob_class_1'] = pred_proba[:, 1]
...(컬럼의 수 만큼)
김석종님의 프로필 이미지
김석종
질문자

감사합니다!!

김석종님의 프로필 이미지
김석종
질문자

pred_proba = model.predict_proba(test)

pd.DataFrame({

             'id':test_id,

	     'pred_1':pred_proba[:,0],

	     'pred_2':pred_proba[:,1],

             'pred_3':pred_proba[:,2]
}).to_csv('11111.csv', index = False)

이런 식으로 제출하면 되는건가요??

김석종님의 프로필 이미지
김석종

작성한 질문수

질문하기