머신 러닝의 기능 구성 및 표준화


13

영화 M에 대한 물류 분류기를 만들고 싶다고 가정 해 보겠습니다. 내 특징은 사람의 나이, 성별, 직업, 위치와 같은 것입니다. 훈련 세트는 다음과 같습니다.

  • 연령 성별 직업 위치 좋아요 (1) / 싫음 (0)
  • 23 M 소프트웨어 미국 1
  • 24F 닥터 영국 0

등등 .... 이제 내 질문은 어떻게 기능을 확장하고 표현해야 하는가입니다. 내가 생각한 한 가지 방법 : 나이를 연령 그룹으로 나눕니다. 18-25, 25-35, 35 이상, 성별은 M, F, 위치는 미국, 영국, 기타입니다. 이제이 모든 값에 대해 이진 피처를 작성하십시오. 따라서 연령에는 각각 연령 그룹 등에 해당하는 3 개의 이진 피처가 있습니다. 따라서 미국의 28 세 남성은 010 10100 (010-> 연령 그룹 25-35, 10-> 남성, 100-> 미국)으로 표시됩니다.

여기서 기능을 나타내는 가장 좋은 방법은 무엇입니까? 또한, 나는 일부 예에서 나타났습니다. 예를 들어 성별은 남성과 여성에 대해 0.0045와 -.0.0045의 두 값으로 표시됩니다. 나는 이런 식으로 스케일링 / 비정형 화하는 방법에 대한 단서가 없습니까?


기능을 확장하려는 이유가 확실하지 않습니까? 종종 특징은 0 평균 단일 표준 개발을 갖도록 정규화됩니다. 분류하려는 클래스가 무엇인지에 따라 문제를 정의해야 할 수 있습니다. 로지스틱 회귀는 이진 분류에 유용합니다.
BGreene

당신은 확실히 연령을 분류하고 싶지 않습니다. "영화 등급"은 어떻게 측정됩니까? 1-10 스케일, "좋아요 / 싫어요"입니까?
Peter Flom-Monica Monica 복원

간단히하기 위해 Like와 Dislike라는 두 개의 클래스 만 있다고 가정합니다. 1이되고 싫어하는 것이 0이됩니다.이를 반영하여 문제점 설명을 변경했습니다.
snow_leopard

답변:


15

이진 사례

피처를 이진으로 나타내려면 범주 형 (예 : 실제 ) 값에 대한 적절한 표현이 (각도 온도계 ) 인코딩입니다. 당신은 하지 않습니다 를 정상화 할 필요가있다.

범주 형 기능 의 하나의 핫 인코딩의 경우 각 클래스에 대해 하나의 비트 만 예약하면됩니다. 따라서이 인코딩의 길이는 기능의 클래스 수입니다. 나라의 모범을 보자.

  • 미국의 경우 00001
  • 영국의 경우 00010
  • 아시아의 경우 00100
  • 유럽의 경우 01000
  • 다른 사람을위한 10000

실수 / 정수 기능 의 온도계 인코딩의 경우 길이와 임계 값을 선택해야합니다. 나이의 예를 들어, 임계 값 18,25 및 35에 따라 나이를 나누기로 선택했습니다.

  • 0-17의 경우 000
  • 18-25의 경우 001
  • 25-34의 경우 011
  • 35 이상인 경우 111

두 가지를 합치면 크기 5 + 3 = 8 비트의 인코딩을 얻습니다. 30 세 영국 거주자의 경우

00010UK01130yo

연속 사례

회귀 모델에서 허용하는 경우 자세한 정보가 포함 된 실수 / 정수 피쳐에 대한 실제 값을 유지하는 것이 좋습니다. 예를 다시 생각해 봅시다. 이번에는 단순히 age의 값을 정수로 사용합니다. 따라서 30 세 영국 거주자의 인코딩은

00010UK3030yo

BGreene이 말했듯이,이 값을 정규화하여 평균 0과 표준 편차 1을 유지하여 많은 회귀 모형의 안정성을 보장해야합니다. 그러기 위해서는 단순히 경험적 평균을 빼고 경험적 표준 편차로 나눕니다.

Y_normalized = ( Y - mean(Y) ) / std(Y)

데이터베이스에있는 모든 사람의 평균 연령이 25이고 표준 편차가 10 인 경우 30y.o의 정규화 된 값입니다. person은 이며 U K 0 0 0 1 030 y o 0.5(3025)/10=0.5

00010UK0.530yo

쿨 .. 예를 들어 국가 : 영국, 연령 그룹 : 25-34와 같은 사람이 있다고 가정 해 봅시다. 하나의 핫 인코딩을 사용하면 국가 : 2 , 연령 그룹 : 4 로 값이 생성됩니다 . 이제 특징 벡터를 만드는 동안이를 정규화해야합니다. 그래서 그것들이 0.4와 0.6이라고한다면, 모델링 할 입력 특징 벡터는 본질적으로 [0.4, 0.6]이됩니다.
snow_leopard

hmm .. "one hot"인코딩을 사용하는 경우 인코딩 값을 정수 표현으로 피처로 변환해야합니다 (예 : 0010은 2가 됨).이 중 하나만 ON 인 4 개의 피처 세트로 처리해야합니까? 전자의 경우 1000이 0001에 이어 0100에 가깝다는 개념을 도입하지 않았는데, 이는 미국의 특징 값이 영국의 특징 값과 아시아의 값 또는 그 밖의 다른 값에 더 가깝기를 원하지 않기 때문에 의도가 아닐 수 있습니다.
snow_leopard

이 요점을 명확히하기 위해 답을 편집했습니다. 이진 피쳐를 정규화 할 필요가 없으며 벡터로 취급해야하며 정수로 변환하지 않아도됩니다.
Emile

정말 유용하고 명확한 설명. 감사!
George Liu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.