one-hot 인코딩이 필요한 알고리즘은 무엇입니까?


12

순서가없는 범주 형 변수에 원 핫 인코딩을 사용해야 할 때와 사용하지 않을 때는 확실 하지 않습니다. 알고리즘이 거리 메트릭을 사용하여 유사성을 계산할 때마다 사용합니다. 순서가없는 범주 형 기능이 핫 인코딩 된 유형과 어떤 유형의 알고리즘이 아닌 알고리즘 유형에 대한 일반적인 경험을 가진 사람이 있습니까?


2
범주 형 데이터를 특정 유형의 "대비 변수"또는 구체적 으로 더미 (one-hot) 유형 으로 코딩해야하는지 묻고 있습니까?
ttnphns 2016 년

1
이 질문은 다소 광범위하지만 OHE의 본질을 다루는 간단한 대답은 OP의 혼란을 해결할 수 있습니다. 이러한 답변이 존재한다는 것은이 질문에 대한 답이 될 수 있음을 의미합니다. 나는 열린 채로 투표하고 있습니다.
gung-모니 티 복원

@ttnphns 솔직히 나는 대조 변수가 무슨 뜻인지 모르겠습니다. 나는 단지 더미에 익숙하다.
cosmosa 2016 년

Cosmos, dummy (= 표시기 = one-hot)는 분석에서 범주 형 캐리어 블을 인코딩하는 여러 방법 중 하나 일뿐입니다. 이러한 방식을 "대비 변수"라고합니다. 참조 stats.meta.stackexchange.com/q/4669/3277stats.stackexchange.com/a/221868/3277
ttnphns

1
나는 당신이 요구하는 완전한 목록을 만들기가 어려울 것이라고 생각합니다.
mdewey

답변:


6

대부분의 알고리즘 (선형 회귀, 로지스틱 회귀, 신경망, 서포트 벡터 머신 등)에는 범주 형 변수에 대한 일종의 인코딩이 필요합니다. 대부분의 알고리즘은 숫자 값만 입력으로 사용하기 때문입니다.

인코딩이 필요하지 않은 알고리즘 은 Markov chain / Naive Bayes / Bayesian 네트워크, 트리 기반 등과 같은 개별 이산 분포를 직접 처리 할 수 있는 알고리즘입니다 .

추가 댓글:


대부분의 알고리즘에 하나의 핫 인코딩이 필요한지 여전히 명확하지 않습니다. 당신은 인코딩이 필요하다고 말합니다. 그러나 그것은 하나의 핫 인코딩입니까?
Prometheus

4

누구나 범주 형 기능이 핫 인코딩되도록 요구하는 알고리즘과 그렇지 않은 알고리즘에 대한 목록을 제공 할 수 있습니까?

AFAIU, 그것은 특정 알고리즘 보다 적은 특정 데이터 와 더 관련이 있습니다. 특히 범주에 의미있는 순서가 있는지 여부에 따라 다릅니다.

두 가지 경우를 고려하십시오. 첫 번째에는 bad, meh, good 범주 가 있고 두 번째에는 apple, orange, pear 범주 가 있습니다 . 첫 번째 경우에는 자연스러운 순서가 있습니다. meh 는 아마도 나쁜 것과 좋은 것 사이 에 있지만 사과, 오렌지, 배에서는 비슷한 일이 없을 것입니다 .

첫 번째 경우에 원-핫 인코딩을 피하면 주문 정보를 "손실"하는 것입니다. 두 번째 경우에 원핫 인코딩을 사용하는 경우 자연스럽지 않은 범주에 순서를 지정하는 것입니다.

알고리즘이 거리 메트릭을 사용하여 유사성을 계산할 때마다 수행합니다.

왜? 기능 중 하나가 범주 형 bad, meh, good 이고 1, 2 및 3의 3 개의 인스턴스가 있고 1이 나쁘고 2가 meh 이고 3이 좋다는 점을 제외하고 동일한 인스턴스 가 있다고 가정 합니다 . 1이 3보다 2와 더 유사하다는 알고리즘을 표현하고 싶을 것입니다.


2
좋은 대답입니다. 비 순차 범주 형 변수도 포함하지만 질문을 명확히해야합니다. 이 경우 항상 하나의 핫 인코딩이어야합니까?
cosmosa 2016 년

@ cosmos1990 IMHO는 일반적으로 순서가없는 범주 형 데이터의 경우 원-핫 인코딩을 사용하는 방법입니다 (숫자 값 할당이 아닌).
Ami Tavory 2016 년

2

머신 러닝 알고리즘 하나의 핫 인코딩이 필요 하지 않습니다 . 범주 형 변수를 처리하는 방법 중 하나입니다. 더미 변수는 또 다른 것입니다. 전통적으로 더미 변수가 선호되는 솔루션이었습니다. 예를 들어, R 함수 lm ()은 범주 형 데이터에 대한 더미 변수를 자동으로 만듭니다. 파이썬과 scikt-learn을 사용하고 있다면 많은 알고리즘에서 범주 형 변수의 원 핫 인코딩이 필요하다고 생각합니다. tensorFlow에도 one-hot 인코딩이 필요하다고 생각합니다. 변수가 어떻게 인코딩되는지 선택합니다. 더미 변수를 코드에서 대신 사용할 수없는 이유는 없습니다. 이 모든 것은 알고리즘의 실제 코드 구현을 처리해야합니다.

hxd1011이 범주 형 변수 사이의 '거리'를 설명하는 문제는 지적한 바와 같이 섬세한 문제입니다. 언급 된 거리 외에 Jaccard 거리도 있습니다. 일부 ML 방법, 특히 SVM은 범주 형 데이터에 적합하지 않으며 범주 형 변수를 추가하면 예측력이 매우 낮은 모델로 이어질 수 있습니다. 대부분의 앙상블 모델은 범주 데이터를 '있는 그대로'처리하며 사전 처리가 필요하지 않습니다.

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