좋은 머신 러닝 모델을 구축하는데 중요한 것은, 데이터를 주입하기 전에 조사하고 전처리하는 것! -> 데이터 전처리
방법
1. 누락된 값을 제거하거나 대체하기
- 제거를 하게되면 데이터를 너무 많이 잃게 될 때는 대체하는 것도 좋은 방법
- 대체(보간; 주어진 데이터 포인트 사이에 값을 추정하는 과정)하는 방법 중 가장 흔한 방법은 평균으로 대체하는 것. 즉 각 특성 열의 전체 평균으로 누락된 값을 바꿈
2. 범주형 데이터로 변환
(1) 순서가 있는 데이터 ex) size: XL > L > M
- 순서 특성을 올바르게 인식하려면 범주형의 문자열 값을 정수로 바꿔야 함. -> 매핑 함수 생성 필요 ex) size: XL:3, L:2, M:1
(2) 순서가 없는 데이터 ex) 색상: 빨, 파, 초
- 순서가 없는 데이터에 정수를 매핑해주면, 빨:3, 파:2, 초:1 => 컬러값에는 순서가 없지만 파란색은 초록색보다 크고, 빨간색은 파란색보다 크다고 가정하게 된다! 이런 문제를 해결하기 위한 방법이 아래의 원-핫 인코딩
- 원-핫 인코딩: 범주형 데이터를 이진 벡터로 변환하는 방법. 각 범주를 고유한 열로 변환하고, 해당 범주에 해당하는 열에만 1을, 나머지 열에는 0을 넣습니다. 예) "빨강", "파랑", "초록"이 있을 때, "빨강"은 [1, 0, 0], "파랑"은 [0, 1, 0], "초록"은 [0, 0, 1]로 변환.
3. 모델과 관련이 높은 특성 선택(유용한 특성 선택)
- 모델이 테스트 데이터셋보다 훈련 데이터셋에서 성능이 훨씬 높다면 과대적합에 대한 강력한 신호! -> 즉 모델이 새로운 데이터에는 일반화하지 못하여 모델 분산이 크다는 의미! -> 과대적합은 훈련 데이터에 비해 모델이 너무 복잡하기 때문!
[모델 복잡도을 제한하는 방법]
① L1 규제와 L2 규제
- L1 규제: 가중치의 절댓값을 기준으로 규제를 적용하는 방식. 가중치의 절댓값 합을 최소화
- L2 규제: 가중치 제곱을 기준으로 규제를 적용. 가중치의 제곱합을 최소화
② 특성 선택을 통한 차원 축소
a. 특성 선택
- 원본 특성에 일부 선택하는 것.
- 전통적인 특성 선택 알고리즘: 순차 특성 선택 알고리즘(탐욕적 탐색 알고리즘)
- 탐욕적 알고리즘이란?
- 순차 특성 선택 알고리즘(탐욕적 탐색 알고리즘)은 주어진 특성 중에서 모델 성능을 최적화하는 특성만을 선택하는 알고리즘. 한 번에 하나씩 특성을 추가하거나 제거하며 최적의 특성 집합을 찾아감.
- 전통적인 순차 특성 선택 알고리즘: 순차 후진 선택(SBS).
- 순차 후진 선택이란?
- 순차 후진 선택(SBS)은 모델 성능이 가장 나쁘게 되는 특성을 하나씩 제거하면서 성능이 개선되도록 특성을 선택하는 방법. 처음에는 모든 특성을 사용하고, 불필요한 특성을 하나씩 제거하여 최적의 특성 집합을 찾음.
b. 특성 추출
- 일련의 특성에서 얻은 정보로 새로운 특성 만듦.
ex) 차원축소. 제거하는 대신 저차원 부분 공간으로 특성 압축
(앞으로 책에서 5장에 해당되는 내용)