업계 뉴스레터
전문가가 전하는 최신 AI 트렌드
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
특징 엔지니어링은 원시 데이터를 기계가 읽을 수 있는 형식으로 전처리합니다. 관련 특징을 변환하고 선택하여 ML 모델 성능을 최적화합니다.
특징 엔지니어링은 원시 데이터를 머신 러닝 모델에서 사용할 수 있는 관련 정보로 변환하는 프로세스입니다. 즉, 특징 엔지니어링은 예측 모델 특징을 생성하는 프로세스입니다. 특징(차원이라고도 함)은 모델 예측을 생성하는 데 사용되는 입력 변수입니다. 모델 성능은 학습에 사용된 데이터의 품질에 크게 좌우되므로, 특징 엔지니어링은 예측 작업과 고려 중인 모델 유형 모두에 대해 원시 학습 데이터의 가장 관련성 있는 측면을 선택해야 하는 중요한 전처리 기술입니다.1
계속 진행하기 전에 용어를 간략히 설명하겠습니다. 많은 소스에서는 모델 변수를 생성하는 프로세스를 설명하기 위해 특징 엔지니어링과 특징 추출을 같은 의미로 사용합니다.2 때때로 소스는 원래 특징 공간을 더 낮은 차원의 기능 공간에 다시 매핑하는 것을 뜻하는 의미로 특징 추출을 사용하기도 합니다.3 이와 대조적으로, 특징 선택은 차원 축소의 한 형태입니다. 구체적으로 말하면, 다중 상관성을 줄이고 모델의 일반화와 최적화를 극대화하기 위해 새로운 모형을 생성하기 위해 변수의 하위 집합을 선택하는 프로세스입니다.
업계 뉴스레터
가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.
구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.
모델은 그 기반이 되는 데이터만큼만 우수하다는 점을 감안할 때, 데이터 과학자는 고품질 모델을 만들기 위해 데이터 준비와 기능 생성에 많은 시간을 할애합니다. 원시 데이터의 복잡성과 원하는 예측 모델에 따라 특징 엔지니어링에 많은 시행착오를 겪어야 할 수도 있습니다.
일부 소스와 온라인 튜토리얼은 특징 엔지니어링을 개별 단계로 세분화하는데, 단계의 수와 명칭은 다양합니다. 이러한 단계에는 특징 이해, 구조화 또는 구축, 변환, 평가, 최적화 등이 포함될 수 있습니다.4 이러한 계층화는 특징 엔지니어링과 관련된 작업에 대한 일반적인 개요를 제공하기도 하지만, 특징 엔지니어링이 선형적 프로세스라는 점을 알려주기도 합니다. 실제로 특징 엔지니어링은 반복적인 프로세스입니다.
특징 엔지니어링은 컨텍스트에 따라 달라집니다. 이를 위해서는 상당한 데이터 분석과 도메인 지식이 필요합니다. 그 이유는 사용된 모델의 유형, 예측자와 아웃풋 간의 관계, 모델이 해결하고자 하는 문제에 따라 특징에 대한 효과적인 인코딩이 결정될 수 있기 때문입니다.5 이는 텍스트와 이미지 등 서로 다른 종류의 데이터 세트가 서로 다른 특징 엔지니어링 기술에 더 적합할 수 있다는 사실과도 관련이 있습니다.6 따라서 주어진 머신 러닝 알고리즘 내에서 특징 엔지니어링을 가장 잘 구현하는 방법에 대해 구체적으로 이야기하기가 어려울 수 있습니다.
보편적으로 선호되는 특징 엔지니어링 방법이나 파이프라인은 없지만, 다양한 모델에 대해 다양한 데이터 유형에서 특징을 생성하는 데 흔히 사용되는 작업이 몇 가지 있습니다. 그러나 이러한 기술을 구현하기 전에 철저한 데이터 분석을 수행하여 주어진 문제를 해결하기 위한 관련 특징과 적절한 특징 수를 모두 결정해야 한다는 점을 기억해야 합니다. 또한 누락된 데이터 또는 값에 대한 대치와 같은 다양한 데이터 정리 및 전처리 기술을 구현하는 동시에 모델 예측에 부정적인 영향을 미칠 수 있는 이상값을 해결하는 것이 가장 좋습니다.
특징 변환은 하나의 특징 유형을 특정 모델에서 더 쉽게 읽을 수 있도록 다른 형태로 변환하는 프로세스입니다. 이는 연속형 데이터를 범주형 데이터로 변환하거나, 그 반대로 변환하는 것으로 구성됩니다.
구간화. 이 기법은 연속적인 숫자 값을 범주형 특징으로 변환합니다. 구체적으로 구간화는 각 값을 주변의 값과 비교한 다음 데이터 요소를 여러 개의 구간으로 정렬합니다. 구간화의 쉬운 예로는 연속된 연령을 18~25세, 25~30세 등의 연령 그룹으로 나누는 연령 인구 통계를 들 수 있습니다. 값을 구간에 배치한 후에는 평균, 중앙값 또는 경계를 기준으로 구간을 더욱 매끄럽게 만들 수 있습니다. 구간 평활화는 구간에 포함된 값을 구간에서 파생된 값으로 대체합니다. 예를 들어 18~25세의 연령 값이 포함된 구간을 평균으로 평활화하면 해당 구간의 각 값이 해당 구간 값의 평균으로 대체됩니다. 구간화는 연속형 값에서 범주형 값을 만듭니다. 구간 평활화 입력 데이터의 노이즈를 줄이기 위한 로컬 평활화의 한 형태입니다.7
원핫 인코딩. 이는 범주형 변수로부터 수치적 특징을 생성하는 것으로, 구간화의 반대입니다. 원핫 인코딩은 범주형 특징을 이진 표현에 매핑하여 행렬 또는 벡터 공간에 특징을 매핑하는 데 사용됩니다. 문헌에서는 종종 이 이진 표현을 더미 변수라고 합니다. 원핫 인코딩은 순서를 무시하므로 명목형 카테고리에 사용하는 것이 가장 좋습니다. 단어 주머니 모델은 자연어 처리 작업에서 자주 사용되는 원핫 인코딩의 한 예입니다. 원핫 인코딩의 또 다른 예로는 스팸과 스팸 아님 카테고리가 각각 1과 0으로 변환되는 스팸 필터링 분류를 들 수 있습니다.8
특징 추출은 변수를 새로운 대리 변수로 결합하거나 모델의 특징 공간 차원을 줄이기 위해 모델에 대한 새로운 차원 공간을 만드는 기법입니다.9 반면에 특징 선택은 모델을 나타내기 위해 가장 관련성이 높은 기능의 하위 집합을 선택하는 기법입니다. 특징 추출과 선택은 모두 차원 축소의 한 형태이므로 특징 수가 많고 사용 가능한 데이터 샘플이 제한된 회귀 문제에 적합합니다.
주성분 분석. 주성분 분석(PCA)은 데이터 세트의 원래 특징을 결합하고 변환하여 주성분이라고 하는 새로운 특징을 생성하는 일반적인 특징 추출 방법입니다. PCA는 모델에서 모델의 원래 변수 집합에 존재하는 분산의 대부분 또는 전부를 구성하는 변수의 하위 집합을 선택합니다. 그런 다음 PCA는 이 변수 부분 집합으로 정의된 새 공간에 데이터를 프로젝션합니다.10
선형 판별 분석. 선형 판별 분석(LDA)은 모델 데이터를 차원이 더 낮은 새로운 공간에 프로젝션한다는 점에서 PCA와 유사합니다. PCA에서와 마찬가지로 이 모델 공간의 차원(또는 특징)은 초기 모델의 특징에서 파생됩니다. 하지만 LDA는 원래 데이터 세트의 분류 레이블을 유지하는 데 관심이 있다는 점에서 PCA와 다릅니다. PCA는 데이터 분산을 최대화하기 위한 새로운 성분 변수를 생성하는 반면, LDA는 주로 데이터의 클래스 차이를 최대화하기 위한 성분 변수를 생성합니다.11
특정 특징에는 발생 가능한 특정 값을 제한하는 데이터 고유의 상한 및 하한이 있습니다. 시계열 데이터 또는 나이가 그 예입니다. 그러나 대부분의 경우 모델 특징은 발생 가능한 값에 제한이 없을 수 있으며, 이러한 큰 기능 축척(기능 가장 낮은 값과 가장 높은 값 간의 차이)은 특정 모델에 부정적인 영향을 줄 수 있습니다. 특징 크기 조정(특징 정규화라고도 함)은 특징의 스케일을 재조정하고 모델에 대한 대규모 스케일의 영향을 제한하는 표준화 기술입니다.12 특징 변환은 데이터를 한 유형에서 다른 유형으로 변환하는 반면, 특징 크기 조정은 원래 데이터 유형을 유지하면서 범위 및 분포 측면에서 데이터를 변환합니다.13
최소-최대 크기 조정. 최소-최대 크기 조정은 지정된 특징의 모든 값이 지정된 최소값과 최대값(보통 0과 1) 사이에 위치하도록 크기를 재조정합니다. 선택한 특징에 대한 각 데이터 포인트의 값( x로 표시)은 각각 결정된 최소 및 최대 특징 값인 min(x) 및 max(x)에 대해 계산되어 해당 데이터 포인트의 새로운 특징 값(x̃로 표시)을 생성합니다. 최소-최대 크기 조정은 다음 공식을 사용하여 계산됩니다.14
z-점수 크기 조정. 문헌에서는 이를 표준화 및 분산 척도화라고도 합니다. 최소-최대 크기 조정은 지정된 최소값 및 최대값 내에 맞게 특징 값의 크기를 조정하지만, z-점수 크기 조정은 공유 표준 편차가 1이고 평균이 0이 되도록 특징의 크기를 조정합니다. z-점수 스케일링은 다음 공식으로 표현됩니다.
여기서 주어진 특징 값(x)은 재조정된 특징의 평균과 비교하여 계산되고 표준화된 표준 편차( sqrt(var(x))로 표현)로 나뉩니다. Z-점수 스케일링은 PCA 및 LDA와 같은 특징 추출 방법을 구현할 때 유용할 수 있습니다. 이 두 가지 방법은 특징이 동일한 스케일을 공유해야 하기 때문입니다.15
자동화. 자동화된 특징 엔지니어링은 수십 년 동안 지속적으로 연구되었습니다.16 'tsflex' 및 'featuretools'와 같은 Python 라이브러리는 시계열 데이터의 특징 추출 및 변환을 자동화하는 데 도움이 됩니다. 개발자들은 선형 회귀 모델 및 기타 데이터 유형에 대한 특징 엔지니어링을 지속적으로 자동화하여 모델 정확도를 높이는 새로운 패키지와 알고리즘을 제공하고 있습니다.17 최근에는 자동화된 특징 엔지니어링이 비전문가도 머신 러닝에 더 쉽게 접근할 수 있도록 하는 자동화된 머신 러닝(AutoML) 시스템을 구축하려는 대규모 노력의 한 부분으로 각광받고 있습니다.18
딥 러닝. 특징 엔지니어링은 상당한 시행 착오를 겪어야 하는 힘들고 시간 소모적인 프로세스일 수 있습니다. 딥 러닝을 통해 사용자는 신경망 아키텍처가 상위 수준의 특징(표현이라고도 함)으로 통합하는 작은 기본 특징 집합을 지정할 수 있습니다.19 이러한 예로는 컴퓨팅 비전 이미지 처리 및 패턴 인식이 있으며, 모델은 특징 맵을 연결하여 단순한 개념(예:가장자리, 윤곽 등)의 관점에서 의미적으로 의미 있는 객체(예:자동차, 사람 등)를 식별하는 방법을 학습하게 됩니다.20 더구나 최근 연구에서는 특징 엔지니어링과 신경망 및 기타 딥 러닝 기법을 사기 탐지와 같은 분류 작업에 결합하여 유망한 결과를 얻었습니다.21
AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.
업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.
AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화합니다.
1 Alice Zheng 및 Amanda Casari. 머신 러닝을 위한 기능 엔지니어링 [Feature engineering for machine learning]. O'Reilly. 2018. Sinan Ozdemir 및 Divya Susarla. 더욱 쉬워진 기능 엔지니어링 [Feature engineering made easy]. Packt. 2018.
2 Yoav Goldberg. 자연어 처리를 위한 신경망 방법론 [Neural network methods for natural language processing]. Springer. 2022.
3 Suhang Wang, Jiliang Tang 및 Huan Liu. “기능 선택” [Feature selection]. 머신 러닝 및 데이터 마이닝 백과사전. Springer. 2017.
4 Sinan Ozdemir. 기능 엔지니어링 북캠프 [Feature Engineering Bootcamp]. Manning Publications. 2022. Sinan Ozdemir 및 Divya Susarla. 더욱 쉬워진 기능 엔지니어링 [Feature engineering made easy]. Packt. 2018.
5 Max Kuhn 및 Kjell Johnson. 적용된 예측 모델링 [Applied predictive modeling]. Springer. 2016.
6 Alice Zheng 및 Amanda Casari. 머신 러닝을 위한 기능 엔지니어링 [Feature engineering for machine learning]. O'Reilly. 2018.
7 Jiawei Han. 데이터 마이닝: 개념과 기법 [Data mining: concepts and techniques]. 3판. 2012.
8 Kevin Murphy. 머신 러닝: 확률론적 관점 [Machine learning: a probabilistic perspective]. MIT Press. 2012. Soledad Galli. Python 기능 엔지니어링 쿡북 [Python feature engineering cookbook]. 2판. Packt. 2022.
9 Max Kuhn 및 Kjell Johnson. 적용된 예측 모델링 [Applied predictive modeling]. Springer. 2016.
10 IT Jolliffe. 주성분 분석 [Principal Component Analysis]. Springer. 2002.
11 Chris Albon. Python을 통한 머신 러닝 쿡북 [Machine learning with Python cookbook]. O'Reilly. 2018.
12 Alice Zheng 및 Amanda Casari. 머신 러닝을 위한 기능 엔지니어링 [Feature engineering for machine learning]. O'Reilly. 2018.
13 Zahraa Abdallah, Lan Du 및 Geoffrey Webb. “데이터 준비” [Data preparation]. 머신 러닝 및 데이터 마이닝 백과사전. Springer. 2017.
14 Alice Zheng 및 Amanda Casari. 머신 러닝을 위한 기능 엔지니어링 [Feature engineering for machine learning]. O'Reilly. 2018.
15 Zahraa Abdallah, Lan Du 및 Geoffrey Webb. “데이터 준비” [Data preparation]. 머신 러닝 및 데이터 마이닝 백과사전. Springer. 2017. Alice Zheng과 Amanda Casari. 머신 러닝을 위한 기능 엔지니어링 [Feature engineering for machine learning]. O'Reilly. 2018.
16 James Kanter 및 Kalyan Veeramachaneni. "심층 기능 합성: 데이터 과학 작업의 자동화를 향하여" [Deep feature synthesis: toward automating data-science work] 데이터 과학 및 고급 분석에 관한 IEEE 국제 컨퍼런스. 2015. https://ieeexplore.ieee.org/document/7344858.
17 Udayan Khurana, Deepak Turaga, Horst Samulowitz 및 Srinivasan Parthasrathy. “인지: 지도 학습을 위한 자동화된 기능 엔지니어링” [Cognito: automated feature engineering for supervised learning]. 데이터 마이닝 워크샵에 대한 IEEE 16회 국제 컨퍼런스. 2016. pp. 1304–130. https://ieeexplore.ieee.org/abstract/document/7836821. Franziska Horn, Robert Pack 및 Michael Rieger. “자동화된 기능 엔지니어링 및 선택을 위한 autofeat Python 라이브러리” [The autofeat Python library for automated feature engineering and selection]. 데이터베이스에서의 머신 러닝 및 지식 발견에 관한 유럽 공동 컨퍼런스. 2019. pp. 111–120. https://link.springer.com/chapter/10.1007/978-3-030-43823-4_10.
18 Ahmad Alsharef, Karan Aggarwal, Sonia, Manoj Kumar 및 Ashutosh Mishra. “시계열 데이터 예측을 위한 ML 및 AutoML 솔루션 검토” [Review of ML and AutoML solutions for forecasting time-series data]. Archives of Computational Methods in Engineering. Vol. 29. 2022. pp. 5297–5311. https://link.springer.com/article/10.1007/s11831-022-09765-0. Sjoerd Boeschoten, Cagatay Catal, Bedir Tekinerdogan, Arjen Lommen 및 Marco Blokland. “기능 엔지니어링 기법을 사용한 분류 모델 개발 자동화 및 모델 품질 개선” [Automation of classification-model development and quality improvement using feature-engineering techniques]. Expert Systems with Applications. Vol. 213. 2023. https://www.sciencedirect.com/science/article/pii/S0957417422019303. Shubhra Kanti Karmaker, Mahadi Hassan, Micah Smith, Lei Xu, Chengxiang Zhai 및 Kalyan Veeramachaneni. “지금까지의 AutoML와 미래: 도전 과제와 기회” [AutoML to Date and Beyond: Challenges and Opportunities]. ACM Computing Surveys. Vol. 54. No. 8. 2022. pp. 1-36. https://dl.acm.org/doi/abs/10.1145/3470918.
19 Yoav Goldberg. 자연어 처리를 위한 신경망 방법론 [Neural network methods for natural language processing]. Springer. 2022.
20 Ian Goodfellow, Yoshua Bengio 및 Aaron Courville. 딥 러닝. MIT Press. 2016. https://www.deeplearningbook.org/.
21 Xinwei Zhang, Yaoci Han, Wei Xu, 및 Qili Wang. “HOBA: 딥 러닝 아키텍처를 사용한 신용 카드 사기 탐지를 위한 새로운 기능 엔지니어링 방법론” [HOBA: a novel feature-engineering methodology for credit-card fraud detection using a deep-learning architecture]. 정보 과학. Vol. 557. 2021. pp. 302–316. https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X. Daniel Gibert, Jordi Planes, Carles Mateu, and Quan Le. “기능 엔지니어링과 딥 러닝의 융합: 멀웨어 분류 사례 연구” [Fusing feature engineering and deep learning: a case study for malware classification]. Expert Systems with Applications. Vol. 207. 2022. https://www.sciencedirect.com/science/article/pii/S0957417422011927. Ebenezerm Esenogho, Ibomoiye Domor Mienye, Theo Swart, Kehinde Aruleba, 및 George Obaido. “신용 카드 사기 탐지 개선을 위한 기능 엔지니어링을 사용한 신경망 앙상블” [A neural-network ensemble with feature engineering for improved credit-card fraud detection]. IEEE Access. Vol. 10. 2020. pp. 16400–16407. https://ieeexplore.ieee.org/abstract/document/9698195.