데이터를 설명하고 예측을 수행하는 데 사용되는 입력 변수.
피처들은 일반적으로 수치이나, 그래프와 같은 자료 구조적인 피처들도 있다.
데이터는 값의 형태에 따라 수치형 데이터와 범주형 데이터로 구분할 수 있다. 이때 우리가 해결하고자 하는 문제를 컴퓨터가 잘 이해할 수 있도록 피처(변수)들의 형태를 변형하거나 적절하게 처리하는 과정을 피처 엔지니어링(Feature Engineering)이라고 한다.
서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업.
트리기반 모델은 피처 스케일링이 필요가 없다. 트리기반 모델은 데이터의 상대적인 크기에 영향을 받기 때문에 스케일링을 해도 크게 영향을 받지 않는다.
스케일링의 방법으로 표준화(Standardization)과 정규화(Normalization)이 있다.
from sklearn.preprocessing import StandardScaler
※ StandardScaler와 Normalizer는 평균값을 빼주고 편차로 나눠준다는 점에서 동일한 공식을 사용하지만, 다른 기법은 열(피쳐, 또는 속성) 기반 연산을 하는 반면 Normalizer는 행 기반으로 정규화를 진행!
from sklearn.preprocessing import MinMaxScaler
from sklearn.preprocessing import RobustScaler
몇개의 범주 중 하나에 속하는 값들로 구성된 변수
혈액형, 성별 등 서열이 없는 변수를 비서열 변수,
성적, 직급 등 서열이 있는 변수를 서열 변수라 한다.
컴퓨터가 인식할 수 있도록 문자로 된 데이터를 수치 데이터로 변환해 주는 것
사이킷런은 문자를 입력값으로 처리하지 않아 변환해주어야 함
n개의 종류를 가진 값들에 0 ~ (n-1)의 숫자를 부여하는 방법
만족도 조사, 성적 등 주로 순서형 자료에 적합하여 숫자들 사이에서 관계가 존재할 때 사용
from sklearn.preprocessing import LabelEncoder
변수값들을 1과 0으로 매핑하여 여러 파생 변수로 만든다
변수값만큼 칼럼(columns)이 생기고 그에 따라 학습 속도가 저하될 수 있다
접근 방식에 순서가 없다
고유한 값을 갖는 열을 인코딩 하기에 적합하진 않다
pd.get_dummies(data['label'])
from sklearn.preprocessing import OneHotEncoder
범주형 변수값을 이진법으로 변환해준다
범주형 변수값을 숫자로 변환하고 숫자를 이진법으로 바꾼다
각 자리수에 맞춰 컬럼을 생성해 각 행에 0과 1로 표시한다
원핫 인코딩에 비해 훨씬 적은 개수의 변수가 생성되어 모델 학습 시 속도가 더 빠른 장점이 있다
pd.get_dummies(data['label'])
from sklearn.preprocessing import OneHotEncoder
데이터 전처리 기법 중 하나로 범주형, 수치형 데이터에 모두 적용 가능하며 구간화로 볼 수 있다
예) 지지율 여론조사 시 20대 지지율, 30대 지지율 등
과적합(overfitting) 완화 및 방지
이상치(outlier)로 인한 문제 완화
결측치(missing value) 처리의 간소화
결과의 해석 용이
로그를 취해주게 되면 큰 숫자를 작은 숫자로 만들 수 있고 첨도와 왜도가 줄어들어 정규성이 높아져 결과적으로 분석의 정확도를 더 높일 수 있다