: 도메인 지식을 이용해 원자료를 가공하여 특징을 추출하는 작업
: 분석을 위해서는 먼저 데이터를 전처리 해야한다.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
df.isnull().sum()
혹은 df.isna().sum()
: 각 열마다 NaN이 몇개인가?df.dropna(axis = 1)
: NaN이 있는 행 또는 열 제거df.fillna()
values = {'Score': 3, 'Price': 10}
, df.fillna(value=values)
df.fillna(method=ffill)
df.interpolate(method = 'linear')
: 이전&이후 값의 중간값으로 대체하기: 범주형 변수를 더미변수로 만들기
: 만약, 범주형을 단순히 숫자로 변환한다면 머신러닝은 이를 사칙연산의 의미를 가진 것으로 해석할 수 있음. 그러므로 이진 변환 해야함
예:
: 삼성, 엘지, 레노버
삼성 | 엘지 | 레노버 |
---|---|---|
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
pd.get_dummies(변수명, prefix = 'A', drop_first=True)
: 가변수화
data = pd.get_dummies(data, columns=['변수명'], drop_first=True)
: 변수로 저장한 다음 concat으로 합친 후 기존 column은 삭제할 필요 없이, 바로 원본 데이터에 column이 추가되고, 가변수화에 쓰인 column은 삭제됨
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
train_x = scaler.fit_transform(train_x)
test_x = scaler.transform(test_x)
# 학습시키면 다 넘파이 배열로 바뀌기 때문에, 이를 df화 해서 봐야함
pd.DataFrame(train_x).describe()
pd.to_datetime()
: 앞서 이야기함.