R에서 원-핫 인코딩을 수행하는 방법


원-핫 인코딩은 범주형 변수를 기계 학습 알고리즘 에서 사용할 수 있는 형식으로 변환하는 데 사용됩니다.

원-핫 코딩의 기본 아이디어는 원래 범주형 값을 나타내기 위해 0과 1의 값을 취하는 새로운 변수를 만드는 것입니다.

예를 들어, 다음 이미지는 팀 이름이 포함된 범주형 변수를 0과 1 값만 포함하는 새 변수로 변환하기 위해 원-핫 인코딩하는 방법을 보여줍니다.

다음 단계별 예에서는 R에서 이 정확한 데이터 세트에 대해 일회성 인코딩을 수행하는 방법을 보여줍니다.

1단계: 데이터 생성

먼저 R에서 다음 데이터 프레임을 생성해 보겠습니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'),
                 points=c(25, 12, 15, 14, 19, 23, 25, 29))

#view data frame
df

  team points
1 to 25
2 to 12
3 B 15
4 B 14
5 B 19
6 B 23
7 C 25
8 C 29

2단계: 원-핫 인코딩 수행

다음으로 캐럿 패키지의 dummyVars() 함수를 사용하여 데이터 프레임의 ‘team’ 변수를 원-핫 인코딩해 보겠습니다.

 library ( caret)

#define one-hot encoding function
dummy <- dummyVars(" ~ . ", data=df)

#perform one-hot encoding on data frame
final_df <- data. frame (predict(dummy, newdata=df))

#view final data frame
final_df

  teamA teamB teamC points
1 1 0 0 25
2 1 0 0 12
3 0 1 0 15
4 0 1 0 14
5 0 1 0 19
6 0 1 0 23
7 0 0 1 25
8 0 0 1 29

원래 “팀” 열에 세 개의 고유 값이 포함되어 있으므로 세 개의 새 열이 데이터 프레임에 추가되었습니다.

또한 원래의 “팀” 열은 더 이상 필요하지 않으므로 데이터 프레임에서 제거되었습니다.

원-핫 인코딩이 완료되었으며 이제 이 데이터 세트를 선택한 기계 학습 알고리즘에 공급할 수 있습니다.

참고 : dummyVars() 함수에 대한 전체 온라인 설명서는 여기에서 찾을 수 있습니다.

추가 리소스

다음 자습서에서는 범주형 변수 사용에 대한 추가 정보를 제공합니다.

R에서 범주형 변수를 만드는 방법
R에서 범주형 데이터를 그리는 방법
범주형 변수 또는 양적 변수: 차이점은 무엇입니까?

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다