반응형
문제 발생
csv 파일의 dataset을 train / test 로 나누려던 중 "ValueError: The least populated class in y has only 1 member, which is too few. The minimum number of groups for any class cannot be less than 2." 에러가 발생했다.
문제 해결
dataset = pd.read_csv(filePath, header=None, low_memory=False)
data = dataset[0]
target = dataset[1]
#train & test split
x_train, x_valid, y_train, y_valid = train_test_split(data, target, test_size=0.3, shuffle=True, stratify=target, random_state=34)
위의 코드 중 "stratify=target" 때문에 발생한 문제.
stratify : trainset / testset으로 나눌 때, original dataset의 class 비율을 유지하게 한다.
위의 오류는 특정 label값을 가진 데이터가 2개 이상이어야 train에 하나, test에 하나가 들어갈 수 있는데, 2개 미만이라면 나눌 수 없기에 발생한다.
반응형