Non-linear Multivariate regression using genetic algorithm

8 ビュー (過去 30 日間)
Tad2020
Tad2020 2020 年 1 月 19 日
コメント済み: Tad2020 2020 年 1 月 28 日
I would like to perform non-linear multivariate regression using genetic algorithm in matlab.
I have five independent variables and one response. How can I do non-linear regression by minimizing the mean square error in matlab using genetic algorithm?
R = f (x1, x2, x3, x4)
I want to fit the data to the equation similar to the following:
1.PNG
Thus, my objective is to find the constants C1, C2, C3,..., C21 using the GA in matlab by minimizing the difference between the actual response and the response from the model.

採用された回答

Star Strider
Star Strider 2020 年 1 月 19 日
One (very basic) approach:
xd = rand(10,1); % Create Dependent Variable
xi = rand(10,4); % Create Independent Variable Matrix
R = @(b,x) b(1).*sin(b(2).*x(:,1)) + b(3).*exp(b(4).*x(:,2)) + b(5).*cos(b(6).*x(:,3)) - b(7).*x(:,4); % Objective Function
ftnsfcn = @(b) norm(xd - R(b,xi)); % Fitness Function
B = ga(ftnsfcn, 7); % Genetic Algorithm Call
The idea is to create a matrix of the independent variables, then refer to them by their respective columns (my preference).
There are many ways to customise the ga population and other parameters to get interim outputs and create a specific initial population, among others. The ga function will search the parameter space for the best set, so being rigorous about defining a range for them is only necessary if they are widely varying in their expected amplitudes.
  10 件のコメント
Tad2020
Tad2020 2020 年 1 月 26 日
Dear Star Srider,
Hope you are doing great.
Please, how to use ga if I want to minimize two variables at the same time.
Examaple: determining the values of the parameters C1,C2, C3,... by minimizing the mean square error and at the same time the ratio of the predicted to the measured data of the response.
Thanks
Star Strider
Star Strider 2020 年 1 月 26 日
Minimising the mean squared error should do both.

サインインしてコメントする。

その他の回答 (1 件)

Alex Sha
Alex Sha 2020 年 1 月 28 日
The GA toolbox in Matlab is not an ideal tool for curve fitting with the goal of global optimizatiom result. Refer the result below, it should be the global solution which GA may never get.
Root of Mean Square Error (RMSE): 0.00114090675219561
Sum of Squared Residual: 0.000298082021740069
Correlation Coef. (R): 1
R-Square: 1
Adjusted R-Square: 1
Determination Coef. (DC): 1
Chi-Square: 1.30802089664868E-6
F-Statistic: 1.9563957244377E19
Parameter Best Estimate
---------- -------------
c1 1.21488501004067
c2 1.45076972134303
c3 2.07995659264768
c4 1.69518420103036
c5 1.97997575301966
c6 1.97999531406562
c7 6.30000528873042
c8 9.02324638354842
  3 件のコメント
Alex Sha
Alex Sha 2020 年 1 月 28 日
Hi, Tad2020, the result above was obtained by using a software package named "1stOpt", it is a global optimization package, idea for problems such as equation solving and curve fitting.
Tad2020
Tad2020 2020 年 1 月 28 日
Thanks again. I will try to get the software if it is available.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSupport Vector Machine Regression についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by