공부일기/Machine-Learning

특성 선택(Feature Selection) 및 엔지니어링(Feature Engineering)

pipiiiiii 2024. 7. 29. 23:21

특성(Feature)

특성은 데이터에서 관측된 각 변수 또는 속성을 의미한다.

예측 모델링 또는 분류 작업에서 사용될 수 있으며, 예측변수, 입력변수, 독립변수 등으로 불리기도 한다. 

예를 들어, 고객 분류를 위한 고객의 나이, 성별, 소득, 거주 지역 등이 특성으로 사용될 수 있다. 

 

특성은 문맥이나 사용되는 분야에 따라 변수, 속성, 입력 변수 등 다른 형태로 변역될 수 있다. 

  • 변수 : 통계 및 머신러닝 분야에서 일반적으로 사용된다. 
  • 속성 : 데이터 세트의 특정 속성을 나타내는 데 사용된다.
  • 입력 변수 : 모델에 입력되는 데이터의 특성을 나타내는 용어다. 

 

 

특성 선택(Feature Selection)

특성 중 가장 유용하거나 중요한 특성을 식별하고 선택하는 프로세스다. 즉, 모델을 구성하기 위한 특징을 선택하는 과정인 것이다. 

특성을 선택하는 이유는 특징의 수가 많을 경우 모델의 복잡도가 증가해 과대적합 될 가능성이 높아지기 때문이다. 또한, 대부분의 경우, 데이터 세트에는 불필요하거나 중복되는 특성이 포함되어 있는데 이런 것들을 제거함으로써 모델의 복잡성을 줄이고 예측 능력을 향상시켜 모델의 성능을 향상시킬 수 있다. 

 

추가로 특성 선택과 차원 축소는 개념이 다르다.

두 방법 모두 데이터의 특성 수를 줄이고자 하는 것이지만, 차원 축소는 새로운 특성 조합을 생성하는 것이고 특성 선택은 특성을 변경하지 않고 포함 및 제외하는 방법론이다. 

 

 

 

특성 선택 알고리즘

필터 방법(Filter Methods)

  • 전처리단계에서 통계적 측정 방법을 사용하여 적절한 특징을 선택하는 방식이다. 
  • 계산 속도가 빠르고 변수 간 상관관계를 알아내는데 적합하여 래퍼 방법을 사용하기 전에 전처리할 때 사용하기도 한다. 
  • pearson 상관 계수를 통해 각 특성 간에 상관 계수를 참고하기도 하고, 카이제곱 검정과 같은 통계적 방법을 통해 변수 간에 영향도가 적은 것을 검정해서 탈락시킬 특성을 고르기도 한다. 
  • 주 사용 분야는 생물 정보학, 금융 분석, 이미지 처리가 있다. 
  • 필터 방법의 알고리즘 종류
    • 분산 기반 선택(Variance Threshold)
      분산이 낮은 변수를 제거하는 방법

    • 정보 소득(Information Gain)
      가장 정보 소득이 높은 속성을 선택하여 데이터를 더 잘 구분하게 되는 것

    • 카이제곱 검정(Chi-Square Test)
      카이제곱 분포에 기초한 통계적 방법으로 관찰된 빈도가 기대되는 빈도와 의미있게 다른지 여부를 검증하기 위해 사용되는 검증 방법

    • 피셔 스코어(Fisher Score)
      최대 가능성 방정식을 풀기 위해 통계에 사용되는 방법

    • 상관계수(Correlation Coefficient)
      두 변수 사이의 통계적 관계를 표현하기 위해 특정한 상관관계의 정도를 수치적으로 나타낸 계수

래퍼 방법(Wrapper Methods)

  • 특징을 다양하게 조합하여 최적의 학습 모델을 생성하는 특징을 선택하는 방식이다. 가능한 조합을 모두 만들고, 조합마다 모델을 만들어 성능을 평가해야하므로 특징이 많으면 시간이 오래 걸린다. 
  • 전진 선택, 후진 제거, 단계별 선택 등을 통해 특징의 조합이 가능하다. 
  • 필터 방법보다 더 정확한 특성 선택을 제공할 수 있다. 왜냐하며 래퍼 방법은 모델의 성능을 고려하여 특성을 평가하므로 특성 간의 상호작용이 고려되기 때문이다. 
  • 주 사용 분야는 자연어 처리, 의료 이미지 분석이 있다. 
  • 래퍼 방법의 알고리즘 종류
    • 전진 선택(Forward Selection)
      변수가 없는 상태로 시작하여, 모형을 가장 많이 향상시키는 변수를 하나씩 점진적으로 추가하는 방법으로 더 이상의 성능 향상이 없을 때까지 변수를 추가한다. 
    • 후진 제거(Backward Elimination)
      모든 특징을 가지고 시작하여 가장 적은 영향을 주는 특징을 하나씩 제거하면서 성능을 향상시키는 방법으로 더 이상의 성능 향상이 없을 때까지 변수를 제거한다. 
    • 단계별 선택(Stepwise Method)
      전진 선택과 후진 제거를 결합하여 사용하는 방법이다. 
      모든 변수를 가지고 시작해 최악의 특징을 제거하거나, 모델에서 빠져있는 특징 중 최상의 특징을 추가하는 방법이다. 또한 특징이 없는 상태에서 시작해 변수의 추가, 삭제를 반복할 수도 있다. 

