티스토리 뷰

반응형

목표

결측치의 정의 설명

결측치의 발생 원인 설명

파이썬을 활용하여 결측치 처리

 

결측치

데이터가 수집되지 않거나 누락되어 정보가 존재하지 않는 값.

결측치가 포함된 데이터는 모델 학습이 불가능(결측치 자체를 하나의 카테고리로 보는 경우 제외)

되도록 사전에 반드시 결측치 처리

 

결측치 발생 원인

 

대부분 수집 및 관리 과정에서 결측치가 발생한다.

미수집 - 미 입력된 데이터

시스템 오류 - 오류에 의해 누락(장치, 센서 오류)

신규 항목 - 새롭게 수집 및 저장하는 항목의 추가

 

결측치 처리 방안

 

제거하거나 대체하는 방법이 있다.

 

제거 : 가장 쉽지만 데이터 손실

대체: 최대한 많은 데이터를 활용하지만 편향 발생

*필자 추가 : 결측치 자체를 하나의 카테고리로 보는 방법도 있다. 결측치가 다른 값들에 비해 너무 많고, 분류 카테고리가 많은 경우 사용

 

결측치 제거하기

Listwise deletion - dropna()다.

결측치가 하나라도 있으면 그 행 전체를 삭제

 

Pairwise deletion - dropna(how = 'all') 

그 행이 전부 결측이면 그 행을 삭제

 

Listwise 방식을 고려할 때는 전체 데이터 레코드 수와, 결측치 데이터 레코드 수를 고려해야 한다.

즉, 데이터가 충분히 크다고 판단해야 한다.

 

결측치 대체하기

정보의 손실을 방지하나 변수 특성(평균, 상관관계 등)에 의해 영향 발생

 

일정 값 대체 - .replace를 활용한다.

ex ) 결측치를 각 변수의 평균값으로 대체한다.

관련 사전지식을 바탕으로 어떤 값으로 대체 할 건지 결정

 

선형 값 대체 - .interpolate()를 사용한다.

선형 함수 기반으로 앞뒤 관측치를 활용해서 대체한다.

 

선형 값 대체의 기준은 앞 뒤 컬럼의 선형성(수치해석)을 고려하여 대체한다고 생각하면 된다.

실제 데이터 성격과 도메인 지식을 활용해야 한다.

반응형