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

jangty0님의 프로필 이미지
jangty0

작성한 질문수

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

5-2 강의 내용 관련 질문있습니다.

해결된 질문

작성

·

179

1

안녕하세요. 선생님.

5-2 강의 내용 중 잘 이해가 되지 않는 것이 있어 질문드립니다.

train.nunique()를 통해 나타난 컬럼 중 name, host_name, last_review, host_id 데이터를 삭제하신 이유가 궁금합니다.

nunique()함수는 그 컬럼값 중 고유값이 몇 종류나 되는지 알려주는 것으로 알고 있는데, 그 값과 결측치의 개수가 서로 상관이 있어서 그런것인가요?

가령, name같은 데이터는 강의에서 거의 전체 데이터 개수와 nunique함수를 통해 나타난 개수가 별로 차이가 나지 않을 만큼 많기에 지운다고 말씀하셨는데, 이 부분이 잘 이해되지 않습니다.

 

답변 1

1

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

안녕하세요!
1. 우선 베이스라인은 결측치가 있거나 다루기 어려운 데이터는 삭제하고 (간단하게 처리) -> 모델 성능을 확인한 후 -> 시험에서 1차 제출
2. 데이터 전처리를 다시 한 후 -> 2차 제출
할 수 있을 것 같아요.

베이스라인에서
- name과 host_id는 모두 다른 값으로 보여서 삭제했어요 데이터가 100개일 때 그 종류(카테고리)가 100개에 가깝다면 모두 다른 값으로 유의미한 피처가 아니라 판단했어요!

- host_name 도 종류가 9000개로 name처럼 종류가 많아 삭제 했어요. 만약 사용한다면 원핫인코딩은 어려울 것 같고 레이블 인코딩이 적절해보여요.

- last_review는 날짜 데이터입니다. 결측치가 없었으면 쉽게 년도, 월, 일로 구분해서 파생변수로 만들어 주면 좋은데 결측치가 2000개 정도 있는 데이터라서 삭제했습니다.
train에만 있었다면 전처리를 행(레코드)삭제로 쉽게 살릴 수 있지만 test에도 있어서 test데이터는 행(레코드)삭제가 불가합니다. 따라서 어떻게 채울지 고민이 필요한 부분이라 일단 삭제했습니다.

그리고
결측치가 없을 경우 host_id와 같이 숫자면 삭제하지 않아도 됩니다 -> 모델이 자체적으로 중요도를 낮게 생각해요 :)
단 문자면 인코딩이 필요해요


합격 응원합니다 🍭

jangty0님의 프로필 이미지
jangty0
질문자

친절한 답변 감사합니다!

같은문제 궁금한게 있어서 답글남깁니다!

name과 host_id이 모두 다른 값으로 보여서 삭제하셨다고 했는데

info함수와 nunique함수를 보고 판단하는건가요?

 

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

nunique 또는 df['컬럼명'].value_counts()를 보고 확인할 수 있을 것 같아요 !!! 화이팅입니다!

jangty0님의 프로필 이미지
jangty0

작성한 질문수

질문하기