태지쌤

로봇 & 코딩교육 No.1 크리에이터

Data Science

[머신러닝] 더미 변수(Dummy Variable) 원핫 인코딩(One-Hot Encoding)

태지쌤 2023. 5. 18. 12:50
반응형

더미 변수(Dummy Variable), 또는 원핫 인코딩(One-Hot Encoding)은 범주형 변수를 컴퓨터가 처리할 수 있는 형태로 변환하는 방법 중 하나입니다.

더미 변수는 범주형 변수의 각 범주(category)를 이진 변수로 변환하는 것을 의미합니다. 예를 들어, 성별 변수가 "남성"과 "여성"으로 구분되는 경우, 이를 더미 변수로 변환하면 "남성"을 나타내는 변수와 "여성"을 나타내는 변수로 나눌 수 있습니다. "남성"을 나타내는 변수는 해당하는 경우 1의 값을 가지고, "여성"을 나타내는 변수는 해당하는 경우 1의 값을 가지며, 나머지 경우에는 0의 값을 가집니다.

더미 변수는 컴퓨터가 이해할 수 있는 형태인 숫자로 변환된 범주형 데이터를 나타냅니다. 이를 통해 머신러닝 알고리즘에 범주형 변수를 적용할 수 있습니다. 더미 변수로 변환된 범주형 변수는 각각 독립적인 특성으로 간주되어 모델에 포함됩니다.

더미 변수를 사용하는 이유는 컴퓨터가 범주형 변수를 이해하기 쉽도록 하기 위해서입니다. 머신러닝 알고리즘은 수치형 데이터를 처리하는 데 더 효율적이며, 더미 변수를 사용하면 범주형 변수의 순서나 관계를 고려하지 않고도 데이터를 처리할 수 있습니다.

더미 변수는 범주형 변수를 처리하는 많은 머신러닝 알고리즘에서 필수적인 전처리 단계입니다. 이를 통해 범주형 데이터가 머신러닝 모델에 적용되어 정확한 예측을 수행할 수 있게 됩니다.

원핫 인코딩을 수행하는 방법은 프로그래밍 언어에 따라 다를 수 있습니다. 여기에는 Python을 사용한 예시 코드가 있습니다.

import pandas as pd

# 범주형 변수가 담긴 데이터프레임 생성
df = pd.DataFrame({'color': ['Red', 'Blue', 'Green', 'Red', 'Green']})

# 원핫 인코딩 수행
one_hot_encoded = pd.get_dummies(df['color'])

# 결과 출력
print(one_hot_encoded)

위의 코드에서는 Pandas 라이브러리의 `get_dummies` 함수를 사용하여 원핫 인코딩을 수행합니다. `get_dummies` 함수는 범주형 변수를 원핫 인코딩된 형태로 변환해주는 기능을 제공합니다. 위의 예시에서는 'color'라는 열을 원핫 인코딩하였습니다.

실행 결과는 다음과 같이 나타납니다:

각각의 범주에 대해 새로운 열이 생성되고, 해당하는 범주에 속하는 경우 1의 값을 갖습니다. 따라서 'Red' 범주에 해당하는 값은 [0, 0, 1, 0, 1]로 표현되고, 'Blue' 범주는 [1, 0, 0, 0, 0], 'Green' 범주는 [0, 1, 0, 0, 1]로 표현됩니다.

이렇게 생성된 원핫 인코딩된 데이터는 머신러닝 모델에 적용할 수 있습니다.


더미 변수는 특정 값을 가진 범주형 변수를 설명하기 위해 사용하는 변수입니다. 예를 들어, 성별 변수가 있는 경우 남성과 여성의 두 가지 더미 변수를 만들 수 있습니다. 더미 변수는 종종 회귀 분석 및 분류와 같은 기계 학습 기술에서 사용됩니다. 그들은 모델이 범주형 변수를 처리할 수 있도록 하여 종속 변수에 대한 예측을 할 수 있도록 합니다.

더미 변수는 다음과 같이 계산됩니다.

여기서 i는 범주형 변수의 범주이고 j는 참조 범주입니다. 참조 범주는 모델에서 기본 범주로 간주되며 해당 더미 변수의 값은 0입니다. 다른 모든 범주에 대한 더미 변수의 값은 1입니다.

예를 들어, 성별 변수가 있는 경우 참조 범주는 남성이 될 수 있습니다. 남성에 대한 더미 변수의 값은 0이고 여성에 대한 더미 변수의 값은 1입니다.

더미 변수는 다음과 같은 여러 기계 학습 기술에서 사용됩니다.

  • 회귀 분석: 회귀 분석은 종속 변수와 한 개 이상의 독립 변수 간의 관계를 모델링하는 데 사용되는 기계 학습 기술입니다. 더미 변수는 종속 변수가 범주형 변수인 회귀 분석에서 사용됩니다.
  • 분류: 분류는 데이터 포인트를 서로 다른 범주로 분류하는 데 사용되는 기계 학습 기술입니다. 더미 변수는 데이터 포인트가 범주형 변수에 속하는지 여부를 분류하는 데 사용됩니다.
  • 로지스틱 회귀: 로지스틱 회귀는 종속 변수가 이진 변수인 회귀 분석의 한 유형입니다. 더미 변수는 종속 변수가 범주형 변수인 로지스틱 회귀에서 사용됩니다.

import numpy as np

# 범주형 변수
categories = ["apple", "banana", "orange"]

# 원핫 인코딩
one_hot_encodings = np.zeros((len(categories), len(categories)))

for i, category in enumerate(categories):
  one_hot_encodings[i, categories.index(category)] = 1

print(one_hot_encodings)

보시다시피 각 원핫 인코딩은 0과 1의 배열입니다. 배열의 첫 번째 요소는 범주가 apple인지 여부를 나타내고, 두 번째 요소는 범주가 banana인지 여부를 나타내고, 세 번째 요소는 범주가 orange인지 여부를 나타냅니다.

반응형