1. 학습
  2. /
  3. 강의
  4. /
  5. XGBoost로 익히는 Extreme Gradient Boosting

Connected

연습 문제

범주형 열 인코딩 II: OneHotEncoder

좋아요. 이제 범주형 열을 숫자로 인코딩했네요. 바로 파이프라인과 XGBoost로 넘어가면 될까요? 아직은요! 이 데이터셋의 범주형 열에는 항목 간에 자연스러운 순서가 없습니다. 예를 들어, LabelEncoder를 사용하면 Neighborhood 값 CollgCr는 5, Veenker는 24, Crawfor는 6으로 인코딩됩니다. 그렇다면 Veenker가 Crawfor와 CollgCr보다 "더 크다"고 볼 수 있을까요? 그렇지 않습니다. 모델이 이런 자연스러운 순서를 가정하도록 두면 성능이 저하될 수 있어요.

따라서 한 단계가 더 필요합니다. 이진(또는 "더미") 변수를 만들기 위해 원-핫 인코딩을 적용해야 합니다. 이는 scikit-learn의 OneHotEncoder로 수행할 수 있습니다.

지침

100 XP
  • sklearn.preprocessing에서 OneHotEncoder를 임포트하세요.
  • ohe라는 이름의 OneHotEncoder 객체를 인스턴스화하세요. 키워드 인수로 sparse=False를 지정하세요.
  • .fit_transform() 메서드를 사용해 OneHotEncoder를 df에 적용하고 결과를 df_encoded로 저장하세요. 출력은 NumPy 배열입니다.
  • df_encoded의 처음 5개 행을 출력하고, 이어서 df와 df_encoded의 shape을 출력해 차이를 비교하세요.