범주형 값의 KNN 대치
DataFrame의 모든 범주형 열이 서열형 값으로 변환되면, DataFrame을 대치할 준비가 된 것입니다. K-Nearest Neighbors (KNN) 같은 통계적 모델을 사용해 대치하면 더 나은 결과를 얻을 수 있어요.
이 연습 문제에서는 다음을 수행합니다.
fancyimpute의KNN()함수를 사용해 서열형으로 인코딩된 DataFrameusers의 결측치를 대치하세요.- 서열형 값을 ordinal encoder의
.inverse_transform()메서드를 사용해 원래 범주로 되돌리세요.
기억하세요, ordinal_enc_dict에는 각 열에 대한 sklearn의 OrdinalEncoder()가 저장되어 있습니다.
users DataFrame에는 각 열의 인코딩된 값(서열형 값)이 저장되어 있습니다.
KNN() 함수, OrdinalEncoder()들의 딕셔너리 ordinal_enc_dict, 그리고 users DataFrame은 이미 로드되어 있습니다.
이 연습은 강의의 일부입니다
Python에서 결측치 다루기
연습 안내
KNN_imputer의fit_transform()메서드를 사용해usersDataFrame을 대치하세요. 변환된 값은 반올림하여 정수로 만듭니다.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] = ___