시작하기무료로 시작하기

범주형 값의 KNN 대치

DataFrame의 모든 범주형 열이 서열형 값으로 변환되면, DataFrame을 대치할 준비가 된 것입니다. K-Nearest Neighbors (KNN) 같은 통계적 모델을 사용해 대치하면 더 나은 결과를 얻을 수 있어요.

이 연습 문제에서는 다음을 수행합니다.

  1. fancyimputeKNN() 함수를 사용해 서열형으로 인코딩된 DataFrame users의 결측치를 대치하세요.
  2. 서열형 값을 ordinal encoder의 .inverse_transform() 메서드를 사용해 원래 범주로 되돌리세요.

기억하세요, ordinal_enc_dict에는 각 열에 대한 sklearnOrdinalEncoder()가 저장되어 있습니다. users DataFrame에는 각 열의 인코딩된 값(서열형 값)이 저장되어 있습니다.

KNN() 함수, OrdinalEncoder()들의 딕셔너리 ordinal_enc_dict, 그리고 users DataFrame은 이미 로드되어 있습니다.

이 연습은 강의의 일부입니다

Python에서 결측치 다루기

강의 보기

연습 안내

  • KNN_imputerfit_transform() 메서드를 사용해 users DataFrame을 대치하세요. 변환된 값은 반올림하여 정수로 만듭니다.
  • users의 열을 순회(iterate)하세요.
  • ordinal_enc_dict에서 해당 열의 OrdinalEncoder()를 선택하고, 재구성된 배열 reshaped에 대해 .inverse_transform()을 수행하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Create KNN imputer
KNN_imputer = KNN()

# Impute 'users' DataFrame. It is rounded to get integer values
users_KNN_imputed.iloc[:, :] = np.round(___)

# Loop over the column names in 'users'
for col_name in ___:
    
    # Reshape the column data
    reshaped = users_KNN_imputed[col_name].values.reshape(-1, 1)
    
    # Select the column's Encoder and perform inverse transform on 'reshaped'
    users_KNN_imputed[col_name] = ___
코드 편집 및 실행