2017-07-25 80 views
0

我是遗传算法的新手,希望你们能帮助我。在MATLAB中使用遗传算法进行重量优化

我有一个数据集:

dataset = [[3 4 4 4] 
      ;[2 3 2 3] 
      ;[1 1 3 2] 
      ;[3 2 4 3] 
      ;[0 3 1 0]]; 

,其中最后一列[4, 3, 2, 3, 0]代表实际的标签;前三列代表特征向量[x1 x2 x3]

我想用遗传算法来优化权重[w1 w2 w3]

我该如何做到这一点?

回答

0

你的体重是你的优化变量。对于最基本的优化:

w = [w1 w2 w3]; 
x = [x1 x2 x3]; 
wOpt = ga(@fitnessfunc(w, x), length(w)) 

function y = fitnessfunc(w,x) 
    y = w(1) * x(1) + w(2) * x(2) + w(3) * x(3); 

有关ga函数调用和Passing extra parameters如何构建程序的更多选项见MATLAB Documentation on ga

请记住,您的权重是您正在优化的变量。 datasetx值只是额外的参数。