본문 바로가기

컴퓨터 마스터되기

라벨 인코더 label encoder

라벨 인코더

iris 데이터를 기준으로 설명하겠다.

아이리스 데이터를 보게되면 중간에 varierty 항에 변수형이 문자가 들어가 있다.

이럴경우 숫자로 변경해주어야하는데 이떄 사용하는 것이 label encoder이다.

from sklearn.preprocessing import LabelEncoder

#train_x = iris.drop(['varierty', axis =1])
#test_x = iris.drop(['varierty', axis =1])

# 데이터 타입이 object인 varierty column을 숫자로 변경 합니다
qual_col = ['variety']
for i in qual_col:
    lebel1 = LabelEncoder()
    lebel1 = lebel1.fit(train_x[i])
    train_x[i] = lebel1.transform(train_x[i])
    #테스트 데이터에만 존재하는 Label이 있을 수 있으므로 예외처리
    for label in np.unique(test_x[i]): 
        if label not in lebel1.classes_: 
            lebel1.classes_ = np.append(lebel1.classes_, label)
    test_x[i] = lebel1.transform(test_x[i]) 
    
print(train['variety'])

 

위 코드를 적용하면  variety 항의 string or object 타입의 변수들이

0, 1, 2 등으로 각각 레이블링이 되어진다.