머신 러닝에 사용되는 데이터들은 컬럼 별로 값의 범위가 다양한 경우가 많습니다.
이 경우 train, test 데이터를 같은 scaler 객체로 스케일링 해야 합니다.
1. Standard Scaler
평균 0, 분산 1인 정규 분포로 스케일링 하는 기법으로, 분류 분석에서 유용합니다.
이상치에 민감하므로, 이상치를 미리 확인, 정제한 후 사용하는 것이 좋습니다.
from sklearn.preprocessing import StandardScaler
Stdscaler= StandardScaler()
2. Min-max Scaler
컬럼을 0과 1 사이의 값으로 스케일링하는 기법으로, 회귀 분석에서 유용합니다.
이상치에 민감하므로, 이상치를 미리 확인, 정제한 후 사용하는 것이 좋습니다.
from sklearn.preprocessing import MinMaxScaler
MmScaler= MinMaxScaler()
3. Max Abs Scaler
최대절댓값이 1이 되도록 스케일링하는 기법으로, 회귀 분석에서 유용합니다.
이상치에 민감하므로, 이상치를 미리 확인, 정제한 후 사용하는 것이 좋습니다.
from sklearn.preprocessing import MaxAbsScaler
MaScaler= MaxAbsScaler ()
4. Robust Scaler
중앙값을 0으로 설정하고, IQR로 이상치 영향을 최소화하는 기법으로, 회귀,분류 분석에서 모두 유용합니다.
이상치에 민감하므로, 이상치를 미리 확인, 정제한 후 사용하는 것이 좋습니다.
from sklearn.preprocessing import RobustScaler
RuScaler= RobustScaler( quantile_range=(x, y) )
quantile_range 의 default 는 (25, 75) 입니다.
5. 레이블 인코딩 (Label Encoding)
문자열 범주형 값을 고유한 숫자로 할당하는 기법입니다.
from sklearn.preprocessing import LabelEncoder
le= LabelEncoder()
속성: classes_
5. 원-핫 인코딩 (One-Hot Encoding)
범주형 변수들을 결합하여 이진 형식으로 변환하는 기법입니다. 범주가 너무 많으면 과적합을 유발할 수 있다는 단점이 있습니다. pd.get_dummies 와 OneHotEncoder 은 같은 결과를 도출합니다.
pd.get_dummies
from sklearn.preprocessing import OneHotEncoder
oe= OneHotEncoder()
속성: categories_, get_feature_names_out()
● ColumnTransformer
열마다 다른 스케일링을 적용할 수 있도록 해주는 파이썬 클라스입니다.
from sklearn.compose import ColumnTransformer
ct= ColumnTransformer([('scaling', StandardScaler(), ['age', 'hours-per-week']), ('onehot', OneHotEncoder(sparse_output=False), ['workclass', 'education', 'gender', 'occupation'])])
스케일러의 이름, 스케일러, 적용할 열 이름의 순으로 변수를 넣어서 활용합니다.
'데이터 사이언스 기초' 카테고리의 다른 글
분류 분석 (머신 러닝) (0) | 2024.11.27 |
---|---|
회귀 분석 (머신 러닝) (0) | 2024.11.27 |
분산분석 with 파이썬 (1) | 2024.11.15 |
t 검정 with 파이썬 (0) | 2024.11.15 |
웹 스크래핑의 기본 (0) | 2024.11.13 |