🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    자격증 (데이터 사이언스)

  • 해결 여부

    해결됨

작업형2 유의사항

23.06.21 12:46 작성 조회수 323

1

안녕하세요 강사님

작업형2유형 유의사항에

평가용 데이터 개수와 예측 결과 데이터 개수 불일치시 0점이라 되어있는데요.

 

  1. train.shape, test.shape 찍었을때 만약

    (712,7) (179,7) 오 나왔다면

    여기서( 712,7)이랑 (179,7)에서 컬럼이 7로 같으니까 개수가 위 주의사항에서의 데이터 개수가 일치한다고 보는건가요? 데이터 개수라는게 어떤걸 의미하고 이것이 일치하는지를 어떻게 확인할수있나요?

  2. 만약 roc_auc_score등으로 평가지표가 산출이된다면 제출할때 데이터개수 불일치로 인해 0점맞을 걱정은 안해도되는건가요?

저기 주의사항에 있는 데이터개수 불일치라는게 정확히 뭘 의미하고 어떻게 확인하는지를 모르겠네요ㅠㅠ

 

답변 1

답변을 작성해보세요.

1

  1. 컬럼이 아닌 행의 개수를 의미 합니다. 예를들어 test데이터의 행이 100개였는데 수험생이 결측치/이상치를 처리한다고 train데이터에서 삭제하는 것은 괜찮은나 test데이터를 20개를 삭제했을 때 80개만 남았어요. 이상태로 예측하면 예측값도 80개 입니다. 0점 처리 됩니다.

  2. 평가 지표와 데이터 개수 불일치는 관련이 없습니다.

    데이터 전처리에서 문제가 발생합니다.

김태범님의 프로필

김태범

질문자

2023.06.21

아 컬럼이 아닌 행의 개수를 뜻하는거군요.

그럼 시험장에서

import pandas as pd

train = pd.read_csv("train.csv")
test =  pd.read_csv("test.csv")
print(train.shape, test.shape)
#(242, 15) (61, 14) 

하고나서

코딩을 전부 진행한 이후 마지막에

pd.DataFrame({'id':test_id, 'output':pred_proba[:,1]}).to_csv("00000.csv", index=False)
print(train.shape, test.shape)
#(242, 14) (61, 13)

예를들어 첫 코드블럭과 같이 코드시작할때 print(train.shape, test.shape)의 결과값과

두번째 코드블럭과 같이csv 파일을 저장하고나서 print(train.shape, test.shape)을 비교할때

(242, 15) (61, 14) 
(242, 14) (61, 13)

이런식으로 컬럼개수는 다를지라도 처음 주어졌을때의 train, test 데이터와 마지막에 전처리 다 끝나고 train, test의 "행"개수(train은 242로 동일, test는 61로 동일)이 같다면 0점받을 일은 없는건가요?

컬럼은 원핫인코딩하면 늘어날 수도 있습니다.
train 행은 삭제되어도 괜찮습니다.
test 행은 삭제되면 절대!!!! 안됩니다.

 

전처리 후 행의 개수를 파악해도 되지만

더 정확히는 예측하고 제출한 csv 파일을 확인해야죠!!

pd.read_csv("0000.csv").shape 에서 행의 개수가 61개가 맞는지 확인해 주세요!!

 

채널톡 아이콘