본문 바로가기
개발용어

원핫인코딩

by devscb 2024. 11. 15.
반응형

원 핫 인코딩

머신러닝 알고리즘은 문자열 데이터 속성을 입력받지 않으며 모든 데이터는 숫자형으로 표현되어야 합니다.
따라서 문자형 카테고리형 속성은 모두 숫자 값으로 변환/인코딩 되어야 합니다.
원 핫 인코딩 기법은 입력 데이터를 숫자 벡터로 변환하는 방법으로, 각 입력 데이터의 특성을 0과 1의 이진 벡터로 표현합니다.

예를 들어, 내가 학습시킬 데이터에 사과/바나나/포도 라는 데이터가 있다면 아래와 같이 3개의 컬럼이 있는 형식으로 표현할 수 있습니다.

(여기가 1이면 사과), (여기가 1이면 바나나), (여기가 1이면 포도)

(1, 0, 0) --> 이 데이터는 사과를 의미합니다
(0, 1, 0) --> 이 데이터는 바나나를 의미합니다
(0, 0, 1) --> 이 데이터는 포도를 의미합니다

즉, 각 숫자는 단어의 인덱스를 나타내며, 해당 단어의 인덱스에 해당하는 값만 1로 설정되고 나머지 값은 0으로 설정됩니다.

또 다른 예를 들어보겠습니다.
만일 아래와 같은 문장을 단어단위로 원 핫인코딩을 한다면,

나랑 점심 먹으러 갈래 점심 메뉴는 김치찌개야

아래와 같이 6개의 값으로 이뤄진 벡터를 만들 수 있습니다.

(나랑), (점심), (먹으러), (갈래), (메뉴는), (김치찌개야)

원 핫 인코딩의 장점

이러한 원 핫 인코딩은 다음과 같은 장점이 있습니다.
1.데이터의 크기를 줄일 수 있습니다.
이진 벡터로 변환되기 때문에, 입력 데이터의 크기가 줄어듭니다.
이는 메모리 사용량을 줄이고, 머신러닝 모델의 학습 속도를 향상시키는 데 도움이 됩니다.

2.데이터의 누락을 방지할 수 있습니다.
입력 데이터의 특성이 누락되어도, 해당 특성의 값을 0으로 설정하여 처리할 수 있습니다.

3.모델의 해석성을 높일 수 있습니다.
이진 벡터로 변환되기 때문에, 모델의 출력을 쉽게 해석할 수 있습니다.
예를 들어, 모델의 출력이 (1, 0, 0)이라면, 이는 해당 단어가 '사과'라는 것을 의미합니다.

원 핫 인코딩의 단점

하지만 원 핫 인코딩은 다음과 같은 단점이 있습니다.

1.차원의 저주(Curse of dimensionality)
입력 데이터의 특성이 많아질수록, 이진 벡터의 차원이 증가합니다.
이는 머신러닝 모델의 학습 속도를 저하시키고, 과적합(overfitting)을 유발할 수 있습니다.
예를 들어, 앞선 예제에서 수박이란 데이터가 추가가 된다면, 아래와 같이 표현을 해야할것이고,

(여기가 1이면 사과), (여기가 1이면 바나나), (여기가 1이면 포도), (여기가 1이면 수박)

사과는 (1, 0, 0, 0)으로, 수박은 (0, 0, 0, 1)과 같은 식으로 표현될 것입니다.

2.불변성(invariance)이 없습니다.
입력 데이터의 순서나 위치가 변경되면, 이진 벡터의 값도 변경됩니다.
이는 머신러닝 모델의 성능을 저하시킬 수 있습니다.

728x90
반응형

댓글