데이터셋이 위치한 경로를 지정한 후 훈련과 테스트 용도로 분리합니다. 전체 데이터셋 중 67%는 훈련 용도이며 33%는 테스트 용도로 사용합니다.
코드 9-28 데이터셋 경로 지정 및 훈련과 테스트 용도로 분리
df = pd.read_csv('../chap09/data/diabetes.csv')
X = df[df.columns[:-1]] ------여덟 개의 칼럼은 당뇨병을 예측하는 데 사용
y = df['Outcome'] ------ 당뇨병인지 아닌지 나타내는 레이블(정답)
X = X.values
y = torch.tensor(y.values)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33)
훈련과 테스트용 데이터를 고르게 분포시키기 위해 정규화를 진행합니다. 훈련용 데이터는 StandardScaler()를, 테스트용 데이터는 MinMaxScaler()를 이용하여 정규화합니다. 정규화 방법에 대해서는 이미 앞에서 사용 방법을 살펴보았기 때문에 어렵지 않게 이해할 수 있을 것입니다.
코드 9-29 훈련과 테스트용 데이터를 정규화
ms = MinMaxScaler() ------ ①
ss = StandardScaler() ------ ②
X_train = ss.fit_transform(X_train)
X_test = ss.fit_transform(X_test)
y_train = y_train.reshape(-1, 1) ------ (?, 1)의 형태를 갖도록 변경, 즉 열의 수만 1로 고정
y_test = y_test.reshape(-1, 1)
y_train = ms.fit_transform(y_train)
y_test = ms.fit_transform(y_test)