머신러닝 파이썬

결측치 대처법 - KNNImputer로 데이터셋의 빈칸 채우기

fast learner 2023. 5. 2. 15:19

안녕하세요, 여러분! 오늘은 데이터 전처리 과정 중 결측치를 다루는 데 도움이 되는 KNNImputer에 대해 알아보겠습니다. 때로는 데이터셋에서 결측치가 발생할 수 있습니다. 이러한 결측치를 처리하는 방법 중 하나로 KNNImputer를 사용하여 이웃 값들의 평균으로 채울 수 있습니다.

먼저 아래 코드를 살펴봅시다.

 

import numpy as np
from sklearn.impute import KNNImputer

# 예제 데이터 생성
data = {'A': [1, 2, np.nan, 4, 5],
        'B': [6, np.nan, 8, 9, 10],
        'C': [11, 12, 13, np.nan, 15],
        'D': [16, 17, 18, 19, 20]}

df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)

imputer = KNNImputer()
df_filled = imputer.fit_transform(df)
print(type(df_filled))
print(df_filled)
df_filled=pd.DataFrame(df_filled, columns=df.columns)

결과

Original DataFrame:
     A     B     C   D
0  1.0   6.0  11.0  16
1  2.0   NaN  12.0  17
2  NaN   8.0  13.0  18
3  4.0   9.0   NaN  19
4  5.0  10.0  15.0  20
<class 'numpy.ndarray'>
[[ 1.    6.   11.   16.  ]
 [ 2.    8.25 12.   17.  ]
 [ 3.    8.   13.   18.  ]
 [ 4.    9.   12.75 19.  ]
 [ 5.   10.   15.   20.  ]]

 

이 코드는 다음 단계를 수행합니다:

  1. 필요한 라이브러리를 임포트합니다.
  2. 결측치가 포함된 예제 데이터를 생성합니다.
  3. KNNImputer 객체를 생성합니다. 기본값은 k=5입니다.
  4. fit_transform() 함수를 사용하여 결측치를 대체하고, 결과를 NumPy 배열로 반환합니다.
  5. 반환된 NumPy 배열을 다시 DataFrame으로 변환합니다.

이 코드를 실행하면, 결측치가 포함된 원본 DataFrame에서 결측치가 이웃 값들의 평균으로 대체된 새로운 DataFrame이 생성됩니다. 이렇게 간단한 방법으로 결측치를 처리할 수 있습니다.

KNNImputer를 사용하면, 데이터셋의 결측치를 대체하는 데 도움이 되는 부드러운 처리 방법을 손쉽게 적용할 수 있습니다. 이 글이 여러분의 데이터 전처리 과정에 도움이 되길 바랍니다. 다음 글에서 또 만나요!

728x90
반응형