라벨 인코딩과 원-핫 인코딩: 차이점은 무엇인가요?
종종 기계 학습에서는 범주형 변수를 알고리즘에서 쉽게 사용할 수 있는 숫자 형식으로 변환하려고 합니다.
범주형 변수를 숫자형 변수로 변환하는 두 가지 일반적인 방법이 있습니다.
1. 라벨 인코딩: 각 범주형 값에 알파벳 순서에 따라 정수 값을 할당합니다.
2. 원 핫 인코딩(One Hot Encoding): 원래 범주형 값을 나타내기 위해 0과 1의 값을 갖는 새로운 변수를 생성합니다.
예를 들어, 두 개의 변수가 포함된 다음 데이터 세트가 있고 팀 변수를 범주형 변수에서 숫자 변수로 변환하려고 한다고 가정합니다.

다음 예에서는 태그 인코딩 과 원-핫 인코딩을 모두 사용하여 이를 수행하는 방법을 보여줍니다.
예: 라벨 인코딩 사용
레이블 인코딩을 사용하여 팀 열의 각 고유 값을 알파벳 순서에 따라 정수 값으로 변환합니다.

이 예에서는 다음을 볼 수 있습니다.
- 각 “A” 값은 0 으로 변환되었습니다.
- 각 “B” 값은 1 로 변환되었습니다.
- 각 “C” 값은 2 로 변환되었습니다.
팀 열을 범주형 변수에서 숫자 변수로 성공적으로 변환했습니다.
예: 단일 원-핫 인코딩 사용
원-핫 인코딩을 사용하여 팀 열을 0과 1 값만 포함하는 새 변수 로 변환 합니다 .

이 접근 방식을 사용하면 원래 범주형 변수의 각 고유 값에 대해 새 열을 만듭니다.
예를 들어 범주형 변수 Team에는 세 개의 고유 값이 있으므로 데이터세트에 모두 값 0 또는 1을 포함하는 세 개의 새 열을 만들었습니다.
새 열의 값을 해석하는 방법은 다음과 같습니다.
- Team 열의 원래 값이 A인 경우 새 Team_A 열의 값은 1입니다. 그렇지 않은 경우 값은 0입니다.
- Team 열의 원래 값이 B인 경우 새 Team_B 열의 값은 1입니다. 그렇지 않은 경우 값은 0입니다.
- Team 열의 원래 값이 C인 경우 새 Team_C 열의 값은 1입니다. 그렇지 않은 경우 값은 0입니다.
팀 열을 하나의 범주형 변수에서 세 개의 숫자 변수(때때로 “가짜” 변수라고도 함)로 성공적으로 변환했습니다.
참고 : 회귀 모델이나 기타 기계 학습 알고리즘에서 이러한 “더미” 변수를 사용할 때 더미 변수 트랩을 피하도록 주의하세요.
태그 인코딩과 원-핫 인코딩을 사용하는 경우
대부분의 시나리오에서 원-핫 인코딩은 범주형 변수를 숫자 변수로 변환하는 데 선호되는 방법입니다. 레이블 인코딩을 사용 하면 값 사이에 순위가 있는 것처럼 나타나기 때문입니다.
예를 들어 팀을 숫자 변수로 변환하기 위해 레이블 인코딩을 사용한 경우를 생각해 보세요.

레이블로 인코딩된 데이터는 C팀의 숫자 값이 더 높기 때문에 C팀이 B팀과 A팀보다 더 크거나 더 큰 것처럼 보입니다.
원래 범주형 변수가 실제로 자연 순서 또는 순위를 갖는 순서형 변수인 경우에는 문제가 되지 않지만 많은 시나리오에서는 그렇지 않습니다.
하지만 원-핫 코딩 의 단점 중 하나는 원래 범주형 변수에 고유한 값이 있는 만큼 새로운 변수를 만들어야 한다는 것입니다.
즉, 범주형 변수에 100개의 고유 값이 있는 경우 원-핫 인코딩을 사용할 때 100개의 새 변수를 만들어야 합니다.
데이터 세트의 크기와 작업 중인 변수 유형에 따라 원-핫 인코딩 또는 레이블 인코딩을 선호할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 실제로 레이블 인코딩을 수행하는 방법을 설명합니다.
다음 튜토리얼에서는 실제로 원-핫 인코딩을 수행하는 방법을 설명합니다.