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에서 범주형 데이터를 그리는 방법
범주형 변수 또는 양적 변수: 차이점은 무엇입니까?