R에서 라벨 인코딩을 수행하는 방법(예제 포함)
종종 기계 학습에서는 범주형 변수를 알고리즘에서 쉽게 사용할 수 있는 숫자 형식으로 변환하려고 합니다.
이를 수행하는 한 가지 방법은 각 범주형 값에 알파벳 순서에 따라 정수 값을 할당하는 레이블 인코딩을 사용하는 것입니다 .
예를 들어 다음 스크린샷에서는 Team 이라는 범주형 변수의 각 고유 값을 알파벳 순서에 따라 정수 값으로 변환하는 방법을 보여줍니다.
R에서 레이블 코딩을 수행하는 두 가지 일반적인 방법이 있습니다.
방법 1: 기본 R 사용
df$my_var <- as. numeric (factor(df$my_var))
방법 2: CatEncoders 패키지 사용
library (CatEncoders) #define original categorical labels labs = LabelEncoder. fit (df$my_var) #convert labels to numeric values df$team = transform(labs, df$my_var)
다음 예에서는 각 방법을 실제로 사용하는 방법을 보여줍니다.
예시 1: Base R을 사용한 인코딩 라벨
다음 코드는 R base Factor() 함수를 사용하여 team 이라는 범주형 변수를 숫자 변수로 변환하는 방법을 보여줍니다.
#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 #perform label encoding on team variable df$team <- as. numeric (factor(df$team)) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
팀 열의 새 값을 참고하세요.
- “A”는 1 이 되었습니다.
- “B”는 2 가 되었습니다.
- “C”는 3 이 되었습니다.
팀 열을 범주형 변수에서 숫자 변수로 성공적으로 변환했습니다.
예제 2: CatEncoders 패키지를 사용한 인코딩 라벨
다음 코드는 CatEncoders() 패키지의 함수를 사용하여 team 이라는 범주형 변수를 숫자 변수로 변환하는 방법을 보여줍니다.
library (CatEncoders) #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)) #define original categorical labels labs = LabelEncoder. fit (df$team) #convert labels to numeric values df$team = transform(labs, df$team) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
이번에도 팀 열에 다음과 같은 새로운 값을 생성했습니다.
- “A”는 1 이 되었습니다.
- “B”는 2 가 되었습니다.
- “C”는 3 이 되었습니다.
이는 이전 예제의 결과와 일치합니다.
이 방법을 사용하면 inverse.transform()을 사용하여 팀 열의 원래 값을 가져올 수도 있습니다.
#display original team labels reverse. transform (labs, df$team) [1] “A” “A” “B” “B” “B” “B” “C” “C”
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R의 계속에서 범주형 변수를 만드는 방법
R에서 범주형 변수를 만드는 방법
R에서 범주형 변수를 숫자로 변환하는 방법