2011-09-07 58 views
7

我正在研究一個項目,該項目將有一組選定的數據,每個數據將具有不同的屬性。我將需要使用健身功能來選擇最符合我選擇的使用屬性的場景的數據。如何做健身功能

但是,我沒有真正找到任何網站解釋如何開始我自己的健身功能。我所得到的只是遺傳算法的一部分,而且就我而言。那麼我可以在這裏得到一些指示嗎?

回答

2

你確定你需要的是一個健身功能嗎?

正如你所說,健身功能是用在遺傳算法中的東西。它用於算法的每次迭代中,以評估當前總體中針對您的問題提出的所有解決方案的質量。適應度函數評估羣體中單個解決方案的有效性,例如,如果您試圖通過遺傳算法找到函數具有y最小值的x值,則單位的適應度函數可能只是負的y值(適應度函數越高的值越小)。

我基本上想說的是,健身功能不涉及那麼多的屬性,只是評估結果。

如果你想選擇最具代表性的包含屬性的數據樣本,也許你應該看看分類或聚類方法?您沒有給出有關所選方案將以何種方式表示的信息,但也許您可以對數據進行聚類(您可以嘗試使用k-means聚類算法並嘗試增加聚類數量,直到分類錯誤停止顯着下降爲止)以及比選擇一個有代表性的數據集羣,一旦你有場景要求?

如果您已經提供了有關數據表示形式的查詢代表方式的更多詳細信息,那麼您可能會從某人處得到不同的(或更好的)答案。

然後,如果您的唯一目標是學習遺傳算法或AI /機器學習領域的任何其他部分,您應該完全按照phs建議的內容去尋找書籍,音頻講座,或類似的東西。

12

這是GAs(很好,那和數據表示)的難的部分,真的,你只能通過經驗學習。

說明顯而易見的功能必須是衡量結果有多好的一個因素。尤其是,它必須平滑跨越廣泛的數據 - 無論數據如何,您的健身功能必須展現正確的改善方式。

因此,例如,除非答案是正確的,否則爲零的適應度函數是不好的,因爲它在開始時並不能幫助您接近正確的答案。

隨着情況的好轉,健康功能也隨之增加,但沒有找到最好的解決方案也不是那麼好,因爲你的人口會改善到某一點,然後卡住。所以你需要坐下來,寫下你的數據的一些例子,然後考慮你可以使用什麼樣的功能。您希望某些數據的值較低,而較高的數據值較高。這在兩者之間很好地調整。

嘗試一下你可以想到的任何瘋狂的想法,然後看看你會怎麼把它變成一個很好的數學形式。只是頭腦風暴,不斷嘗試迭代......你可能會發現你的第一選擇不太好,一旦你運行了GA,你就可以看到更詳細的情況並改進它。

+0

這讓我想我們大概可以確定健身功能對於健身功能有多好! – weltschmerz