머신러닝을 구현할 때는 미 가공 데이터를 머신러닝 알고리즘이 처리할 수 있는 형태로 가공시켜야 한다. 이것을 전처리 라고 한다. 데이터 전처리는 파이썬의 numpy 모듈과 sklearn 모듈을 사용한다.
샘플 데이터 생성
이진화
이진화는 숫자를 이진수로 변환하는 기법이다. 사이킷런 모듈에서 제공하는 메소드로 입력 데이터를 이진화 할 수 있다.
기준 값으로 설정한 2.1보다 큰 값은 1로, 나머지는 0으로 변환된 것을 확인할 수 있다.
평균제거
특징 벡터의 값들이 0을 중심으로 분포하게 만들 때 평균 제거 기법을 만들 수 있다.
우선 현재 데이트들의 평균과 표준편차는 다음과 같다.
평균 제거는 preprocessing.scale() 함수로 할 수 있다.
평균값은 0에, 표준편차는 1에 가깝게 조정되었다.
크기조정
특징 베터의 각 요소에 대한 값의 범위는 일정하지 않을 수 있다. 머신 러닝 알고리즘을 학습시키려면 모든 특징을 동일 선상에서 비교할 수 있도록 각각의 특징에 대한 값의 범위를 일정한 기준으로 조정해야 한다.
각 행마다 최댓값은 1로, 나머지는 1을 기준으로 상대적인 값으로 표현하였다.
정규화
특징 벡터의 값을 일정한 기준으로 측정하기 위한 것이다. 대표적인 정규화 기법으로는 총 합이 1이 되도록 값을 조정하는 L1 정규화와 각 행의 절댓값의 합이 1이 되도록 조정하는 L2 정규화가 있다. L1 정규화 기법은 데이터의 이상치(아웃라이어)에 영향을 덜 받기 때문에 더 안정적이며 이상치가 문제 해결에 중요한 역할을 한다면 L2 정규화를 사용하는 것이 낫다.