ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 피처 엔지니어링 기법 싹 다 모으기
    머신러닝 배우기 2024. 2. 25. 17:20

    피처 엔지니어링은 모델을 훈련시키기 전에 데이터의 패턴을 더 잘 이해하고, 더 나은 예측을 할 수 있도록 데이터를 가공하는 단계입니다. 피처 엔지니어링을 잘하면 1) 모델의 성능이 향상되고, 2) 오버피팅을 방지할 수 있으며 3) 모델 해석력을 향상시킬 수 있습니다. 

    성능을 끌어올리기 위해서 데이터의 특성, 모델의 종류에 따라 올바른 처리를 해야 하며, 분석 목적과 도메인 지식을 종합적으로 활용하여 더 풍부한 정보를 제공해야 합니다.

     

    ► 결측치 처리

     설명 : 데이터 수집 과정에서 발생할 수 있는 실수, 누락, 또는 불완전한 정보 등으로 인해 발생.

     처리 방법 : 데이터가 누락된 부분을 삭제하거나 의미있는 값들로 채우기.  (자세한 방법 및 코드 참고)

     

    ►아웃라이어 처리

    → 설명 : 아웃라이어는 일반적인 데이터 패턴에서 벗어나 있으며 잘못된 측정, 데이터 입력 오류, 드물게 발생한 현상 때문에 발생함. 모델이 일반화를 하기 위해서는 아웃라이어 처리가 필요함

    → 유용한 곳 : 선형 모델과 같이 아웃라이어의 영향에 민감한 모델

     처리 방법 : 제거 (가장 간단하지만 유용한 정보를 잃을 수 있음), 로그 변환, Box-Cox 변환 등

     

    ► 바이닝

    → 설명 : 연속형 데이터를 여러 개의 구간(또는 버킷)으로 나누는 과정. 

    → 장점 : 연속형 변수를 범주형 변수로 변환함으로써 데이터의 복잡도를 줄이고 오버피팅을 방지하며 모델 학습을 단순화하고 설명력을 높일 수 있음.

     처리 방법 : 등간격으로 구간을 나누거나 데이터의 분포를 고려하여 구간 설정. 

     

    ► 로그 변환

    → 설명 : 로그를 통해 데이터의 분포를 변환하여 왜곡을 줄이는 기법

    → 유용한 곳 : 왜도가 높거나 분산이 비교적 큰 데이터를 처리할 때 유

    → 장점 : 왜도를 줄이고, 데이터의 분포를 정규 분포에 가깝게 만들면서 데이터의 범위가 축소되고 극단값/이상치에 대한 영향력을 줄여준다.

    → 단점 : 변환 후 데이터의 해석이 어려워질 수 있음. 0과 음수에 대한 처리를 해야 함

     

    ► 범주형 변수 인코딩

    → 설명 : 범주형 데이터를 숫자 형태로 변환하는 기법 (문자를 컴퓨터가 이해할 수 있는 0,1 조합으로 변환하는 작업이 필요)

     처리 방법 : 원핫인코딩, 라벨인코딩, 바이너리 인코딩 (자세한 방법 및 코드)

     

    ► 그룹핑

    → 설명 : 고윳값이 너무 많은 범주형 데이터를 특정 그룹으로 묶는 기법

    → 유용한 곳 : 범주형 데이터에서 고윳값이 너무 많아 더미 변수를 쓰기 곤란할 때

     

    ► 스케일링 

    → 설명 : 데이터의 크기를 조정하는 과정.

    → 유용한 곳 : 입력 데이터의 스케일이 크게 달라 데이터 포인트 간의 거리나 비교가 어려울 때 사용.

    사용 모델 : 거리 기반 알고리즘(KNN, SVM) 및 경사 하강법을 사용하는 모델(로지스틱 회귀, 인공신경망)

     사용이 필요없는 모델 : 트리 기반 알고리즘(의사 결정 트리, 랜덤 포레스트, 그래디언트 부스팅 등)은 데이터의 순서나 절대 크기에 대해 민감하지 않기 때문에 굳이 스케일링을 하지 않아도 됨

    → 장점 : 모든 특성의 범위를 동일하게 조정하여 모델의 성능 향상, 일부 최적화 알고리즘은 데이터의 스케일에 민감하게 반응하기 때문에 스케일링을 적용하여 수렴 속도를 향상시킴

    → 처리 방법 : 표준화, 정규화, 로버스트 스케일링 (자세한 방법 및 코드)

    → 주의할 점 : 훈련 데이터와 테스트 데이터에 대해 동일한 스케일링을 적용해야 함. 그렇지 않으면 모델이 제대로 일반화되지 않을 수 있습니다. 즉, 훈련 데이터에서 파생된 파라미터(평균, 표준편차 등)를 사용하여 테스트 데이터를 변환해야 합니다.

     

    ► 날짜 추출

    → 설명 : 날짜 데이터에서 연/월/일/요일 등을 추출해 필요한 형태로 정보 추출

    → 유용한 곳 : 날짜 데이터의 특정 속성이 중요할 때 

    장점 : 각 시계열적 특성에 대한 정보를 포함하여 모델의 해석력이 향상됨. (년도별로, 계절별로, 월별, 평일/주말 등에 따른 패턴을 학습할 수 있음.)

     

    ► 텍스트 분할

    → 설명 : 특스트로 된 변수에서 특정 부분의 단어를 빼오거나, 특정 기호가 들어간 부분을 기준으로 나누어 필요한 항목만 추출

     유용한 곳 : 텍스트 변수에 불필요한 정보가 많이 뒤섞여 있을 때

     

    ► 새로운 변수(파생 변수) 생성 

    → 설명 : 주어진 변수들을 사용해 새로운 변수를 만드는 과정. 사칙연산을 활용한 의미있는 변수를 만들 수도 있고 원본 데이터에서 새로운 정보를 추출하거나 데이터를 더 잘 설명할 수 있는 형태로 변환할 수도 있음

    → 주의할 점 : 데이터에 대한 배경 지식을 활용하여 유용한 변수를 만들어야 함

    → 처리 방법 : 새로운 변수의 조합(사칙연산이나 조합 활용), 범주형 변수의 레이블 인코딩, 시간 변수의 추출 등

     

     

     

     

    참고 자료 : 데싸노트의 실전에서 통하는 머신러닝 (권시현, 골든래빗)

Designed by Tistory.