Data Science - 데이터 특성 생성(범주 인코딩, 결합 및 분해, 차원 축소)

cosmosJ·2024년 2월 12일

데이터 분석

목록 보기
11/26
post-thumbnail

데이터 특성 생성 (feature creation)

데이터 특성 생성이란, 원본 데이터의 조합/변환 등을 통해 새로운 특성을 생성 및 구축하는 것을 의미한다.

데이터 특성 생성을 통해 원본 데이터를 바탕으로 새로운 특성을 생성하여, 데이터 분석 과정에서 성능 및 효율성을 확보하고자 사용된다.

수많은 데이터로부터, 적절한 특성을 생성해 내 모델링 및 모델 훈련 과정에서 활용하여 연산 비용의 절감, 모델 성능의 향상을 추구한다.

특성 (feature)
특성은 데이터 관점에서, 새로운 컬럼 혹은 변수를 의미한다.
ex. 사람의 생일 데이터를 이용하여, 나이 컬럼을 생성할 수 있다. 이때, 생일과 나이 모두 특성이 된다.

일반적으로 특성 데이터는 수치의 형태로 나타난다.

목적 및 필요성

데이터 특성 생성은 특성 공학(feature engineering)과 밀집한 관련이 있다.

특성 공학(feature engineering)
원시 데이터로부터 적절하고 올바른 특징을 생성하는 일련의 과정에 대한 학문

이러한 데이터 특성 생성의 목적은 다음과 같다.

  • 품질 확보

    • 가공을 거치지 않은 raw 데이터 활용 기반의 모델링은 성능 확보가 어렵다.
    • 분석 결과에 왜곡을 주거나, 분석 결과에 영향을 주는 데이터의 적절한 변환 등이 필요하다.
  • 최적화된 형태 변환

    • 효과적인 feature를 확보하는 것이 데이터 분석 내 가장 중요한 과정이다.
    • 분석 알고리즘 마다 요구되는 적절한 데이터의 형태가 주어지므로, 분석 목적 및 환경에 맞는 특성을 확보하는 것이 성능에 밀접하게 영향을 준다.

특징 생성 방안

  • 범주 인코딩

    • 크게 Nominal(순서 없는)과 Ordinal(순서 있는) 형식으로 나뉘는 범주형 변수
      • 순서도 데이터에 의미를 부여하므로, 순서가 있다면, 범주 간 비교가 용이하다. (ex. 순위, 등급, 선착순 등)
      • 일반적으로는 순서가 없는 범주형 데이터가 많다. 따라서 이때는 데이터 변환이 필요...
    • 숫자가 아닌 범주 변수 값을 숫자로 표현하고, 모델링에 적용하기 위한 과정
  • 결합 및 분해

    • 데이터 셋의 변수들의 조합을 기반으로 새로운 특징을 구축하는 방법
      • ex. 연산 또는 파싱을 통해 새로운 특성 생성
    • 변수 간의 연산 혹인 분해를 통해 새로운 특징을 구축하고, 입력 변수로 모델링에 적용
  • 차원 축소

    • 원본 데이터로부터 새로운 특징의 집합을 생성하는 것
    • 고차원 원시 데이터 셋을 저차원으로 차원 축소하여 새로운 특성을 생성하는 방식
    • 데이터 크기는 커지는데, 처리하기 위한 자원은 한정되어 있으므로, 효과적으로 분석하기 위해 차원 축소가 필요하다.

범주 인코딩

범주형 데이터를 알고리즘 적용을 위한 수치형 데이터로 변환하는 과정

  • one-hot encoding
    • 순서 없는 범주형 데이터를 처리하는 가장 대표적인 방법
    • K개의 범주를 가진 범주형 변수를 K개의 컬럼으로 변환
    • Record 관점에서 보면, K개의 컬럼을 통해 True/False의 값을 얻을 수 있다.
    • 만약, 범주형 데이터의 변수가 너무 많으면, one-hot encoding은 좋지 않은 방법이 된다. (너무 많은 컬럼을 생성하게 되므로.)

결합 및 분해

결합 기반 특징 생성

변수 간의 결합을 통해 새로운 의미를 지닌 특성 생성
파생 변수를 생성할 때 많이 고려되는 방안이다.

아래를 살펴보면 연산을 기반으로 결합하여 특성을 생성하는 방안을 보이고 있다.

  • Add/Divide/Subtract
    • 합계(add)/평균(divide) : 종합 능력 파악
      (평균의 경우, 변수 값 크기 조정 및 표준화 목적 포함)
    • 편차(substract) : 편중 정도 파악
  • Mutiply
    • 상호작용 항(interaction feature or term)으로 서로 간의 시너지 효과 파악
      • ex. 온도 * 압력
    • 도메인 지식 기반으로 특성 생성 검토 반드시 필요
    • 회귀 분석에서 많이 사용되는 변수 생성 기법

분해 기반 특징 생성

변수의 분해를 통해 새로운 의미를 지닌 특성 생성

  • Seperate
    • 특정 변수 기반의 새로운 의미를 파악할 수 있는 특징을 생성하는 방법
    • 도메인 지식 기반 및 일반적 개념 기반으로 특성 생성

차원 축소

  1. 변수들이 지닌 정보를 최대한 확보하는 저차원 데이터 생성
    • PCA(Principal Component Analysis) : 주성분 분석

      • 서로 연관된 변수들이 관측되었을 때, 원본 데이터 분산 기반의 특성을 생성

        컬럼의 진행에 따라, 가장 앞의 컬럼이 가장 원본 데이터를 반영한다(분포를 최대한 반영). 또한 각 컬럼은 독립적이게 구성한다.

      • 주성분 간의 서로 독립을 이루도록 구성 (상관관계가 없도록 구성)

        주성분 개수는 분석가가 판단하여 설정 가능.
        주성분은 분석가가 설정할 수도 있고, 분산의 비율이 일정 이상이 되도록 설정하면, 도출되는 개수로도 정의 가능.

  1. 군집 분석 기반의 고차원 데이터를 하나의 특징으로 차원 축소
    • Feturization vs. Clustering
      • 군집 분석의 원리와 목적을 적용한 특징 생성 방안이다.
      • 고차원 데이터를 군집 분석을 기반으로 특성의 개수를 하나의 특성(군집 결과)로 축소
      • 이렇게 획득한 군집 결과 특징을 분류/회귀 등 문제해결을 위한 입력 변수로 활용 (Stacking 기법)
      • 즉, 원본 데이터 내 여러개의 특징을 하나의 특징으로 축소하여, 모델 연산 비용 축소 추구
      • 유의할 점은 군집 결과가 원본 데이터를 잘 반영해야 효과적이게 사용 가능하다.

    군집 분석
    군집 분석은 여러 변수를 지닌 레코드들의 유사성을 비교하여, 유사한 레코드들끼리 하나의 군집(cluster)로 구성하는 비지도 학습의 대표적인 방법
    (이러한 cluster는 원본 데이터를 반영한 새로운 특징을 사용 가능하다.)

실습 코드

profile
백엔드, Data Science, AI 분야 학습 내용을 정리하는 블로그입니다.

0개의 댓글