比方說,我有一組的訓練實例,其中A_I是一個屬性,結果是二進制(是或否):遺傳編程 - 健身功能
A1, A2, A3, Outcome
red dark large yes
green dark small yes
orange bright large no
我知道我必須定義適應度函數,這個問題是什麼?在我的實際問題中有10個參數和100個訓練樣例,但這是一個類似的問題。
比方說,我有一組的訓練實例,其中A_I是一個屬性,結果是二進制(是或否):遺傳編程 - 健身功能
A1, A2, A3, Outcome
red dark large yes
green dark small yes
orange bright large no
我知道我必須定義適應度函數,這個問題是什麼?在我的實際問題中有10個參數和100個訓練樣例,但這是一個類似的問題。
我認爲這裏的困惑來自這樣一個事實,即通常的健身功能會給你一些標量,有時候是離散的,但從不是二進制是/否(或真/假)。從這個意義上講,這看起來更像是一個需要用神經網絡(或者貝葉斯邏輯)解決的「分類」問題。這樣說,你當然可以設計一個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組成的規則集工作。
@JohnIdol謝謝你的答案。如果我選擇使這三個例子分別爲100101010,010100110,001010101的染色體設計(因此第一個例子是100,因爲第一個屬性是紅色,後面是10,因爲第二個屬性是黑色,後面是10,因爲第三個屬性很大10,因爲這是一個'是'的例子),那麼你認爲你可以拿出適用於其中一個例子的適應度函數,這樣我可以看到你的意思更好嗎?我也會看看這篇論文。 +1爲此感謝你:)。 – ale 2011-04-17 15:10:46
輕微校正:適用於初始隨機假設的適應度函數。我可以做一個:010101010. – ale 2011-04-17 15:21:06
我用一個例子編輯了答案。是的,你會生成一堆隨機的二進制字符串,並將它們提供給GA。希望這可以幫助! – JohnIdol 2011-04-17 15:39:35
我給每個瞭解實際問題的人5美元。 – Spyros 2011-04-17 11:38:24
@SpyrosP,我會給你我的貝寶信息;)。我明白他在問什麼,雖然我沒有答案......但 – Prescott 2011-04-17 11:40:13
:哦,你真的認爲?請解釋一下! – Spyros 2011-04-17 11:42:12