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))