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


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 세 영국 거주자의 경우

0⋅0⋅0⋅1⋅0⏞UK⋅0⋅1⋅1⏞30yo

연속 사례

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

0⋅0⋅0⋅1⋅0⏞UK⋅30⏞30yo

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

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

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

0⋅0⋅0⋅1⋅0⏞UK⋅0.5⏞30yo

쿨 .. 예를 들어 국가 : 영국, 연령 그룹 : 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.