지금까지는 모델이 데이터 세트의 행에 직접 작용하는 것처럼 보였지만, 실제로는 모델이 데이터를 다소 다르게 처리합니다.
예를 들어 데이터 세트에 5개의 열이 제공되지만 그중 2개 열 (b
및 d
)만 모델의 특성이라고 가정해 보겠습니다. 3번 행의 예시를 처리할 때 모델은 다음과 같이 강조 표시된 두 셀 (3b 및 3d)의 콘텐츠를 가져옵니다.
사실 모델은 특성 벡터라고 하는 부동 소수점 값 배열을 실제로 처리합니다. 특성 벡터는 하나의 예시를 구성하는 부동 소수점 값으로 생각할 수 있습니다.
하지만 특성 벡터는 데이터 세트의 원시 값을 거의 사용하지 않습니다. 대신 일반적으로 데이터 세트의 값을 모델이 더 잘 학습할 수 있는 표현으로 처리해야 합니다. 따라서 더 현실적인 특성 벡터는 다음과 같습니다.
데이터 세트의 변경된 값보다 실제 값으로 학습하면 모델의 예측이 더 정확해지지 않을까요? 놀랍게도 답은 '아니요'입니다.
원시 데이터 세트 값을 특성 벡터에서 학습 가능한 값으로 나타내는 가장 좋은 방법을 결정해야 합니다. 이 프로세스를 기능 엔지니어링이라고 하며 머신러닝의 핵심 부분입니다. 가장 일반적인 특성 추출 기법은 다음과 같습니다.
이 단원에서는 정규화 및 비닝을 다룹니다. 다음 단원인 범주형 데이터 작업에서는 문자열과 같은 숫자가 아닌 데이터를 부동 소수점 값으로 변환하는 등 다른 형태의 전처리를 다룹니다.
특성 벡터의 모든 값은 부동 소수점 값이어야 합니다. 하지만 많은 지형지물은 자연스럽게 문자열 또는 기타 숫자가 아닌 값입니다. 따라서 특성 공학의 상당 부분은 숫자가 아닌 값을 숫자 값으로 나타내는 것입니다. 이러한 내용은 이후 모듈에서 많이 다룹니다.