Effacer les filtres
Effacer les filtres

To Create mean squared error as a Function handle for input to genetic algorithm

3 vues (au cours des 30 derniers jours)
I am working on machine learning algorithms namely svm, knn, nb, elm etc. I wish to use ga for feature selection. The input matrix is of size 1250*36 where 36 is the number of features. I have the predicted output and original target matrix. The size of the matrix is 1250*5 since the number of classes is 5. Now I need to give the input matrix as input and to find the mean squared error between the predicted output and target matrix which should be formed as function handle which will be given as input to ga(genetic algorithm). Please help and share your points. Thanks in advance

Réponse acceptée

David Hill
David Hill le 12 Avr 2022
targetMatrix=50*rand(1250,5);
predictedOutput=50*rand(1250,5);
mse=@(t,p)mean((t-p).^2,'all');
MSE=mse(targetMatrix,predictedOutput);
  1 commentaire
Little Flower
Little Flower le 12 Avr 2022
Modifié(e) : Little Flower le 12 Avr 2022
Thank you dear David Hill. Now there is no error in giving it as a function handle input. Also I have a doubt on giving input to genetic algorithm. I have used knn in the below program and while running there is no change in the fitness value. Kindly go through my code and check whether it is correct or not. Thanks in advance
mdl_knn= fitcknn(featuresTrain,YTrain,'NumNeighbors',1,'Standardize',1);
fun=@(t,p)mse_fn(mdl_knn,featuresTest,YTest_out);
options = gaoptimset('TolFun', 1e-8,'display','iter');
gg=ga(fun,36,options);
end
function mse_new=mse_fn(mdl_knn,featuresTest,YTest_out)
[YPred_knn,scores]= predict(mdl_knn,featuresTest);
mse_new=mean((scores-YTest_out).^2,'all');
end

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by