1

저는 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으로 설정하면 교육 및 테스트 세트가 매번 동일하게 보장됩니다.

제 질문은 다른 분류 기준을 적절하게 비교하는 방법입니다. 나는 각 클래스 작성자를 훈련하고 테스트하기 전에이 함수에 동일한 동일한 호출을해야한다고 가정합니다. 내 의심은 내가 각 분류 자에게 똑같은 분할을 전달해야하므로 무작위 샘플링이 아니고 계층화되어서는 안된다는 것이다.

아니면 계층화해야합니까 (그리고 임의 샘플링)?

답변

0

다른 분류 기준에 대한 분류 기준의 정확성을 평가하려면 교육 및 테스트를 위해 데이터 세트에서 임의로 샘플링해야합니다. 테스트 데이터 세트를 사용하여 각 분류자를 평가하고 한 번에 정확도를 비교하십시오.

데이터 프레임에 데이터 집합이 저장되어있는 경우 해당 데이터 집합을 교육 및 테스트로 나눕니다 (임의 샘플링은 모든 경우에 분류기가 얼마나 좋은지에 대한 철저한 이해가 필요합니다. 예를 들어 보겠습니다.

일부 특정 카테고리에 대해 계층화 된 샘플링을 수행하는 경우 (이 카테고리는 매우 많은 양의 데이터가 비뚤어지고 분류기가 하나의 카테고리를 잘 예측한다고 가정 해 보겠습니다. 계층화 된 샘플링이 더 효과적입니까? 실제 데이터가 왜곡 될 것이라는 것을 알고 있고 가장 중요한 범주가 예측되는 경우 만족하게 될 것입니다. (이것은 분명히 분류자를 정보가 적은 범주에서 잘 작동하지 않는다는 것을 의미하지는 않습니다. 잘 작동 할 수 있습니다. 계층화 된 샘플링으로 전체 그림이 표시되지 않는 경우가 있습니다)

동일한 교육 다 taset을 사용하여 모든 분류 자와 동일한 테스트 데이터 집합을 평가하여 평가합니다. 또한 무작위 샘플링이 더 좋을 것입니다.