범주형 데이터: 어휘 및 원-핫 인코딩

측정기준이라는 용어는 측정기준의 요소 수를 나타내는 동의어입니다. 특징 벡터. 일부 범주형 특성은 저차원입니다. 예를 들면 다음과 같습니다.

기능 이름 카테고리 수 샘플 카테고리
snowed_today 2 참, 거짓
skill_level 3 초보자, 실무자, 전문가
season 4 겨울, 봄, 여름, 가을
day_of_week 7 월요일, 화요일, 수요일
행성 8 수성, 금성, 지구

범주형 특성에 가능한 카테고리 수가 적은 경우 다음을 수행할 수 있습니다. 어휘로 인코딩합니다. 모델은 어휘 인코딩을 통해 각 별도의 특성으로 표현할 수 있습니다. 학습 중에는 각 카테고리에 대해 서로 다른 가중치를 학습합니다.

예를 들어 자동차의 가격을 기반으로 예측하는 모델을 만든다고 가정하겠습니다 car_color라는 범주형 특성에 관해 다룹니다. 아마도 빨간색 자동차가 초록색 자동차보다 더 가치가 있을 것입니다. 제조업체에서 제공하는 외부 색상에 대한 개수가 제한되어 있으므로 car_color은(는) 저차원의 범주형 특성입니다. 다음 그림은 car_color:

그림 1. 팔레트의 각 색상은
      기능을 사용할 수 있습니다. 즉, 각 색상은 특성 벡터의 개별 특성입니다.
      예: '빨간색' '오렌지'라는 특성으로 별도의 특성이므로
      등등.
그림 1. 각 카테고리의 고유한 특성

연습문제: 직관력 확인하기

참 또는 거짓: 머신러닝 모델은 단일 환경에서 직접 학습할 수 있습니다. 'Red''Black'과 같은 원시 문자열 값에 숫자 벡터로 변환합니다.
학습 중에는 모델이 부동 소수점 수만 조작할 수 있습니다. "Red" 문자열은 부동 소수점 숫자가 아닙니다. 나 "Red"와 같은 문자열을 부동 소수점 숫자로 변환해야 합니다.
거짓
머신러닝 모델은 다음 항목이 있는 특성에 대해서만 학습할 수 있습니다. 부동 소수점 값이 포함되므로 이러한 문자열을 부동 소수점 값을 더 쉽게 찾을 수 있습니다.

색인 번호

머신러닝 모델은 부동 소수점 수만 조작할 수 있습니다. 따라서 다음과 같이 각 문자열을 고유한 색인 번호로 변환해야 합니다. 다음 그림:

그림 2. 각 색상은 고유한 정수 값과 연결됩니다. 대상
      예: '빨간색' 정수 0인 '주황색'과 관련이 있습니다. 다음 코드로 교체합니다.
      정수 1 등입니다.
그림 2. 색인이 생성된 특성

직관력 테스트

모델이 표시된 색인 번호에서 직접 학습해야 하나요? 은(는) 어떤가요?
모델이 색인 번호에 대해 학습한 경우 각을 숫자 값으로 잘못 취급하고 "Black"(색인 번호 5)이(가) 5배 더 유의미합니다. "Orange" (색인 번호 1)보다 모델에 적용됩니다.
아니요
모델이 색인 번호로 학습해서는 안 됩니다. 그렇다면 모델은 각 색인 번호를 숫자로 취급합니다. "Black" (색인 번호 5)를 다음과 같이 간주합니다. 모델이 "Orange"보다 5배 더 의미 있음 (색인 번호 1)

원-핫 인코딩

어휘 빌드의 다음 단계는 각 색인 번호를 원-핫 인코딩입니다. 원-핫 인코딩의 특징은 다음과 같습니다.

  • 각 카테고리는 N개 요소의 벡터 (배열)로 표현되며, 여기서 N 카테고리 수입니다. 예를 들어 car_color에 가능한 8개가 있다면 8개의 요소를 가질 수 있는 원-핫 벡터가 됩니다.
  • 원-핫 벡터의 요소 중 정확히 하나의 값이 1.0입니다. 나머지 모든 요소의 값은 0.0입니다.

예를 들어, 다음 표는 각 레이어의 원-핫 인코딩을 car_color:

