선택, 추출, 구성 및 변환 기법을 통해 원시 데이터를 머신러닝 모델에 유용한 특징으로 변환합니다.
작성자: Databricks 직원
데이터 처리라고도 불리는 피처 엔지니어링은 가공되지 않은 데이터를 머신 러닝 모델 개발 사용할 수 있는 기능으로 전환하는 프로세스입니다. 이 항목에서는 피처 엔지니어링의 주요 개념과 피처 엔지니어링이 ML 수명 주기 관리에서 수행하는 역할을 설명합니다.
머신 러닝에서 특성은 모델 트레이닝에 사용되는 입력 데이터입니다. 특성은 모델이 학습할 어떤 엔터티의 속성입니다. 가공되지 않은 데이터는 처리 작업을 수행한 후 ML 모델의 입력 데이터로 사용해야 합니다. 올바른 피처 엔지니어링은 모델 개발 프로세스의 효율성을 향상하고 더 단순하고 유연하며 정확한 모델을 만들 수 있습니다.
피처 엔지니어링은 데이터로 모델을 트레이닝시키는 데 사용되는 머신 러닝 알고리즘의 성능을 향상하기 위해 데이터를 변환하고 개선하는 프로세스입니다.
피처 엔지니어링에는 데이터 스케일링 또는 정규화, 비수치적 데이터(예: 텍스트 또는 이미지) 인코딩, 시간 또는 엔터티별 데이터 집계, 다른 소스의 데이터 조인 또는 다른 모델에서의 지식 이전까지도 포함됩니다. 이러한 변환의 목표는 다른 데이터 세트로부터 학습하는 머신 러닝 알고리즘의 능력을 향상하고 더 정확한 예측을 수행하는 것입니다.

피처 엔지니어링이 중요한 이유는 몇 가지가 있습니다. 첫째, 앞서 언급했듯이, 머신 러닝 모델은 때때로 가공되지 않은 데이터에서는 작동하지 않습니다. 따라서 데이터를 모델이 이해할 수 있는 수치 형식으로 변환해야 합니다. 이를 위해 텍스트 또는 이미지를 수치 형식으로 변환하거나 고객의 평균 트랜잭션 금액과 같은 집합적 특성을 만들어야 할 수 있습니다.
때로는 머신 러닝 문제와 관련된 기능이 여러 데이터 소스에 존재할 수 있습니다. 따라서 효과적인 피처 엔지니어링을 수행하려면 데이터 소스를 함께 조인하여 사용 가능한 하나의 데이터 세트를 만들어야 합니다. 이를 통해 사용 가능한 모든 데이터로 모델을 트레이닝하여 모델의 정확성과 성능을 향상할 수 있습니다.
또 다른 흔한 시나리오는 다른 모델의 산출물과 학습이 새로운 문제를 위한 특성의 형태로 재사용되는 경우입니다. 이때 전이 학습(transfer learning)이라는 프로세스가 사용됩니다. 이럴 경우 이전 모델에서 습득한 지식을 활용하여 새 모델의 성능을 향상할 수 있습니다. 전이 학습은 데이터 세트가 크고 복잡하여 모델을 처음부터 새로 트레이닝시키는 것이 현실적이지 않은 경우 특히 유용합니다.
효과적인 피처 엔지니어링은 또한 유추 시간에 신뢰할 수 있는 기능이 가능하게 합니다. 유추 시간은 새 데이터에 대한 예측을 수행하기 위해 모델을 사용하는 때를 말합니다. 온라인/오프라인 왜곡("online/offline skew")를 피하려면 유추 시간에 사용되는 기능은 트레이닝 시간에 사용되는 기능과 동일해야 하므로 신뢰할 수 있는 기능을 제공하는 것은 중요합니다. 온라인/오프라인 왜곡은 예측 시간에 사용된 기능이 트레이닝에 사용된 기능과 다르게 계산되는 경우를 말합니다.
피처 엔지니어링의 목표는 머신 러닝 모델 구축을 위해 트레이닝시킬 수 있는 데이터 세트를 만드는 것입니다. 데이터 변환에 사용되는 툴과 기법 중 다수가 피처 엔지니어링에 사용됩니다.
피처 엔지니어링에서 강조되는 것은 모델 개발이므로 일부 특성 변환에서는 존재하지 않는 몇 가지 요구 사항이 있습니다. 예를 들면, 여러 모델 또는 조직의 여러 팀에서 특성을 재사용해야 하는 경우가 있습니다. 이럴 경우 특성 발견을 위한 강력한 방법이 필요합니다.
또한, 특성이 사용된 후에는 즉시 특성이 어디서 어떻게 컴퓨팅되는지 추적할 수 있는 방법이 필요합니다. 이를 특성 계보라고 합니다. 재생산 가능한 특성 계산은 머신 러닝에 특히 중요합니다. 특성은 모델 트레이닝을 위해 컴퓨팅될 뿐만 아니라 모델이 유추에 사용될 때와 똑같은 방식으로 재컴퓨팅되어야 하기 때문입니다.