범주 형 변수를 더미 코드로 작성해야하는 이유


22

왜 우리가 범주 형 변수를 더미 코드로 만들어야하는지 잘 모르겠습니다. 예를 들어, 가능한 값이 4,0,1,2,3 인 범주 형 변수가있는 경우 2 차원으로 바꿀 수 있습니다. 변수의 값이 0이면 2 차원에 0,0이되고 3이 있으면 2 차원에 1,1이됩니다.

왜 우리가 이것을해야하는지 잘 모르겠습니다.

답변:


20

현재 네 가지 범주가 눈색 (코드) : 갈색 (1), 파란색 (2), 녹색 (3), 개암 (4)-이색 성, 보라색, 빨간색, 회색 등을 무시한다고 가정합니다.

우리가 코드에서 알 수 있듯이 3 = 3 × 14 = 2 × 2 이지만 녹색 갈색 또는 헤이젤 = 2 × 파란색을 의미하지는 않습니다 .=×=2×=×14=2×2

(어떤 이유로 우리 외에는 할 수는 우리의 분석에 슬립 같은 의미를 원하는), 우리는 코딩의 어떤 종류를 사용해야합니다. 더미 코딩은 하나의 예이며, 우리가 눈 색깔에 대해 말하고 싶은 통계적 이야기에서 그러한 관계를 제거합니다. 효과 코딩 및 Heckman 코딩이 다른 예이다.

업데이트 : 네 가지 범주에 대한 두 변수의 예는 일반적으로 범주 (예 : 4)를 k - 1 더미 변수 (범주별로 분류)로 바꾸는 "더미 코드"라는 용어의 이해와 일치하지 않습니다 .케이케이1

id  category  dummy1 dummy2 dummy3
 1         1       1      0      0
 2         1       1      0      0
 3         2       0      1      0
 4         2       0      1      0
 5         3       0      0      1
 6         3       0      0      1
 7         4       0      0      0
 8         4       0      0      0

여기에 카테고리 4는 다음과 같이 모델에 상수가 있다고 가정 할 때 참조 카테고리입니다.

와이=β0+β11+β22+β+ε

β0와이β와이β0

β0

와이=β11+β22+β+β44+ε

따라서 이것은 내가 처음 언급 한 카테고리 코드간에 무의미한 양적 관계 를 만드는 문제와 관련 이 있지만 제안한대로 user12331- 코딩 을 사용하지 않는 이유 는 무엇입니까? user12331- 코딩 후보 A :

id  category   code1  code2
 1         1       0      ?
 2         1       0      ?
 3         2       1      ?
 4         2       1      ?
 5         3       ?      0
 6         3       ?      0
 7         4       ?      1
 8         4       ?      1

당신은 아주 잘 지적하고 있습니다 하나는 2 개 진 변수를 사용하여 4 개 값을 나타낼 수있다 (즉, 두 비트). 불행히도, 이것에 대한 한 가지 접근법 (범주 1과 2의 코드 1, 카테고리 3과 4의 코드 2)은 물음표로 표시된 모호성을 남깁니다. 어떤 값이 있습니까?!

두 번째 방법은 user12331- 코딩 후보 B라고합니다.

id  category   code1  code2
 1         1       0      0
 2         1       0      0
 3         2       0      1
 4         2       0      1
 5         3       1      0
 6         3       1      0
 7         4       1      1
 8         4       1      1

그곳에! 모호하지 않습니까? 권리! 불행하게도,이 모든 코딩은 이진수 표기법 으로 1-4 (또는 0–3)의 숫자 수량을 나타내므로 , 원치 않는 양적 관계를 범주에 부여하는 문제는 그대로 남아 있습니다.

따라서 다른 코딩 방식이 필요하다.

다양한 코딩 체계가 어느 정도 문제 나 스타일이라는 점에주의해야한다 (즉, 특정 원하는 것은 무엇인가)β ) 하지 않는 한이 또한 모델의 범주와의 상호 작용 조건을 포함합니다. 그런 다음 더미 코딩은 인공 이분산성을 유도하고 표준 오류를 바이어스하므로 그러한 경우 효과 코딩을 고수하고 싶을 것입니다.


5
이 답변은 우리가 하나의 변수를 사용할 수없는 이유 (즉, 실제로 어떤 종류의 코딩이 필요하다는 이유)를 보여 주지만 , 변수 를 말하는 것으로 왜 우리가 그것을 할 수 없는지를 설명하지는 않습니다. OP는 질문에서 제안합니다.
Glen_b-복귀 모니카

@Glen_b 감사합니다. 내 업데이트가 도움이 되었기를 바랍니다.
Alexis

2
2 개의 이진 변수는 4 개의 범주 [(0,0), (0,1), (1,0), (1,1)]를 나타내기에 충분하지만 분석을 위해 코드를 더미하는 적절한 방법은 아닙니다. OP가 잘못 코딩 된 것 같습니다.
Ellis Valentiner

@ user12202013 예. 마지막 예에서와 같이.
Alexis

OP가 제안한대로 두 개의 변수를 사용하여 이진 코딩을 수행해야하지만 목표가 예측 인 경우 비모수, 비선형 분류기 / 회귀가 동일하게 작동하지 않습니까?
tool.ish

1

이 질문에 대한 나의 견해는 단지 두 개의 변수로 네 가지 가능한 상태를 코딩하는 것이 4 개의 변수를 사용하는 것보다 일부 기계 학습 알고리즘에서 덜 표현 적이라는 것입니다.

예를 들어 선형 회귀를 수행하려고하고 실제 매핑이 값 0,1 및 2에 0과 값 3에 1을 매핑한다고 가정하면 코딩 할 때 선형 회귀를 사용하여이 매핑을 학습 할 방법이 없는지 빠르게 확인할 수 있습니다. 이진 변수가 두 개 뿐인 범주 형 변수 (머리에 해당 평면을 맞추려고 시도). 반면에 1-K 코딩을 사용할 때는 문제가되지 않습니다.


0

대안은 더미 코드입니다. 종속 변수와의 관계를 가장 잘 나타내는 더미 코드를 선택합니다. 예를 들어 색상은 n의 1로 표현되거나 숫자 rgb 구성 요소로 변하거나 분류 할 수 있습니다. .. 그러나 관계가있는 곳에서 데이터를 낭비하는 경우 .. 범주의 각 인스턴스에 대한 계수를 별도로 추정해야합니다. 직무를 범주 변수로 고려하십시오. 시장 부문과 선임으로 분류 할 수 있습니다.

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