임베디드 방법(Embedded Methods)

  • 내장함수를 통해 특징을 선택하는 방식이다. 
  • 임베디드 방법은 LASSO나 Ridge 회귀 같은 알고리즘을 사용해 특성 선택 기능이 포함된 상태로 모델링을 하는 것이다. 이런 알고리즘을 써서 임베디드 방법이 수행되면 모델의 복잡도가 줄어들고 성능을 향상시키는 데 도움이 된다. 
  • 주 사용 분야는 이미지 처리, 텍스트 마이닝이 있다. 
  • 임베디드 방법의 알고리즘 종류
    • Lasso Regression 
      L1 norm을 통해 제약을 주는 방법이다. 

    • Ridge Regression 
      L2 norm을 통해 제약을 주는 방법이다. 

    • Select From Model
      결정 트리 기반 알고리즘에서 특징을 뽑아오는 방법이다. 

    • Elasic Net
      Lasso와 Ridge를 선형결합한 방법이다. 

 

 

특성 엔지니어링(Feature Engineering)

특성 엔지니어링은 기존 데이터를 손보아서 더 나은 변수를 만드는 기법이다. 

특성 엔지니어링을 하는 이유는 변수들을 이용해 모델 성능을 향상시킬 수 있기 때문이다. 

머신러닝 모델의 성능을 향상하기 위해 기존 데이터에서 새로운 입력 기능을 생성하는 프로세스로 여기에는 데이터의 기본 패턴을 더 잘 포착하고 모델의 예측력을 향상하기 위해 기능을 변환, 결합 및 선택하는 작업이 포함된다. 

 

 

특성 엔지니어링의 단계 

데이터 이해(EDA)

특성 엔지니어링을 하기 전에 데이터를 철저하게 이해하는 것이 중요하다. 

업무적인 이해도와 더불어 각각의 속성이 무엇을 나타내는지, 어떤 유형의 데이터가 포함되어 있는지 하나하나 분석해야 한다. 그리고 우리가 풀려는 문제와 어떤 연관성이 있는지도 알아야 한다. 

 

 

새로운 특성 생성

데이터의 기본 패턴을 더 잘 찾아내기 위해 새로운 특성을 만든다. 

  1. 변환 
    수치 특성에 로그, 제곱근, 지수 등의 수학 연산을 적용하여 분포를 모델링에 더 적합하게 만든다. 
    데이터 특성에 맞게 변환을 해야 알고리즘의 정확도를 높일 수 있다. 

  2. 집계 
    다양한 그룹이나 기간에 걸쳐 합계, 평균 같은 집계 특성을 추가할 수도 있고, 건수를 계산하는 등 다양한 특성을 결합하여 새로운 특성을 만들 수 있다. 

  3. 범주형 변수 인코딩
    범주형 데이터의 경우 그대로 사용하면 해석할 수가 없다. 원-핫 인코딩 또는 레이블 인코딩과 같은 기술을 사용해 범주영 변수를 숫자 표현으로 변환한다. 

  4. 차원성 감소
    주성분 분석(PCA) 또는 t-SNE과 같은 기술을 사용해 새로운 특성을 만들 수 있다. 가능한 많은 정보를 보존하면서특성 공간의 차원을 줄이는 기법이다. 

 

결측 처리

평균, 중앙값 또는 모드 값으로 누락된 값을 대치하거나 특정 기능의 누락을 표시하기 위한 새로운 이진 표시기를 만드는 것이 포함될 수 있다.

  1. 평균/중앙값 대치
    누란된 값을 데이터 세트 전체에서 특성의 평균 또는 중앙값으로 바꾼다. 간단하지만 데이터의 분포와 관계를 왜곡할 수 있다.

  2. 모드(mode) 대치
    범주형 변수의 경우 누락된 값을 특성의 모드(가장 빈번한 값)로 바꾼다. 

  3. 예측 대치 
    통계 모델 또는 기계 학습 알고리즘을 사용하여 다른 특성을 기반으로 결측값을 예측한다. 

  4. 핫 데크 대치
    누락된 값을 데이터 세트의 유사한 사례 값으로 바꾼다. 이 방법은 변수 간의 관계를 유지하지만 편향이 발생될 수 있다. 

  5. 다중 대치
    서로 다른 귀속 값을 갖는 여러 귀속 데이터 세트를 생성하고 결고를 결합하여 대치의 불확실성을 설명한다. 

 

 

특성 스케일링

스케일링도 특성 엔지니어링이다. 왜냐하면 모든 특성을 비슷한 규모로 유지하면 알고리즘의 성능을 향상하는데 도움이 되기 때문이다. 

표준화(평균 0과 표준편차 1로 조정) 또는 최소-최대 조정(0과 1 사이의 범위로 조정)과 같은 기능 조정 기술을 숫자 특성에 적용할 수 있다. 

 

 

검증 및 반복

새로운 특성을 만든 후에는 머신러닝 모델을 훈련하고 평가하여 효과를 검증하는 것이 중요하다.

새로운 특성이 모델 성능을 향상하지 못하는 경우 다시 돌아가야하며 다양한 피처 엔지니어링 기술을 시도하거나 데이터에 대한 초기 가정을 다시 검토하는 것이 좋다. 

 

 

 

특성 선택 및 엔지니어링 코드 공부

https://github.com/DIB-PP/Machine-Learning

 

GitHub - DIB-PP/Machine-Learning

Contribute to DIB-PP/Machine-Learning development by creating an account on GitHub.

github.com

 

 

 

 

 

 

참고 자료