1. Learn
  2. /
  3. Courses
  4. /
  5. PySpark로 하는 Feature Engineering

Connected

Exercise

결측치와 범주형 값을 단순하게 처리하기

Random Forest Regression은 꽤 견고해서 시간이 많이 드는 지루한 데이터 준비 과정을 상당 부분 건너뛸 수 있어요. 일부 Random Forest 구현체는 결측치와 범주형 값을 자동으로 처리하지만, PySpark의 구현체는 그렇지 않아요. 그래도 수학적 원리는 같기 때문에 단순한 값 치환만으로도 충분히 동작합니다.

결측치의 경우, 데이터가 모두 양수이므로 -1을 할당하겠습니다. Random forest는 이 값을 기준으로 분할하여 같은 특성 내의 다른 값들과 구분해 처리합니다.

범주형 값의 경우, 텍스트 값을 숫자로 매핑해 두면 random forest가 이를 기준으로 적절히 분할해 처리할 수 있어요. 이 예제에서는 코드를 더 간결하게 작성하려고 Introduction to PySpark에서 다뤘던 pipelines를 다시 활용하겠습니다. 연습 문제는 데이터프레임 열의 dtypes를 먼저 보여주는 것으로 시작하니, 이 연습 문제의 마지막 결과와 비교해 보세요.

참고: Pipeline과 StringIndexer는 이미 임포트되어 있습니다. categorical_cols 리스트도 제공되어 있어요.

Instructions

100 XP
  • fillna()와 subset 매개변수를 사용해 WALKSCORE와 BIKESCORE의 값을 -1로 바꾸세요.
  • 리스트 내포(list comprehension)를 사용해 categorical_cols의 각 열을 순회하며 StringIndexer 목록을 만드세요.
  • 파이프라인 indexer_pipeline에 fit()과 transform()을 적용하세요.
  • 더 이상 필요하지 않으므로 drop()을 사용해 categorical_cols를 제거하세요. dtypes로 결과 데이터 타입을 확인해 보세요.