한국외대 DSC(Developer Student Club) 멤버들과 함께 머신러닝 스터디를 진행하면서 “머신 러닝 교과서“를 블로그에 정리한 내용입니다.
누락된 데이터 예시: null, NaN(Not a Number)
Pandas DataFrame으로 데이터를 읽어온다. 누락된 값은 isnull로 확인 가능하다. 누락되면 True, 아니면 False 반환
df.isnull().sum()
'''
A 0
B 0
C 1
D 1
dtype: int64
'''
# 누락된 값이 있는 행을 삭제합니다.
df.dropna(axis=0)
# 누락된 값을 열의 평균으로 대체합니다.
from sklearn.preprocessing import Imputer
imr = Imputer(missing_values='NaN', strategy='mean', axis=0)
imr = imr.fit(df.values)
imputed_data = imr.transform(df.values)
imputed_data
fit 메서드로 훈련 데이터의 모델 파라미터를 학습 후 transform 메서드로 학습한 파라미터로 데이터를 변환합니다.
실제 데이터는 범주형일 경우가 많다.
과대 적합(overfitting)의 문제가 생길 수 있다. 과소 적합의 문제도 있는데 과소적합은 데이터가 모자랄 뿐 아니라 전반적인 개발의 문제이기 때문에 근거를 특정하기 힘들어서 다루지 않은 것으로 보인다.
과대 적합의 문제를 해결하는 방법은 아래와 같다.
랜덤 포레스트를 사용하면 앙상블에 참여한 모든 결정 트리에서 계산한 평균적인 불순도 감소로 특성 중요도를 측정할 수 있습니다.