DataFrame의 서열형(Ordinal) 인코딩
범주형 특성은 주로 원-핫 인코딩과 서열형(ordinal) 인코딩 두 가지 방법으로 인코딩할 수 있어요. 원-핫 인코딩에서는 각 범주가 하나의 열이 되며, 각 행에서 해당 범주 열은 1, 나머지는 0이 됩니다. 서열형 인코딩에서는 범주를 0부터 범주 수만큼의 정수 값으로 매핑해요.
이 연습 문제에서는 users DataFrame의 모든 열을 순회하면서 서열형 인코딩을 적용하겠습니다. 또한 각 열에 대한 인코더를 딕셔너리 ordinal_enc_dict에 저장해, 인코딩된 열을 원래 범주로 되돌릴 수 있도록 할 거예요.
이 연습은 강의의 일부입니다
Python에서 결측치 다루기
연습 안내
- 빈 딕셔너리
ordinal_enc_dict를 정의하세요. - 각 열마다 Ordinal Encoder 객체를 생성하세요.
- users에서 해당 열의 null이 아닌 값만 선택해 인코딩하세요.
- 인코딩한 값을 users의 각 열(
col_name)에서 null이 아닌 위치에 다시 할당하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)