저는 5 가지 장르 (록, 전자, 랩, 컨츄리, 재즈)의 30 초 샘플을 분류하는 프로젝트를 진행하고 있습니다. 내 데이터 세트는 각 장르마다 정확히 120 개의 노래로 구성됩니다. 이 기능은 각 노래에 대해 13mfcc의 1D 배열이며 레이블은 장르입니다. 기본적으로 30 초 샘플의 각 프레임에 대해 13 mfcc의 각 세트의 평균을 취합니다. 이것은 각 노래에 대해 13 mfccs로 연결됩니다. 그런 다음 전체 데이터 세트를 가져 와서 sklearn의 크기 조절 기능을 사용합니다.sklearn로 음악 장르 분류 : 다른 모델을 정확하게 평가하는 방법
제 목표는 sklearn 도구 세트를 사용하여 svm, knearest 및 naive 베이 분류자를 비교하는 것입니다. 몇 가지 테스트를 이미 마쳤지 만 무작위 샘플링/계층화 샘플링 여부에 따라 결과가 달라진다는 것을 알았습니다.
I 트레이닝 및 테스트 세트 얻을 sklearn에서 다음 기능을 수행
X_train, X_test, y_train, y_test = train_test_split (X, Y, test_size = 0.20 random_state = 0, 계층화 = Y)
을"random state"및 "stratify"매개 변수가 있습니다. "무작위 상태"가 생략되면 무작위로 전체 데이터 세트에서 샘플링합니다. 0으로 설정하면 교육 및 테스트 세트가 매번 동일하게 보장됩니다.
제 질문은 다른 분류 기준을 적절하게 비교하는 방법입니다. 나는 각 클래스 작성자를 훈련하고 테스트하기 전에이 함수에 동일한 동일한 호출을해야한다고 가정합니다. 내 의심은 내가 각 분류 자에게 똑같은 분할을 전달해야하므로 무작위 샘플링이 아니고 계층화되어서는 안된다는 것이다.
아니면 계층화해야합니까 (그리고 임의 샘플링)?