SVM parameter optimization using GA
조회 수: 5 (최근 30일)
이전 댓글 표시
I am facing issues of high prediction error. Please help.
load data1.mat
X = data1(1:83,1:end-1);
Y = data1(1:83,end);
X1 = data1(84:end,1:end-1);
Y1 = data1(84:end,end);
c = cvpartition(Y,'KFold',5,'Stratify',false);
fobj = @(x)kfoldLoss(fitrsvm(X,Y,'CVPartition',c,'KernelFunction','gaussian','BoxConstraint', x(1),'KernelScale',x(2),'Epsilon',x(3)));
intcon = 1; % intcon is the indicator of integer variables
lb = [1e-3,1e-3,1e-3]; % set lower bounds
ub = [1e3,1e1,1e1]; % set upper bounds
[sol,fval] = ga(fobj,3,[],[],[],[],lb,ub,[],intcon);
FinalModel = fitrsvm(X,Y,'KernelFunction', 'gaussian','BoxConstraint', sol(1),'KernelScale',sol(2),'Epsilon',sol(3));
yfit = predict(FinalModel, X1);
RMSE = rmse(yfit,Y1)
답변 (1개)
Sudarshan
2022년 12월 7일
Hi Josh,
I tried running the script and reproducing the high RMSE values.
- The RMSE value decreases on taking a higher number of training samples.
- Instead of using just 83 samples for X, I used 150 samples, and the RMSE significantly decreased from 0.15 to 0.008.
- The reason for the high RMSE value could be that there are less training samples.
You could try increasing the size of the training dataset and see if that solves the issue.
참고 항목
카테고리
Help Center 및 File Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!