2017-07-25 87 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值只是額外的參數。