1. 학습
  2. /
  3. 강의
  4. /
  5. PySpark로 하는 Feature Engineering

Connected

연습 문제

관측치가 적은 열 제거하기

많은 feature engineering을 마친 뒤에는 한 걸음 물러서서 무엇을 만들어냈는지 점검하는 것이 좋아요. 범주형 특성에 대해 exploding이나 OneHot Encoding 같은 자동화 기법을 사용했다면 이제 수백 개의 새로운 이진 특성이 생겼을 수도 있어요. Feature selection 자체는 별도의 강의 주제이지만, 데이터 세트의 차원을 줄이기 위해 빠르게 적용할 수 있는 방법들도 있습니다.

이 연습에서는 관측치가 30개 미만인 열을 제거하겠습니다. 30은 통계적 유의성을 논할 때 흔히 쓰이는 최소 관측치 수예요. 그보다 적으면 우연에 의한 관계가 과적합을 일으키기 쉽습니다!

NOTE: 데이터는 데이터프레임 df 에 들어 있습니다.

지침

100 XP
  • 이진 열 목록을 반복하는 제공된 for 루프를 사용해, 해당 열의 값 sum 을 agg 함수로 계산하세요. 즉시 계산을 실행하기 위해 collect() 를 사용하고 결과를 obs_count 에 저장하세요.
  • obs_count 를 obs_threshold 와 비교하세요. obs_count 가 obs_threshold 보다 작거나 같으면 if 문이 참이 되어야 합니다.
  • cols_to_remove 목록에 추가된 열들을 drop() 을 사용해 제거하세요. * 를 사용하면 목록을 언패킹할 수 있다는 점을 기억하세요.
  • PySpark 데이터프레임의 시작과 종료 형태를 출력하세요. 레코드 수는 count() 를 사용하고, 열의 개수는 df.columns 또는 new_df.columns 에 len() 을 적용해 구하세요.