matlab - MATLAB,fitcknn 使用梅尔频率倒谱系数 (MFCC)
问题描述
我正在使用我的教授提供的函数来使用 kNN 算法进行分类以获得不同邻居的最高识别率,但我收到以下错误:
Error using classreg.learning.FullClassificationRegressionModel.prepareDataCR (line 234)
X and Y do not have the same number of observations.
Error in classreg.learning.classif.FullClassificationModel.prepareData (line 821)
classreg.learning.FullClassificationRegressionModel.prepareDataCR(...
Error in ClassificationKNN.prepareData (line 926)
prepareData@classreg.learning.classif.FullClassificationModel(X,Y,varargin{:},'OrdinalIsCategorical',true);
Error in classreg.learning.FitTemplate/fit (line 233)
this.PrepareData(X,Y,this.BaseFitObjectArgs{:});
Error in ClassificationKNN.fit (line 911)
this = fit(temp,X,Y);
Error in fitcknn (line 264)
this = ClassificationKNN.fit(X,Y,RemainingArgs{:});
Error in kNN_algorithm_features (line 13)
Mdl = fitcknn(trainSet',trainLabel','NumNeighbors',k(kk));
使用他提供的音频数据,我可以使用它,但是当我尝试使用自己的音频时,它给了我这个错误。我们对音频的每次特征(频谱质心、扩展、滚降和 MFCC)都这样做了,但这个错误只出现在 MFCC 中。
% function [a,b]=kNN_algorithm_features(trainSet, testSet, trainLabel, testLabel)
load('matlab.mat');
trainSet = MFCC_trainSet;
testSet = MFCC_testSet;
trainLabel = MFCC_trainSet_label;
testLabel = MFCC_testSet_label;
rate=[];
k=[1 5 10 15 20];
for kk=1:length(k)
disp(['set-up the kNN... number of neighbors: ',mat2str(k(kk))])
Mdl = fitcknn(trainSet',trainLabel','NumNeighbors',k(kk));
% test the kNN
predicted_label = predict(Mdl, testSet');
% measure the performance
correct = 0;
flag = zeros(1,length(predicted_label));
for i=1:length(predicted_label)
if length(testLabel) >= i
if predicted_label(i)==testLabel(i)
correct=correct+1;
flag(i) = 1;
end
end
end
disp('recognition rate:')
rate(kk) = (correct/length(predicted_label))*100
end
[a,b]=max(rate);
对于 .mat 文件,我无法附加它,但我将在此处粘贴它的外观
MFCC_testSet 13x216712 double
MFCC_testSet_label 1x216712 double
MFCC_trainSet 13x219236 double
MFCC_trainSet_label 1x216972 double
- MFCC_trainSet_label 和 MFCC_testSet_label 只是 1 的系列,用于比较它们
- MFCC_trainSet 包含所有歌曲的 MFCC 值
- MFCC_testSet 包含测试歌曲的 MFCC 值
我究竟做错了什么?
解决方案
推荐阅读
- reactjs - 如何将分组/嵌套/树数据从材料表导出到 CSV?
- shell - 如何在 shell 脚本中编写用户定义的错误代码
- c++ - Windows 进程句柄数持续增长
- python - 用户没有个人资料。RelatedObjectDoesNotExist
- html - 为什么我在缩放以适应页面 VBA 时会出现空格
- javascript - `Required` 属性不起作用
- amazon-web-services - 组织中的 SCP 限制 EC2 实例的创建,没有强制标签的卷
- swift - 同一应用组中的配套应用和扩展应用的不同路径
- hadoop - Sqoop 导入 Hive - 错误 ("javax.management.MBeanTrustPermission" "register")
- r - 计算不同时间段的平均值