12장. PySpark의 기능 엔지니어링
이 작품은 AI를 사용하여 번역되었습니다. 여러분의 피드백과 의견을 환영합니다: translation-feedback@oreilly.com
이 장에서는 머신 러닝 모델을 구축할 때 데이터의 특징(자동차 가격부터 유전자 값, 헤모글로빈 수 또는 교육 수준까지 측정 가능한 모든 속성)으로 작업하기 위한 디자인 패턴( 특징 엔지니어링이라고도 함)을 다룹니다. 이러한 프로세스(특징 추출, 변환, 선택)는 효과적인 머신 러닝 모델을 구축하는 데 필수적입니다. 피처 엔지니어링은 머신 러닝에서 가장 중요한 주제 중 하나인데, 미래 예측 모델의 성공 또는 실패는 주로 선택한 피처에 달려 있기 때문입니다.
Spark는 선형 회귀, 로지스틱 회귀, 의사 결정 트리 등 잘 알려진 많은 알고리즘을 위한 포괄적인 머신 러닝 API를 제공합니다. 이 장의 목표는 모든 종류의 머신 러닝 파이프라인을 구축하는 데 사용할 수 있는 기본적인 도구와 기술을 PySpark에서 소개하는 것입니다. 이 장에서는 Spark의 강력한 머신 러닝 도구와 유틸리티를 소개하고 PySpark API를 사용한 예제를 제공합니다. 여기서 배우는 기술은 데이터 과학자나 데이터 엔지니어를 꿈꾸는 분들에게 유용할 것입니다. 선형 회귀, 주성분 분석 또는 서포트 벡터 머신과 같은 유명한 머신 러닝 알고리즘은 이미 많은 책에서 다루고 있기 때문에 익숙해지는 것이 목표가 아니라 데이터를 정리하고 다양한 머신 러닝 알고리즘을 위한 모델을 구축하는 데 사용할 수 있는 도구(정규화, 표준화, 문자열 색인 등)를 갖추게 하는 것이 목표입니다.
어떤 알고리즘을 사용하든 피처 엔지니어링은 중요합니다. 머신 러닝을 사용하면 데이터에서 패턴을 찾을 수 있습니다. 모델을 구축하여 패턴을 찾은 다음 구축된 모델을 사용하여 새로운 데이터 포인트(즉, 쿼리 데이터)에 대한 예측을 할 수 있습니다. 이러한 예측을 올바르게 하려면 데이터 집합을 구성하고 데이터를 올바르게 변환해야 합니다. 이 장에서는 이 두 가지 핵심 단계를 다룹니다.
논의할 주제는 다음과 같습니다:
-
새로운 파생 기능 추가
-
UDF 생성 및 적용
-
파이프라인 만들기
-
데이터 이진화
-
데이터 전치
-
토큰화
-
표준화
-
정규화
-
문자열 인덱싱
-
벡터 어셈블리
-
버켓팅
-
로그 변환
-
원핫 인코딩
-
TF-IDF
-
기능 해싱
-
SQL 변환 적용하기
먼저 기능 엔지니어링에 대해 좀 더 자세히 살펴보겠습니다.
기능 엔지니어링 소개
기능 엔지니어링 마스터에 대한 훌륭한 블로그 게시물에서 Jason Brownlee는 기능 엔지니어링을 "원시 데이터를 예측 모델의 근본 문제를 더 잘 나타내는 기능으로 변환하여 보이지 않는 데이터에 대한 모델 정확도를 향상시키는 프로세스"라고 정의합니다. 이 장에서는 더 나은 예측 모델을 구축하는 데 사용할 수 있는 일반적인 기능 엔지니어링 기술을 PySpark에서 제공하는 방법을 ...