1. Pytorch
* MNIST데이터를 예시로 불러와 train 데이터셋을 train과 validation 데이터셋으로 나누어 보는 작업
- 데이터셋을 쪼갤 때, torch.utils.data.random_split 모듈을 활용하면 된다.
- random_split(pytorch에서 불러온 데이터셋 변수, [len(train_dataset), len(validation_dataset)]) 로 간단하게 분리가 가능하고, 데이터를 쪼개면서 데이터를 뒤섞고 싶을 때, generator 옵션을 사용하면 된다.
(python 내장 함수인 help를 활용하여 random_split에 파라미터들을 미리 확인할 수 있다.)
# 예시 코드
train_dataset = MNIST(os.getcwd(), download=True, transform=transform, train=True)
test_dataset = MNIST(os.getcwd(), download=True, transform=transform, train=False)
train = DataLoader(train_dataset, batch_size = 12, shuffle = True)
test = DataLoader(test_dataset, batch_size = 12, shuffle = True)
print(len(train))
print(len(test))
from torch.utils.data import random_split
train, valid = random_split(train, [4000, 1000])
print(f"train dataset length is {len(train)}")
print(f"validation dataset length is {len(valid)}")
print(f"test dataset length is {len(test)}")
2. Scikit-Learn
- 참고 링크
- 사이킷런에서 제공하는 model_selection이라는 클래스에 포함된 함수로 train_test_split을 사용할 수 있다.
- array type 데이터셋을 넣어주어야하며, train_size, test_size에 원하는 양의 수를 넣어 쪼개면 된다.
- shuffle로 데이터를 섞을지 말지 입력해주고,
random_state에 입력한 숫자는 섞어준 데이터의 버전이라고 생각하면 쉽다.
- 쪼갠 후의 데이터도 array형태임을 type() 내장함수를 통해서 확인할 수 있다.
# 예시코드
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=123)
type(X_train) # numpy.ndarray
'AI > Fundamental' 카테고리의 다른 글
정규화란? Normalization, Regularization 정규화 종류에 대해서 알아보자. (0) | 2023.09.13 |
---|---|
LSTM (Long Short-Term Memory) 신경망 모델 공부하기 (0) | 2023.08.28 |
Activation Function 활성화 함수 (Sigmoid, Softmax, tanh, ReLU) 사용 이유, 그래프, 성질 (0) | 2023.08.24 |
RNN(Recurrent Neural Network) 순환신경망 공부하기 (2) | 2023.06.14 |
Confusion Matrix로 분류모델 성능평가 지표(precision, recall, f1-score, accuracy) 구하는 방법 (0) | 2023.01.26 |