1

我正在从5个不同类型(摇滚,电子,说唱,乡村,爵士)中分类30个音频样本的项目。我的数据集由600首歌曲组成,每个类型恰好120。这些功能是每首歌曲为13 mfccs的一维数组,标签是流派。 从本质上讲,我对30秒样本的每个帧取平均每组13帧。这导致每首歌13 mfccs。然后我得到整个数据集,并使用sklearn的缩放函数。sklearn音乐流派分类:如何准确评估不同的模型

我的目标是比较svm,knearest和朴素贝叶斯分类器(使用sklearn工具集)。我已经完成了一些测试,但我注意到结果取决于我是否进行随机抽样/分层抽样。

我做sklearn下面的函数来获得训练和测试集:

X_train,X_test,y_train,y_test = train_test_split(X,Y,test_size = 0.20,random_state = 0,分层= Y)

它具有“随机状态”和“分层”参数。当省略“随机状态”时,它从整个数据集中随机采样;当它设置为0时,训练和测试集保证每次都是相同的。

我的问题是,我如何适当地比较不同的分类器。我假设在训练和测试每个分类器之前,我应该对此函数进行相同的调用。我的怀疑是我应该向每个分类器提交完全相同的分割,所以它不应该是随机抽样,也应该分层。

还是应该分层(和随机抽样)?

回答

0

要评估分类器对另一分类器的准确性,您需要从数据集中随机抽样以进行训练和测试。使用测试数据集来评估每个分类器并一次比较精度。

由于存储在数据帧的数据集,将它分成训练和测试(随机抽样是更好地得到您的分类有多好,是所有案件的深入理解,分层抽样有时会掩盖你的真实精度)为什么呢?我们举一个例子:

如果你正在对某个特定类别进行分层抽样(假设这个类别的数据量非常大[偏斜]并且分类器预测到一个类别的好,那么你可能会被引导相信分类器运行良好,即使在信息较少的分类上表现不佳的情况下,分层抽样的效果会更好吗?如果知道现实世界中的数据也会出现偏差,并且如果预测到最重要的分类(这绝对不意味着你的分类器在信息较少的分类上工作不好,它可以很好地工作,只是分层采样有时不会显示完整图像)

使用相同的训练da taset训练所有分类器和相同的测试数据集来评估它们。另外,随机抽样会更好。