NaN 처리
import pandas as pd
# 결측값 확인
df.isna().sum()
>>> Country 0
Age 1
Salary 1
Purchased 0
dtype: int64
# 1. 삭제 전략
df.dropna()
# 2. 채우는 전략
df.fillna(df.mean(numeric_only=True))
Feature Scaling
하나의 변수는 오차가 크고, 하나의 변수는 오차가 작으면, 나중에 오차를 수정할 때 편중된다.
따라서 값의 범위를 맞춰줘야 정확히 트레이닝 된다.
주로 표준화와 정규화를 사용한다.
from sklearn.preprocessing import StandardScaler, MinMaxScaler
1. 표준화(Standardization)
값의 범위를 평균이 0, 분산이 1인 정규분포를 따르는 값으로 변환
s_scaler_x = StandardScaler() # 표준화 인스턴스 호출
X = s_scaler_x.fit_transform(X) # X를 표준화하고 저장
2. 정규화(Normalization)
값의 범위를 0~1사이로 변환
m_scaler_x = MinMaxScaler() # 최대최소 정규화 인스턴스 생성
X = m_scaler_x.fit_transform(X) # X를 최대최소 정규화하고 저장
train_test_split
- 데이터들을 학습용(Training)과 테스트용(Test)으로 분리
- X_train, X_test, y_train, y_test = train_test_split( 데이터X, 데이터y, test_size= 0~1 , random_state= n )
- 데이터 X : 학습시킬 데이터
- 데이터 y : 학습시킬 데이터와 연관되있는 결과 값(레이블)
- test_size : 테스트에 사용될 자원. 0.0부터 1.0사이여야하며 기본 값은 0.25(25%)
- train_size = 학습에 사용될 자원, test_size를 지정해주면 남는 자원을 학습에 사용
- random_state : 분할을 적용하기 전에 데이터에 적용되는 난수를 제어. (seed와 동일)
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=3)
'Machine Learning' 카테고리의 다른 글
머신러닝 - Linear Regression 으로 수치 예측 (0) | 2022.12.07 |
---|---|
데이터 전처리 - Categorical Encoding (0) | 2022.12.05 |