기능 빨간색 Orange 파란색 노란색 초록색 검은색 보라색 갈색
"빨간색" 1 0 0 0 0 0 0 0
"오렌지" 0 1 0 0 0 0 0 0
"파란색" 0 0 1 0 0 0 0 0
"노란색" 0 0 0 1 0 0 0 0
"초록색" 0 0 0 0 1 0 0 0
"검은색" 0 0 0 0 0 1 0 0
"보라색" 0 0 0 0 0 0 1 0
"갈색" 0 0 0 0 0 0 0 1

이는 문자열이나 색인 번호가 아닌 원-핫 벡터입니다. 특성 벡터에 추가합니다. 모델은 각 요소의 가중치를 특성 벡터를 생성합니다.

다음 그림은 어휘 표현:

그림 3. 카테고리를 매핑하는 엔드 투 엔드 프로세스의 다이어그램
      특성 벡터를 생성합니다. 다이어그램에서 입력 특성은 '노란색'이며
      '주황색', '파란색', '파란색' 다시 한 번 탭합니다.  시스템은 저장된
      '빨간색'은 0, '주황색'은 1, '파란색'은 2, '노란색'은 3입니다.
      등)를 사용하여 입력 값을 ID에 매핑합니다. 따라서 시스템은 'Yellow'를 매핑하고
      '주황색', '파란색', '파란색' 3, 1, 2, 2. 그런 다음 시스템은
      원-핫 특성 벡터로 변환합니다. 예를 들어 시스템에서
      8개의 색상이 있습니다. 3은 0, 0, 0, 1, 0, 0, 0, 0이 됩니다.
그림 3. 카테고리를 특성 벡터에 매핑하는 엔드 투 엔드 프로세스입니다.

희소 표현

값이 대부분 0 (또는 비어 있음)인 특성을 희소 특성. 여러 항목 car_color와 같은 범주형 특성은 희소 특성인 경향이 있습니다. 희소 표현 1.0의 위치를 저장한다는 의미입니다. 희소 벡터로 변환합니다. 예를 들어 "Blue"의 원-핫 벡터는 다음과 같습니다.

[0, 0, 1, 0, 0, 0, 0, 0]

1는 위치 2에 있으므로 (계산을 0에서 시작할 때) 앞의 원-핫 벡터에 대한 희소 표현은 다음과 같습니다.

2

희소 표현은 8-요소 원-핫 벡터입니다. 중요한 점은 모델이 학습 희소 표현이 아닌 원-핫 벡터입니다.

범주형 데이터의 이상점

수치 데이터와 마찬가지로 범주형 데이터에는 이상점도 포함됩니다. 가정 car_color에는 인기 있는 색상뿐만 아니라 거의 사용되지 않는 색상도 포함되어 있습니다. 이상점 색상(예: "Mauve" 또는 "Avocado") 이러한 이상점 색상마다 별도의 카테고리를 지정하는 대신 하나의 '포괄적'으로 묶을 수 있습니다 카테고리(out-of-vocabulary) (OOV)를 사용합니다. 즉, 모든 이상점 색상은 단일로 비닝됩니다. 이상점 버킷입니다. 시스템은 해당 이상점 버킷의 단일 가중치를 학습합니다.

고차원 범주형 특성 인코딩

일부 범주형 특성은 차원이 많습니다. 예를 들면 다음과 같습니다. 다음 표에 나와 있습니다.

기능 이름 카테고리 수 샘플 카테고리
words_in_english 약 500,000명 "행복", "걷기"
US_postal_codes 약 42,000명 '02114', '90301'
last_names_in_Germany 약 850,000명 "슈미트", "슈나이더"

카테고리 수가 많은 경우 원-핫 인코딩은 일반적으로 좋지 않은 선택입니다. 임베딩은 별도의 임베딩 모듈은 일반적으로 훨씬 더 나은 선택입니다 임베딩을 사용하면 입력 시퀀스의 이는 두 가지 중요한 방식으로 모델에 이점을 제공합니다.

  • 일반적으로 모델의 학습 속도가 더 빠릅니다.
  • 빌드된 모델은 일반적으로 예측을 더 빠르게 추론합니다. 즉, 지연 시간이 짧습니다

해싱 (해싱이라고도 함) 트릭)은 차원 수를 줄이는 덜 일반적인 방법입니다.