one-hot 인코딩이 필요한 알고리즘은 무엇입니까? 계산할 때마다 사용합니다. 순서가없는

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



답변

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

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

추가 댓글:


답변

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

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

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

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

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

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


답변

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

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