범주 형 연속 데이터를 통한 머신 러닝


9

이 질문은 여기 또는 아마도 갈 수 있습니다 ...

훈련 데이터 세트에 다음과 같은 범주 형 데이터와 연속 형 데이터가 모두 포함되어 있다고 가정합니다.

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

예측되는 종속 변수는 연간 수의사 비용입니다. 그러한 데이터 세트를 처리하는 데 사용할 수있는 특정 기술에 대해서는 약간 혼란 스럽습니다. 연속 데이터와 범주 데이터가 혼합 된 데이터 세트를 처리하는 데 일반적으로 사용되는 방법은 무엇입니까?

답변:


8

범주 형 속성의 각 클래스 (품종, 성별 ...)에 대해 해당 클래스의 가능한 값 수와 동일한 수의 구성 요소를 기능 벡터에 추가 할 수 있습니다. 그런 다음 데이터 요소에 i 번째 값이 있으면 해당 구성 요소 중 하나의 i 번째 값을 1로 설정하고 해당 속성의 나머지를 0으로 설정하십시오.

예를 들어 성별의 경우 피쳐 벡터에 두 개의 새로운 구성 요소를 추가합니다. 동물이 수컷 인 경우 첫 번째 동물을 1로 설정하고 두 번째 동물을 0으로 설정하고 동물이 암컷 인 경우 그 반대로 설정합니다. 동물의 경우, 가능성이 고양이, 개 및 물고기라면 세 가지 구성 요소로 동일하게 수행 할 수 있습니다.

이것들은 연속적인 속성과 나란히 공존합니다. "인디케이터 값"(속성이 "온"일 때 사용하는 값)의 크기를 조정하여 사용중인 연속 값의 크기와 비교할 수 있습니다.

문제에 대해이 방법을 선택한 경우 다음 단계는 지원 벡터 시스템과 같은 알고리즘을 선택하여 피쳐 벡터에 공급하는 것입니다. 물론 의사 결정 트리와 같은 일부 접근 방식은 위에서 언급 한 단계가 필요하지 않습니다.


1
시원하고 훌륭한 팁! 품종이 훈련 데이터에 나오지 않은 테스트 데이터의 가능한 상황은 어떻습니까? 예를 들어 테스트 데이터에 푸들이 있었지만 훈련 데이터는 없었습니까? 가장 좋은 방법은 품종 벡터의 모든 구성 요소에 대해 0을 갖습니까?
reptilicus

2
사실, 데이터 이산화라고하는 반대의 접근 방식은 일반적으로 의사 결정 트리 알고리즘과 같은 계층 적 방법에 가장 적합합니다. 데이터 이산화는 데이터 전처리 기술이기도합니다 (다른 답변에서 언급 한 바와 같이).
rvcoutinho

2

데이터 전처리를 살펴보십시오 . 머신 러닝 기술보다 먼저 사용됩니다. 다음 은 좋은 소개입니다 (Google에서 제공).

기술과 관련하여 다양한 접근 방식이 있습니다. 데이터를 사전 처리 한 후에 대부분을 사용할 수 있습니다. 당신은 그들을 시도하고 당신의 요구에 가장 적합한 것을 선택해야합니다.

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