Я использую команду нормализации:команды нормализации перед использованием классификаторов в MATLAB
normA = Xtrain - min(Xtrain(:)); Xtrain = normA ./ max(normA(:)); normB = Xtest - min(Xtest(:)); Xtest = normB ./ max(normB(:));
для нормализован данных перед использованием классификаторов (дерево дизайна), но каждый раз, когда я получил очень низкую точность, то около 55.00. Между тем, я получил точность 93.88 без использования алгоритма нормализации. может ли кто-нибудь сказать мне, что именно проблема и что я должен делать?
Это мой код:
load('train_and_test_data.mat')
Xtrain= Xtrain(:, 2:42);
Xtest= Xtest(:,2:42);
normA = Xtrain - min(Xtrain(:));
Xtrain = normA ./ max(normA(:));
normB = Xtest - min(Xtest(:));
Xtest = normB ./ max(normB(:));
Mdl = fitctree(Xtrain ,Ytrain);
y =Mdl.predict(Xtest); %test
Conf_Mat = confusionmat(Ytest,y)
Этот небольшой образец данных я использую до нормализации:
1 0 0 0 0
17 4 2 2 0
38 20 17 0 0
11 2 2 0 0
2 1 1 0 0
11 1 4 0 0
8 5 1 1 1
21 1 16 0 0
27 12 11 0 0
13 11 2 1 0
12 3 2 2 1
Какие данные вы используете? – ginge
Я использую числовые данные –
На деревья решений не должно влиять нормализация. В этом случае разница может быть связана с числовой точностью, но это кажется маловероятным. Если вы не найдете причину, я бы предложил просто использовать ненормализованную версию. – ginge