특징공학
Feature engineering| 에 관한 시리즈의 일부 |
| 머신러닝 데이터 마이닝 |
|---|
이 기사는 업데이트가 필요합니다.이할 수 바랍니다. (2024년 2월) |
지도 기계 학습 및 통계 모델링의[1] 전처리 단계인 특징 엔지니어링은 원시 데이터를 보다 효과적인 입력 세트로 변환합니다. 각 입력은 기능으로 알려진 여러 속성으로 구성됩니다. 기능 엔지니어링은 모델에 관련 정보를 제공함으로써 예측 정확도와 의사 결정 능력을 크게 향상시킵니다.[2][3]
기계 학습을 넘어 물리학을 포함한 다양한 과학 분야에 특징 공학의 원리가 적용되고 있습니다. 예를 들어, 물리학자들은 유체 역학에서 레이놀즈 수, 열 전달에서 누셀트 수, 침전에서 아르키메데스 수와 같은 무차원 수를 구성합니다. 그들은 또한 역학에서 재료의 강도에 대한 분석 솔루션과 같은 솔루션의 첫 번째 근사치를 개발합니다.[4]
예측 모델링
기계 학습 및 통계 모델링의 특징 엔지니어링은 데이터 특징을 선택, 생성, 변환 및 추출하는 것을 포함합니다. 주요 구성 요소로는 기존 데이터에서 특징 생성, 누락되거나 잘못된 특징의 변형 및 대입, 주성분 분석(PCA), 독립성분 분석(ICA), 선형 판별 분석(LDA) 등의 방법을 통해 데이터 차원을 줄이는 것, 중요도 점수 및 상관관계 행렬을 기반으로 모델 학습에 가장 관련성이 높은 특징을 선택합니다.[5]
기능의 중요성은 다양합니다.[6] 상대적으로 중요하지 않은 기능도 모델에 기여할 수 있습니다. 형상 선택은 형상 수를 줄여 모델이 훈련 데이터 세트에 너무 특정되지 않도록(과적합) 방지할 수 있습니다.[7]
특징 폭발은 식별된 특징의 수가 너무 많아 효과적인 모델 추정이나 최적화가 불가능할 때 발생합니다. 일반적인 원인은 다음과 같습니다.
- 형상 템플릿 - 새로운 형상을 코딩하는 대신 형상 템플릿 구현
- 형상 조합 - 선형 시스템으로 표현할 수 없는 조합
기능 폭발은 정규화, 커널 방법 및 기능 선택과 같은 기술을 통해 제한될 수 있습니다.[8]
자동화
피처 엔지니어링의 자동화는 1990년대로 거슬러 올라가는 연구 주제입니다.[9] 자동화된 기능 엔지니어링을 통합한 머신 러닝 소프트웨어는 2016년부터 상용화되었습니다.[10] 관련 학술 문헌은 크게 두 가지로 나눌 수 있습니다.
- 다중 관계 의사 결정 트리 학습(MRDTL)은 의사 결정 트리와 유사한 지도 알고리즘을 사용합니다.
- 심층 특징 합성은 더 간단한 방법을 사용합니다.[citation needed]
다관계 의사결정 나무 학습(MRDTL)
다중 관계 의사 결정 트리 학습(MRDTL)은 전통적인 의사 결정 트리 방법을 관계형 데이터베이스로 확장하여 테이블 간의 복잡한 데이터 관계를 처리합니다. 특정 종료 기준에 도달할 때까지 체계적으로 정제된 선택 그래프를 의사 결정 노드로 혁신적으로 사용합니다.[9]
대부분의 MRDTL은 관계형 데이터베이스를 기반으로 구현을 연구하므로 중복 작업이 많이 발생합니다. 이러한 중복은 튜플 전파와 같은 기술을 사용하여 줄일 수 있습니다.[11][12]
오픈 소스 구현
관계형 데이터 및 시계열에 대한 기능 엔지니어링을 자동화하는 수많은 오픈 소스 라이브러리 및 도구가 있습니다.
- featuretools는 시계열 및 관계형 데이터를 기계 학습을 위한 특징 행렬로 변환하기 위한 Python 라이브러리입니다.[13][14][15]
- OneBM 또는 One-Button Machine은 관계형 데이터에 대한 특징 변환 및 특징 선택을 특징 선택 기술과 결합합니다.[16]
[OneBM]은 데이터 과학자들이 짧은 시간에 많은 아이디어를 시도하고 오류를 범할 수 있도록 데이터 탐색 시간을 단축하도록 도와줍니다. 반면에 데이터 과학에 익숙하지 않은 비전문가들은 약간의 노력과 시간, 비용으로 데이터에서 가치를 빠르게 추출할 수 있습니다.[17]
- getML 커뮤니티는 시계열 및 관계형 데이터에 대한 자동화된 기능 엔지니어링을 위한 오픈 소스 도구입니다.[18][19] 파이썬 인터페이스를 갖춘 C/C++로 구현되었습니다.[20] tsflex, tsfresh, tsfel, feature tools 또는 kats보다 최소 60배 이상 빠른 것으로 나타났습니다.[21]
- tsfresh는 시계열 데이터의 특징 추출을 위한 파이썬 라이브러리입니다.[22] 가설 검정을 사용하여 기능의 품질을 평가합니다.[23]
- tsflex는 시계열 데이터에서 특징을 추출하기 위한 오픈 소스 Python 라이브러리입니다.[24] Python으로 100% 작성되었음에도 불구하고, 그것은 신선함, seglearn 또는 tsfel보다 빠르고 메모리 효율적인 것으로 나타났습니다.[25]
- seglearn은 다변량 순차 시계열 데이터를 scikit-learn Python 라이브러리로 확장한 것입니다.[26]
- tsfel은 시계열 데이터의 특징 추출을 위한 Python 패키지입니다.[27]
- kats는 시계열 데이터를 분석하기 위한 Python 툴킷입니다.[28]
심층 특징 합성
심층 특징 합성(DFS) 알고리즘은 대회에서 906명의 인간 팀 중 615명을 이겼습니다.[29][30]
피쳐 스토어
Feature Store는 (데이터 과학자에 의해) 모델을 훈련하거나 (훈련된 모델이 있는 응용 프로그램에 의해) 예측하는 데 사용할 명시적인 목적으로 기능이 저장되고 구성되는 곳입니다. 여러 데이터 소스에서 생성된 기능 그룹을 생성하거나 업데이트하거나 해당 기능 그룹에서 새로운 데이터 세트를 생성 및 업데이트하여 모델을 훈련하거나 기능을 계산하지 않고 예측을 수행하기 위해 필요할 때 검색하는 애플리케이션에 사용할 수 있는 중앙 위치입니다.[31]
기능 저장소에는 기능을 생성하는 데 사용되는 코드를 저장하고, 코드를 원시 데이터에 적용하고, 요청 시 해당 기능을 모델에 제공하는 기능이 포함됩니다. 유용한 기능에는 기능 버전 지정 및 기능을 사용할 수 있는 상황을 관리하는 정책이 포함됩니다.[32]
기능 저장소는 독립형 소프트웨어 도구이거나 기계 학습 플랫폼에 내장될 수 있습니다.
대안
기능 엔지니어링은 도메인 전문 지식이 필요하고 시행착오가 수반되는 경우가 많기 때문에 시간이 많이 걸리고 오류가 발생하기 쉬운 프로세스일 수 있습니다.[33][34] 딥 러닝 알고리즘은 기능 엔지니어링에 의존하지 않고도 대규모 원시 데이터 세트를 처리하는 데 사용할 수 있습니다.[35] 그러나 딥 러닝 알고리즘은 여전히 입력 데이터의 신중한 전처리와 청소가 필요하다는 점에 유의해야 합니다.[36] 또한 심층 신경망에 적합한 아키텍처, 하이퍼파라미터 및 최적화 알고리즘을 선택하는 것은 어렵고 반복적인 프로세스가 될 수 있습니다.[37]
참고 항목
참고문헌
- ^ Hastie, Trevor; Tibshirani, Robert; Friedman, Jerome H. (2009). The Elements of Statistical Learning: Data Mining, Inference, and Prediction. Springer. ISBN 978-0-387-84884-6.
- ^ Shalev-Shwartz, Shai; Ben-David, Shai (2014). Understanding Machine Learning: From Theory to Algorithms. Cambridge: Cambridge University Press. ISBN 9781107057135.
- ^ Murphy, Kevin P. (2022). Probabilistic Machine Learning. Cambridge, Massachusetts: The MIT Press (Copyright 2022 Massachusetts Institute of Technology, this work is subject to a Creative Commons CC-BY-NC-ND license). ISBN 9780262046824.
- ^ MacQueron C (2021). SOLID-LIQUID MIXING IN STIRRED TANKS : Modeling, Validation, Design Optimization and Suspension Quality Prediction (Report). doi:10.13140/RG.2.2.11074.84164/1.
- ^ "Feature engineering - Machine Learning Lens". docs.aws.amazon.com. Retrieved 2024-03-01.
- ^ "Feature Engineering" (PDF). 2010-04-22. Retrieved 12 November 2015.
- ^ "Feature engineering and selection" (PDF). Alexandre Bouchard-Côté. October 1, 2009. Retrieved 12 November 2015.
- ^ "Feature engineering in Machine Learning" (PDF). Zdenek Zabokrtsky. Archived from the original (PDF) on 4 March 2016. Retrieved 12 November 2015.
- ^ a b Knobbe AJ, Siebes A, Van Der Wallen D (1999). "Multi-relational Decision Tree Induction" (PDF). Principles of Data Mining and Knowledge Discovery. Lecture Notes in Computer Science. Vol. 1704. pp. 378–383. doi:10.1007/978-3-540-48247-5_46. ISBN 978-3-540-66490-1.
- ^ "Its all about the features". Reality AI Blog. September 2017.
- ^ Yin X, Han J, Yang J, Yu PS (2004). "CrossMine: Efficient classification across multiple database relations". Proceedings. 20th International Conference on Data Engineering. pp. 399–410. doi:10.1109/ICDE.2004.1320014. ISBN 0-7695-2065-0. S2CID 1183403.
- ^ Frank R, Moser F, Ester M (2007). "A Method for Multi-relational Classification Using Single and Multi-feature Aggregation Functions". Knowledge Discovery in Databases: PKDD 2007. Lecture Notes in Computer Science. Vol. 4702. pp. 430–437. doi:10.1007/978-3-540-74976-9_43. ISBN 978-3-540-74975-2.
- ^ "What is Featuretools?". Retrieved September 7, 2022.
- ^ "Featuretools - An open source python framework for automated feature engineering". Retrieved September 7, 2022.
- ^ "github: alteryx/featuretools". GitHub. Retrieved September 7, 2022.
- ^ Thanh Lam, Hoang; Thiebaut, Johann-Michael; Sinn, Mathieu; Chen, Bei; Mai, Tiep; Alkan, Oznur (2017-06-01). "One button machine for automating feature engineering in relational databases". arXiv:1706.00327 [cs.DB].
- ^ Thanh Lam, Hoang; Thiebaut, Johann-Michael; Sinn, Mathieu; Chen, Bei; Mai, Tiep; Alkan, Oznur (2017-06-01). "One button machine for automating feature engineering in relational databases". arXiv:1706.00327 [cs.DB].
- ^ "getML documentation". Retrieved September 7, 2022.
- ^ "github: getml/getml-community". GitHub. Retrieved September 7, 2022.
- ^ "github: getml/getml-community". GitHub. Retrieved September 7, 2022.
- ^ "github: getml/getml-community". GitHub. Retrieved September 7, 2022.
- ^ "tsfresh documentation". Retrieved September 7, 2022.
- ^ "Time Series FeatuRe Extraction on basis of Scalable Hypothesis tests (tsfresh – A Python package)". Retrieved September 7, 2022.
- ^ "predict-idlab/tsflex". GitHub. Retrieved September 7, 2022.
- ^ Van Der Donckt, Jonas; Van Der Donckt, Jeroen; Deprost, Emiel; Van Hoecke, Sofie (2022). "tsflex: Flexible time series processing & feature extraction". SoftwareX. 17: 100971. arXiv:2111.12429. Bibcode:2022SoftX..1700971V. doi:10.1016/j.softx.2021.100971. S2CID 244527198. Retrieved September 7, 2022.
- ^ "seglearn user guide". Retrieved September 7, 2022.
- ^ "Welcome to TSFEL documentation!". Retrieved September 7, 2022.
- ^ "github: facebookresearch/Kats". GitHub. Retrieved September 7, 2022.
- ^ "Automating big-data analysis". 16 October 2015.
- ^ Kanter, James Max; Veeramachaneni, Kalyan (2015). "Deep feature synthesis: Towards automating data science endeavors". 2015 IEEE International Conference on Data Science and Advanced Analytics (DSAA). pp. 1–10. doi:10.1109/DSAA.2015.7344858. ISBN 978-1-4673-8272-4. S2CID 206610380.
- ^ "What is a feature store". Retrieved 2022-04-19.
- ^ "An Introduction to Feature Stores". Retrieved 2021-04-15.
- ^ "Feature Engineering in Machine Learning". Engineering Education (EngEd) Program Section. Retrieved 2023-03-21.
- ^ explorium_admin (2021-10-25). "5 Reasons Why Feature Engineering is Challenging". Explorium. Retrieved 2023-03-21.
- ^ Spiegelhalter, D. J. (2019). The art of statistics : learning from data. [London] UK. ISBN 978-0-241-39863-0. OCLC 1064776283.
{{cite book}}: CS1 maint: 위치 누락 게시자(링크) - ^ Sarker IH (November 2021). "Deep Learning: A Comprehensive Overview on Techniques, Taxonomy, Applications and Research Directions". SN Computer Science. 2 (6): 420. doi:10.1007/s42979-021-00815-1. PMC 8372231. PMID 34426802.
- ^ Bengio, Yoshua (2012), "Practical Recommendations for Gradient-Based Training of Deep Architectures", Neural Networks: Tricks of the Trade, Lecture Notes in Computer Science, vol. 7700, Berlin, Heidelberg: Springer Berlin Heidelberg, pp. 437–478, arXiv:1206.5533, doi:10.1007/978-3-642-35289-8_26, ISBN 978-3-642-35288-1, S2CID 10808461, retrieved 2023-03-21
추가읽기
- Boehmke B, Greenwell B (2019). "Feature & Target Engineering". Hands-On Machine Learning with R. Chapman & Hall. pp. 41–75. ISBN 978-1-138-49568-5.
- Zheng A, Casari A (2018). Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists. O'Reilly. ISBN 978-1-4919-5324-2.
- Zumel N, Mount (2020). "Data Engineering and Data Shaping". Practical Data Science with R (2nd ed.). Manning. pp. 113–160. ISBN 978-1-61729-587-4.