결측치 처리

Python으로 연습하는 Machine Learning 면접 질문

Lisa Stuart

Data Scientist

사전 지식

Python으로 연습하는 Machine Learning 면접 질문

강의 개요

  • 1장: 전처리와 시각화
    • 결측치, 이상치, 정규화
  • 2장: 지도학습
    • 특성 선택, 정규화, 특성 공학
  • 3장: 비지도학습
    • 클러스터 알고리즘 선택, 특성 추출, 차원 축소
  • 4장: 모델 선택과 평가
    • 모델 일반화·평가, 모델 선택
Python으로 연습하는 Machine Learning 면접 질문

머신러닝(ML) 파이프라인

파이프라인 개요

Python으로 연습하는 Machine Learning 면접 질문

우리의 ML 파이프라인

파이프라인

Python으로 연습하는 Machine Learning 면접 질문

결측치

  • 기법별 영향
  • 결측치 탐지
  • 처리 전략
Python으로 연습하는 Machine Learning 면접 질문

기법

  1. 삭제
    • 행 제거 --> .dropna(axis=0)
    • 열 제거 --> .dropna(axis=1)
  2. 대치
    • 0으로 채우기 --> SimpleImputer(strategy='constant', fill_value=0)
    • 평균 대치 -> SimpleImputer(strategy='mean')
    • 중앙값 대치 --> SimpleImputer(strategy='median')
    • 최빈값 대치 --> SimpleImputer(strategy='most_frequent')
    • 반복 대치 --> IterativeImputer()
Python으로 연습하는 Machine Learning 면접 질문

왜 중요할까요?

  • 편향 발생 가능성 줄이기
  • 대부분의 ML 알고리즘은 완전한 데이터 필요
Python으로 연습하는 Machine Learning 면접 질문

대치의 영향

  • 다음에 따라 달라집니다:
    • 결측 비율
    • 원래 분산
    • 이상치 존재 여부
    • 왜도 크기와 방향
  • 삭제 --> 과도한 손실 위험
  • 0 대치 --> 결과가 낮게 치우침
  • 평균 --> 이상치 영향 큼
  • 중앙값 --> 이상치에 더 견고
  • 최빈값/반복 대치 --> 시험해 보십시오
Python으로 연습하는 Machine Learning 면접 질문
함수 반환
df.isna().sum() 결측 개수
df['feature'].mean() 해당 특성 평균
.shape 행·열 크기
df.columns 열 이름
.fillna(0) 결측을 0으로 채움
select_dtypes(include = [np.number] ) 수치형 열
select_dtypes(include = ['object'] ) 문자열 열
.fit_transform(numeric_cols) 학습 후 변환
Python으로 연습하는 Machine Learning 면접 질문

결측치의 영향

ML에서 결측치의 영향은 무엇일까요? 옳은 답을 고르십시오:

  • 결측치는 문제없습니다. 대부분의 sklearn 알고리즘이 처리합니다.
  • 결측치가 있는 관측치나 특성은 보통 제거하는 것이 좋습니다.
  • 결측치는 편향을 유발해 결과를 왜곡하므로 무시할 수 없습니다.
  • 결측치를 0으로 채우면 결과가 높게 치우칩니다.
Python으로 연습하는 Machine Learning 면접 질문

결측치의 영향: 정답

ML에서 결측치의 영향은 무엇일까요? 정답:

  • 결측치는 편향을 유발해 결과를 왜곡하므로 무시할 수 없습니다. (데이터셋 분산에 미치는 영향이 가장 적은 방법을 시험해 채우는 것이 최선입니다.)
Python으로 연습하는 Machine Learning 면접 질문

결측치의 영향: 오답 해설

ML에서 결측치의 영향은 무엇일까요?

  • 결측치는 문제가 아니다... (sklearn의 대부분 알고리즘은 결측치를 못 처리하며 오류가 납니다.)
  • 결측치가 있는 행/열을 제거하면... (데이터가 충분히 크고 결측 비율이 아주 작지 않다면, 행/열 제거는 데이터 손실이 커져 이후 ML에 부적합해집니다.)
  • 결측치를 0으로 채우면 결과가 높아진다. (반대입니다. 0으로 채우면 결과가 낮게 치우칩니다.)
Python으로 연습하는 Machine Learning 면접 질문

Vamos praticar!

Python으로 연습하는 Machine Learning 면접 질문

Preparing Video For Download...