더북(TheBook)

3 레이블값을 행렬 형태로 만들기

 

get_dummies()를 사용해 레이블값을 0과 1로 이루어진 행렬 형태로 만든다. 이를 one-hot 형태, 즉 원-핫 인코딩(One-Hot Encoding)이라고 하는데 데이터를 0과 1로 구별한다. 고윳값에 해당하는 단어는 1(True), 나머지는 0(False)으로 만드는 방식으로, 사이킷런 머신러닝 알고리즘에 문자열값을 넣을 수 없기 때문에 숫자형으로 인코딩한 뒤 학습시키기 위해서다.

y_onehot = pd.get_dummies(y)

train_test_split()으로 학습과 예측에 사용할 데이터를 나누고, 정답값은 y_onehot으로 지정한다.

from sklearn.model_selection import train_test_split
 
X_train, X_test, y_train, y_test = train_test_split(
    X, y_onehot, test_size=0.2, random_state=42, stratify=y_onehot)
 
X_train.shape, X_test.shape, y_train.shape, y_test.shape

실행 결과

((1710,), (428,), (1710, 3), (428, 3))
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.