수동 유사성 측정 만들기

두 예의 유사성을 계산하려면 두 예의 모든 특성 데이터를 하나의 숫자 값으로 결합해야 합니다.

예를 들어 신발 사이즈라는 1가지 기능만 있는 신발 데이터 세트를 생각해 보세요. 두 사이즈의 차이를 계산하여 두 신발의 유사성을 수치화할 수 있습니다. 크기 간 숫자 차이가 작을수록 신발 간의 유사성이 높아집니다. 이러한 수동 유사성 측정을 수동 유사성 측정이라고 합니다.

크기와 색상을 모두 사용하여 신발 간의 유사성을 찾으려면 어떻게 해야 할까요? 색상은 범주형 데이터이며 수치 크기 데이터와 결합하기가 어렵습니다. 데이터가 더 복잡해짐에 따라 수동 유사성 측정 방법을 만들기가 더 어려워질 것입니다. 데이터가 충분히 복잡해지면 수동 측정을 만들 수 없습니다. 이때 지도 지도 머신러닝 모델이 유사성을 계산하는 지도 유사성 측정으로 전환합니다.

감독 대상 유사성 측정은 나중에 설명하겠습니다. 여기서는 수동 측정에 중점을 둡니다. 지금은 수동 유사성 측정값을 만드는 데 문제가 있을 때 감독 대상 유사성 측정값으로 전환합니다.

수동 유사성 측정의 작동 원리를 이해할 수 있도록 신발의 예를 살펴보겠습니다. 모델에 신발 사이즈와 신발 가격 데이터라는 두 가지 특성이 있다고 가정해 보겠습니다. 두 특성은 모두 숫자이므로 다음과 같이 유사성을 나타내는 하나의 숫자로 조합할 수 있습니다.

  • 크기 (s): 신발 크기는 가우시안 분포를 형성할 가능성이 높습니다. 확인하세요. 그런 다음 데이터를 정규화합니다.
  • 가격 (p): 데이터는 푸아송 분포일 가능성이 높습니다. 확인하세요. 데이터가 충분하다면 데이터를 분위수로 변환하고 \([0,1]\)로 확장합니다.
  • 평균 제곱근 오차 (RMSE)를 사용하여 데이터를 결합합니다. 여기서 유사성은 \(\sqrt{\frac{s^2+p^2}{2}}\)입니다.

간단한 예를 들어 미국 크기가 8과 11이고 가격이 120 및 150인 두 신발의 유사성을 계산해 보겠습니다. 분포를 이해하는 데 필요한 데이터가 충분하지 않으므로 분위수를 정규화하거나 사용하지 않고 단순히 데이터를 확장합니다.

작업메서드
크기를 조정합니다. 최대 신발 사이즈가 20라고 가정하겠습니다. 8과 11을 최대 크기 20으로 나누면 0.4와 0.55가 됩니다.
가격 조정. 120과 150을 최대 가격인 150으로 나누어 0.8과 1을 얻습니다.
크기 차이를 확인합니다. \(0.55 - 0.4 = 0.15\)
가격 차이를 확인할 수 있습니다. \(1 - 0.8 = 0.2\)
RMSE를 찾습니다. \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

직관적으로 볼 때 특성 데이터가 유사해지면 측정된 유사성이 높아집니다. 대신 측정한 유사성이 실제로 감소합니다. 측정된 유사성을 1에서 빼서 직관을 따르도록 하세요.

\[\text{Similarity} = 1 - 0.17 = 0.83\]

일반적으로 데이터 준비에 설명된 대로 숫자 데이터를 준비한 다음 유클리드 거리를 사용하여 데이터를 결합할 수 있습니다.

범주형 데이터가 있다면 어떻게 해야 할까요? 범주형 데이터는 다음 중 하나일 수 있습니다.

  • 자동차 색상 (예: '흰색' 또는 '파란색' 중 하나뿐 아니라 둘 다 제외)과 같은 단일 값(일방향)
  • 영화 장르와 같은 다중 값 (다변수)을 동시에 사용할 수 있습니다('작업'과 '코미디'를 동시에 사용하거나 '작업'만 사용 가능).

일방적 데이터가 일치하면 유사성은 1이고 그렇지 않으면 0입니다. 다중값 데이터는 처리하기가 더 어렵습니다. 예를 들어 영화 장르는 사용이 어려울 수 있습니다. 이 문제를 처리하려면 영화에 고정된 장르의 장르가 할당되어 있다고 가정해 보겠습니다. Jaccard 유사성이라는 공통 값의 비율을 사용하여 유사성을 계산합니다.

예:

  • ['코미디',액션'] 및 ['코미디',액션'] = 1
  • ['코미디',액션'] 및 ['액션'] = 1⁄2
  • ['코미디',액션'] 및 ['액션', '드라마'] = 1⁄3
  • ['코미디',액션'], ['논픽션','약력'] = 0

다음 표에는 범주형 데이터를 처리하는 방법의 몇 가지 추가 예가 나와 있습니다.

우편번호 우편번호 간 거리가 가까우면 우편번호가 서로 가깝습니다. 유사성을 정확하게 계산하는 데 필요한 정보를 인코딩하려면 우편번호를 위도 및 경도로 변환하면 됩니다. 우편번호 한 쌍의 경우, 위도와 경도 간의 차이를 별도로 계산합니다. 그런 다음 차이를 추가하여 단일 숫자 값을 가져옵니다.
색상 색상 데이터가 텍스트로 있다고 가정합니다. 텍스트 값을 숫자 RGB 값으로 변환합니다. 이제 두 색상의 빨간색, 녹색, 파란색 값의 차이를 찾고 유클리드 거리를 사용하여 차이를 숫자 값으로 결합합니다.

일반적으로 유사성 측정항목은 실제 유사성에 직접 대응해야 합니다. 측정항목이 그렇지 않으면 필요한 정보를 인코딩하지 않는 것입니다. 앞의 예시에서는 우편번호 자체가 필요한 정보를 인코딩하지 않았으므로 우편번호를 위도 및 경도로 변환했습니다.

유사성 측정을 만들기 전에 데이터를 신중하게 처리하세요. 이 페이지의 예시는 작고 간단한 데이터 세트를 사용했지만, 대부분의 실제 데이터 세트는 훨씬 더 크고 훨씬 더 복잡합니다. 분위수는 숫자 데이터를 처리하기 위한 좋은 기본 선택입니다.