AI Development/자주쓰는 코드

SMOTE를 사용할 때, 발생하는 오류

쟤리 2024. 9. 2. 11:19
728x90
반응형

ValueError: Expected n_neighbors <= n_samples_fit, but n_neighbors = X, n_samples_fit = Y

 

원인 : SMOTE를 사용할 때, 특정 클래스의 샘플 수가 k_neighbors 값보다 적을 때 발생하는 오류

k_neighbors는 새로운 샘플을 생성하기 위해 사용하는 이웃의 수를 나타내며, 클래스 샘플 수보다 클 수 없다.

 

해결방법 : k_neighbors 값을 해당 클래스 샘플 수 보다 작게 설정하거나, 최소 1로 설정하여 문제를 해결

smote = SMOTE(random_state=42, k_neighbors=min(5, min_class_samples-1))

TypeError: numpy boolean subtract, the '-' operator, is not supported

 

원인 : 'numpy' 배열에서 부울형 데이터 처리할 때 발생

 

해결방법 : 모든 입력 변수가 숫자형 데이터로 변환되었는 지 확인하고, 부울형 데이터 대신 0과 1로 변환하여 해결

X = X.astype(np.float64)
728x90
반응형