인프런 커뮤니티 질문&답변
score함수 인자에 들어갈 array 차원 형태
작성
·
581
0
안녕하세요! 강사님 강의 중 분류 섹션들으면서 개인적으로 다른 데이터에 적용해보는 과정을 거치고 있습니다. 그런데 자꾸 이해가 되지 않는 오류가 떠서 강사님께 질문드립니다..! 우선 제가 인풋으로 집어넣을 데이터 형태는 다음과 같습니다. 예측하려는 값인 Category변수 제외하고 나머지 변수들을 sklearn의 label encoding한 상태입니다.. 그리고 100번 cell에서 학습까지 진행하는데는 문제가 없었습니다만 score 로 실제값과 예측값의 정확도를 보려고 했는데...

다음과 같은 오류가 떴습니다..

그래서 score인자에 들어가는 객체 두개의 array 차원이 서로 다른 것 같아서 reshape으로 (-1,1)형태로 동일하게 바꿔주고
score를 다시 돌려보았는데 이번엔 feature 개수가 다르다고 합니다...이게 무슨 뜻인가요..? stackoverflow를 검색해서 구글링을 해보아도 해결이 안되서... 너무 답답해 질문 남깁니다.. 혹시라도 제가 업로드해드린 사진들 이외에 다른 정보가 필요하시면 답변달아주시면 제가 코드 전문을 올려드리거나 하겠습니다...! 감사합니다 :)

그리고 저번에도 질문드렸던 것과 관계가 있는데 예측값과 실제값을 비교하는 함수인 score나 accuracy_score 등 이런 함수들 인자에 들어갈 객체들 서로 array 차원수를 필수적으로 맞춰줘서 넣어주어야 하나요..? accuracy_score은 강사님께서 자동으로 바꿔주어 비교를 해준다고 하셨는데 다른 함수들도 그런건지... 너무 헷갈리네요 ㅜㅜ
답변 2
0
0
안녕하십니까,
기본적으로 evaluation function 의 y_true, y_pred는 서로 차원이 같아야 합니다. 강제로 맞춰줄 뿐 차원이 같아야 하는 것은 기본으로 정해 주시는게 좋습니다.
그리고 제가 score() 는 잘 써보지 않았습니다. 굳이 accuracy_score()가 있는데 estimator의 score() 메소드를 쓰실 필요는 없으실것 같습니다(score() 메소드는 잘 사용되지 않습니다)
또한 pred_y.shape, test_y.shape로 shape를 먼저 조사해 주십시요. 만약 1차원 배열로 되어 있으면 reshape(1, -1)로 변경 하신후 다시 테스트 해보시기 바랍니다.
감사합니다.





