인프런 커뮤니티 질문&답변
결측치 그냥 최빈값으로 채우는게 무난할까요?
해결된 질문
작성
·
21
0
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요
먼저 유사한 질문이 있었는지 검색해보세요
연습문제 섹션4
결측치 채우기
아래와 같이 때려넣어도됩니까?
a = train['gender'].mode()[0]
train['gender'] = train['gender'].fillna(a)
b = train['enrolled_university'].mode()[0]
train['enrolled_university'] = train['enrolled_university'].fillna(b)
c = train['education_level'].mode()[0]
train['education_level'] = train['education_level'].fillna(c)
d = train['major_discipline'].mode()[0]
train['major_discipline'] = train['major_discipline'].fillna(d)
e = train['experience'].mode()[0]
train['experience'] = train['experience'].fillna(e)
f = train['company_size'].mode()[0]
train['company_size'] = train['company_size'].fillna(f)
g = train['company_type'].mode()[0]
train['company_type'] = train['company_type'].fillna(g)
h = train['last_new_job'].mode()[0]
train['last_new_job'] = train['last_new_job'].fillna(h)
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 봉동개미님.
결측치를 채우는 방법 중 하나로 최빈값을 사용하는 방법에 대해 질문해주셨네요. 최빈값을 이용해 결측치를 채우는 것은 일반적인 접근 방법 중 하나로, 특히 명목형 데이터(예: ‘gender’, ‘enrolled_university’ 등)에서 자주 사용됩니다. 최빈값은 해당 칼럼에서 가장 많이 나타나는 값이기 때문에, 데이터의 특성을 가장 잘 반영할 수 있습니다.
최빈값을 이용한 결측치 처리
명목형 데이터에서는 대체로 최빈값을 사용하여 결측치를 채웁니다. 이는 해당 변수가 특정 값에 대한 선호도가 있다는 가정을 기반으로 합니다.
코드 방식: 현재 예시대로 각 컬럼의 최빈값을 구하고 해당 값으로 결측치를 채우는 접근은 매우 일반적이며, 적절한 방법입니다. 코드를 사용한 방법은 다음과 같은 절차를 따릅니다:
a = train['gender'].mode()[0]
train['gender'] = train['gender'].fillna(a)
여기서 mode() 함수는 최빈값을 반환하고, [0]을 사용하여 최빈값 리스트 중 첫 번째 값을 선택합니다. 각 컬럼에 대해 동일한 접근 방식을 적용할 수 있습니다.
유의점
일관성: 최빈값을 사용하여 결측치를 채우는 경우, 훈련 데이터와 테스트 데이터 모두에 대해 같은 접근 방식을 취하는 것이 중요합니다. 훈련 데이터에서 최빈값을 사용하여 테스트 데이터의 결측치도 일관되게 채우는 것이 좋습니다.
데이터 누수 방지: 훈련 데이터에서의 통계값만을 이용하여 테스트 데이터의 결측치를 채우는 방식은 데이터 누수를 방지할 수 있습니다. 따라서, 데이터 누수가 없도록 훈련 데이터의 통계를 기준으로 한 일관된 결측치 처리 방법을 적용하는 것이 권장됩니다.
유사한 설명과 질문으로는 다음과 같은 것이 있습니다:
- 데이터 전처리에서 최빈값으로 결측치를 채우는 방법: 여기에서는 최빈값과 데이터 누수의 개념에 대해 더 깊이 있는 설명이 제공됩니다.
이 설명이 봉동개미님의 질문 해결에 도움이 되길 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





