8

比方說,我有一組的訓練實例,其中A_I是一個屬性,結果是二進制(是或否):遺傳編程 - 健身功能

A1,    A2,    A3,    Outcome 
red    dark   large   yes 
green   dark   small   yes 
orange   bright   large   no 

我知道我必須定義適應度函數,這個問題是什麼?在我的實際問題中有10個參數和100個訓練樣例,但這是一個類似的問題。

+3

我給每個瞭解實際問題的人5美元。 – Spyros 2011-04-17 11:38:24

+3

@SpyrosP,我會給你我的貝寶信息;)。我明白他在問什麼,雖然我沒有答案......但 – Prescott 2011-04-17 11:40:13

+0

:哦,你真的認爲?請解釋一下! – Spyros 2011-04-17 11:42:12

回答

6

我認爲這裏的困惑來自這樣一個事實,即通常的健身功能會給你一些標量,有時候是離散的,但從不是二進制是/否(或真/假)。從這個意義上講,這看起來更像是一個需要用神經網絡(或者貝葉斯邏輯)解決的「分類」問題。這樣說,你當然可以設計一個GA來演化任何類型的分類器,並且適應度函數基本上可以用正確的分類來表示,而不是整個評估。

對此的另一個純GA方法 - 可能與問題更相關 - 是將整個分類規則集作爲遺傳算法的給定個體編碼在。從這個意義上講,適應度函數可以表示爲一個標量,表示給定的候選解決方案在總數上有多少是/否分類,等等。類似的方法可以在本文中找到Using Real-Valued Genetic: Algorithms to Evolve R,de Sets for Classification

實施例(的可能的方式來編碼這一個):

A1,    A2,    A3,    Outcome 
red    dark   large   yes 
green   dark   small   yes 
orange   bright   large   no 

編碼:紅= 000,暗= 001,大= 010,綠色= 011,小= 100,橙= 101,亮= 111,等 結果:是= 1,無= 0

染色體:

A1,    A2,    A3,    Outcome 
000    001    010    1 
011    001    100    1 
101    111    010    0 

的上述所有被轉換爲一個候選解決方案爲:

000001010-1/011001100-1/101111010-0 

你會產生這些隨機的一羣,發展他們無論怎樣,你通過(在規則集正確分類/總分類)測試健身整個規則集的(這裏要小心選擇你的交叉戰略喜歡! )。

我還建議你聽一聽binary solo,讓你心情愉快。

注意:我很懷疑這將與 3的規則,沒有足夠廣度的GA組成的規則集工作。

+0

@JohnIdol謝謝你的答案。如果我選擇使這三個例子分別爲100101010,010100110,001010101的染色體設計(因此第一個例子是100,因爲第一個屬性是紅色,後面是10,因爲第二個屬性是黑色,後面是10,因爲第三個屬性很大10,因爲這是一個'是'的例子),那麼你認爲你可以拿出適用於其中一個例子的適應度函數,這樣我可以看到你的意思更好嗎?我也會看看這篇論文。 +1爲此感謝你:)。 – ale 2011-04-17 15:10:46

+0

輕微校正:適用於初始隨機假設的適應度函數。我可以做一個:010101010. – ale 2011-04-17 15:21:06

+1

我用一個例子編輯了答案。是的,你會生成一堆隨機的二進制字符串,並將它們提供給GA。希望這可以幫助! – JohnIdol 2011-04-17 15:39:35