피처 엔지니어링(Feature Engineering)이란?

TABLE OF CONTENTS

1. 피처 엔지니어링(Feature Engineering)이란?

피처 엔지니어링(Feature Engineering) 예시

피처 엔지니어링(Feature Engineering)은 기존 데이터셋에 있는 피처를 재조합하거나 변형하여 새로운, 의미 있는 피처를 만드는 과정이다. 이 과정은 도메인 지식과 창의성을 바탕으로 수행되며, 기존 데이터에서 숨겨진 패턴이나 정보를 발굴하는 데 중요하다. 예를 들어, 개인의 체중과 키 데이터에서 비만도를 나타내는 BMI 지수를 새로운 피처로 만들 수 있다.

1.1 목적: 더 나은 분석을 위한 데이터 변환

피처 엔지니어링의 궁극적인 목적은 통계 분석, 머신러닝, 딥러닝 모델에서 더 나은 성능을 달성하기 위해 데이터에 존재하는 의미 있는 패턴을 제공하는 것이다. 이러한 패턴은 모델이 데이터를 더 잘 이해하고 예측을 향상시키는 데 도움을 준다.

1.2 데이터프레임((Dataframe)): 데이터의 기본 구조

데이터프레임(Dataframe)은 테이블 형태로 데이터를 구성하는 방식이다. 이는 데이터 분석에서 가장 일반적으로 사용되는 데이터 구조로, 각 행은 개별 관측치를, 각 열은 하나의 피처를 나타낸다.

1.2.1 tidy 데이터 형태의 중요성

tidy 데이터 형태는 데이터 분석과 피처 엔지니어링에서 중요하다. 이 형태는 데이터를 체계적으로 정리하여 분석 과정에서 다른 라이브러리와의 호환성을 높이고 데이터 처리를 용이하게 합니다.

1.2.2 결측치와 데이터 유형의 이해

데이터 분석에서는 Na(Not Available), Null, NaN(Not a Number), 0, Undefined와 같은 다양한 형태의 결측치나 특수 값들을 처리해야 한다. 각각은 다른 의미를 가지므로, 이들을 정확히 이해하고 적절하게 처리하는 것이 중요하다.

  • Na(Not Available): 결측 값
  • Null: 값이 없음
  • NaN(Not a Number): 무한대
  • 0: 실수
  • Undefined: 오류

2. 데이터 유형 변환

피처 엔지니어링(Feature Engineering) 일러스트

2.1 문자열 데이터의 처리

머신러닝 모델링에서 문자열 데이터는 직접 사용할 수 없기 때문에, 숫자형 데이터로 변환하는 과정이 필요하다. 이를 위해 문자열 치환(string replace) 기법이 사용된다.

2.1.1 string replace 예시

문자열 데이터에서 특정 문자를 제거하거나 변경하는 작업은 매우 흔하다. 예를 들어, 쉼표가 포함된 숫자 데이터에서 쉼표를 제거하는 과정은 다음과 같다:

python
s = "1,234"
s = s.replace(',', '')  # 결과: "1234"

2.1.2 컬럼 단위 replace 함수의 사용

대규모 데이터셋에서는 각 문자열 데이터에 대해 일일이 작업을 수행하기 어렵다. 따라서 컬럼 단위로 함수를 적용하는 방법이 효과적이다. 그 방법은 다음과 같다:

python
def to_int(string):
    return int(string.replace(',', ''))

df['index1'] = df['index2'].apply(to_int)

이러한 방법은 데이터 프레임에서 효율적으로 데이터 유형을 변환하는 데 사용된다.