3

我想用遺傳程序(gp)來估計'事件'的'結果'的概率。爲了訓練nn我正在使用遺傳算法。使用遺傳程序來估計概率

所以,在我的數據庫我有很多的活動,包含多種可能的結果每一個事件。

我會給GP一組涉及到每個事件每個結果輸入變量。

我的問題是 - 應該適應度函數是在GP是什麼????

例如,現在我給gp一組輸入數據(結果輸入變量)和一組目標數據(如果結果DID發生則爲1,如果結果DID不發生則爲0,使用適應度函數是產出和目標的均方誤差)。然後,我得到每個結果的每個輸出的總和,並將每個輸出除以總和(給出概率)。然而,我確信這不是正確的做法。

爲了清楚起見,這是我目前如何這樣做:

我想估計在事件發生5個不同結果的概率:

Outcome 1 - inputs = [0.1, 0.2, 0.1, 0.4] 
Outcome 1 - inputs = [0.1, 0.3, 0.1, 0.3] 
Outcome 1 - inputs = [0.5, 0.6, 0.2, 0.1] 
Outcome 1 - inputs = [0.9, 0.2, 0.1, 0.3] 
Outcome 1 - inputs = [0.9, 0.2, 0.9, 0.2] 

我會再計算出GP輸出對於每個輸入:

Outcome 1 - output = 0.1 
Outcome 1 - output = 0.7 
Outcome 1 - output = 0.2 
Outcome 1 - output = 0.4 
Outcome 1 - output = 0.4 

此事件中每個結果的輸出總和爲:1.80。然後我會通過總和除以輸出計算每個結果的「可能性」:

Outcome 1 - p = 0.055 
Outcome 1 - p = 0.388 
Outcome 1 - p = 0.111 
Outcome 1 - p = 0.222 
Outcome 1 - p = 0.222 

開始之前 - 我知道,這些都不是真正的概率,並且這種方法是行不通的!我只是把它放在這裏來幫助你理解我想要達到的目標。

誰能給我我如何能估計每個結果的概率一些指點? (另外,請注意我的數學是不是很大)

非常感謝

+0

我不明白你描述的問題。你的數據集究竟是怎樣的?它是如何產生的?你究竟想要估計什麼? – ziggystar

+0

我正在嘗試估計事件中發生結果的概率。一個事件可以是任何事情(例如一場比賽),結果可以是任何事情(例如跑步者)。 gp的輸入將是與每個參賽者相關的變量,並且我試圖估計每個參賽者贏得比賽的概率。 – Sherlock

+0

因此,你的'事件'不是[概率意義上的'事件'](http://en.wikipedia.org/wiki/Event_%28probability_theory%29),而是「事情發生」常見含義的事件?這很混亂。那麼你是否試圖估計某個事件給定結果的條件概率? – ziggystar

回答

2

我明白你的問題的第一部分:你描述的是一個分類問題。如果您的輸入與是否觀察到結果有關(1)或不是(0),那麼您正在學習。

有與第二部分,雖然困難。如果我正確地理解了你,你可以將原始的GP輸出作爲一行輸入(例如0.7),並將其視爲一個概率。你說這顯然不起作用。在GP中,您可以通過引入劃分課程的閾值來進行分類。如果它大於0.3,那麼結果應該是1,如果它更小,它應該是0.這個閾值不一定是0.5(再次,它只是一個數字,而不是概率)。

我認爲,如果你想獲得你應該嘗試學習多種型號,所有解釋你的分類問題很好的概率。我不指望你有一個完美的模型來完美地解釋你的數據,如果你不想要一個概率。您可以將這些模型打包在一起(創建一個集合),並且對於每個結果,您可以觀察預測了多少個模型1和預測了多少個模型0.預測1除以模型數量的模型的數量可以被解釋爲概率這一結果將得到遵守。如果模型都一樣好,那麼你可以忘記它們之間的權衡,如果它們的質量不同,當然你可以將這些考慮在你的決定中。訓練集中質量較低的模型不太可能爲良好的估計做出貢獻。

因此總的來說,你應該嘗試應用GP例如10次​​,然後使用訓練集上的所有10個模型來計算它們的估計值(0或1)。但是,不要強迫自己只有GP,有很多分類算法可以給出好的結果。

作爲旁註,我是一個名爲HeuristicLab的軟件的開發團隊的一部分,該軟件在Windows下運行,您可以運行GP並創建這樣的合奏。該軟件是開源的。

0

AI是關於複雜算法的。想想看,它的缺點經常是這些算法變成黑盒子。因此,算法的反面,如NN和GA,它們本質上是不透明的。如果你想擁有一輛汽車,那就是你想要的。另一方面,這意味着,你需要工具來查看黑匣子。

我在說的是,GA可能不是你想解決你的問題。如果你想解決AI類型的問題,你首先必須知道如何使用標準技術,如迴歸,LDA等。

所以,結合NN和GA通常是一個壞跡象,因爲你堆疊一個黑色在另一個盒子。我相信這是糟糕的設計。 NN和GA無非是非線性優化器。我建議你首先看一下主成分分析(PDA),SVD和線性分類器(見維基百科)。如果你想解決簡單的統計問題,可以轉向更復雜的問題。查看Russell/Norvig的優秀教科書,閱讀他們的一些源代碼。

爲了回答這個問題,我們必須廣泛地查看數據集。如果你正在處理一個小問題,定義概率等等,你可能會在這裏得到答案。也許檢查貝葉斯統計數據。這會讓你開始我相信。

+0

我不知道你在哪裏得到GA是不透明的想法。神經網絡是不透明的,遺傳算法是處理神經網絡不透明性的有效和廣泛使用的方法。 –