특징과 거리 만들기
과일을 길이와 무게로 기록하면 과일 하나를 (길이, 무게)라는 특징 벡터로 표현할 수 있습니다. 특징은 판단에 사용하는 관찰값입니다. 어떤 특징과 단위를 고르느냐에 따라 결과가 달라집니다.
두 점 사이의 거리
A=(1,2), B=(4,6)일 때 유클리드 거리는 직선 거리이고, 맨해튼 거리는 각 성분 차이의 절댓값을 더한 것입니다.
import math
a, b = (1, 2), (4, 6)
print(math.sqrt(sum((x - y) ** 2 for x, y in zip(a, b))))
print(sum(abs(x - y) for x, y in zip(a, b)))
출력은 5.0, 7입니다. 둘 중 하나가 모든 문제에서 옳은 것은 아닙니다. 데이터와 목표에 맞는 기준을 골라야 합니다.
단위가 판단을 지배할 수 있습니다
길이는 1020cm, 무게는 100500g으로 적으면 숫자 범위가 큰 무게가 거리 계산을 더 크게 좌우할 수 있습니다. 표준화는 특징마다 평균을 빼고 표준편차로 나누는 방법입니다. 평균과 표준편차는 학습 데이터에서 구하고 평가 데이터에는 그대로 적용합니다.
범주 이름을 단순히 1, 2, 3으로 바꾸면 1과 2가 1과 3보다 가깝다는 뜻이 생깁니다. 그런 순서가 없다면 원-핫 인코딩처럼 다른 표현을 검토해야 합니다.
특징을 많이 넣는다고 항상 좋아지지는 않습니다. 잡음, 중복, 비용, 표본 수를 함께 고려합니다.
확인 문제
모델을 평가하기 전에 학습과 평가 데이터를 모두 합쳐 평균을 구하면 왜 문제가 될까요?
해설 보기
아직 보지 않은 데이터로 평가하려는데 그 분포를 전처리에서 미리 사용하게 됩니다. 데이터 누수입니다. 전처리 기준도 학습 과정의 일부로 보고 학습 데이터에서만 맞춰야 합니다.