使用遗传编程来估计概率

时间:2012-10-22 11:19:39

标签: artificial-intelligence probability genetic-algorithm genetic-programming

我想使用遗传程序(gp)来估计'事件'的“结果”概率。为了训练我正在使用遗传算法。

因此,在我的数据库中,我有很多事件,每个事件都包含许多可能的结果。

我将给gp一组输入变量,这些变量与每个事件中的每个结果相关。

我的问题是 - 健身功能在gp中应该是什么?????

例如,现在我给gp一组输入数据(结果输入变量)和一组目标数据(如果结果DID发生,则为1,如果结果未发生,则为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 

在你开始之前 - 我知道这些不是真正的概率,而且这种方法不起作用!!我只是把它放在这里帮助你理解我想要实现的目标。

任何人都可以给我一些关于如何估算每种结果概率的指示吗? (另外,请注意我的数学不是很好)

非常感谢

2 个答案:

答案 0 :(得分:2)

我理解你问题的第一部分:你所描述的是一个分类问题。您正在学习您的输入是否与观察结果(1)或未观察到(0)有关。

虽然第二部分有困难。如果我理解正确的话,你会将原始GP输出用于某一行输入(例如0.7)并将其视为概率。你说这显然不起作用。在GP中,您可以通过引入分割您的类的阈值来进行分类。如果它大于0.3,结果应为1,如果它小于它应该为0.这个阈值不一定是0.5(再次它只是一个数字,而不是概率)。

我认为如果您想获得概率,您应该尝试学习多个模型,这些模型都可以很好地解释您的分类问题。我不认为你有一个完美的模型可以完美地解释你的数据,如果你不想要一个概率。您可以将这些模型组合在一起(创建一个整体),并且对于每个结果,您可以观察预测的模型数量1和预测的模型数量。预测1的模型数除以模型数可以解释为概率将会观察到这一结果。如果模型都同样好,那么你可以忘记它们之间的权衡,如果它们的质量不同,你当然可以将它们考虑在你的决定中。训练集质量较差的模型不太可能有助于做出良好的估计。

总而言之,您应尝试应用GP,例如10次​​然后使用训练集上的所有10个模型来计算他们的估计值(0或1)。但是,不要强迫自己只使用GP,有许多分类算法可以产生良好的效果。

作为旁注,我是一个名为HeuristicLab的软件开发团队的一员,该软件在Windows下运行,您可以使用它运行GP并创建此类集合。该软件是开源的。

答案 1 :(得分:0)

AI是关于复杂算法的。想想看,它的缺点往往是这些算法变成了黑盒子。因此,对于算法,例如NN和GA,它们本身就是不透明的。如果你想要开车自己,这就是你想要的。另一方面,这意味着您需要工具来查看黑匣子。

我所说的是GA可能不是你想解决问题的方法。如果你想解决AI类型的问题,首先你必须知道如何使用标准技术,如回归,LDA等。

因此,结合NN和GA通常是一个不好的迹象,因为你在另一个上堆叠了一个黑盒子。我相信这是糟糕的设计。 NN和GA只不过是非线性优化器。我建议你先看主成分分析(PDA),SVD和线性分类器(见维基百科)。如果你想要解决简单的统计问题,那就转向更复杂的问题。查看Russell / Norvig的优秀教科书,阅读他们的一些源代码。

要回答问题,我们必须广泛地查看数据集。如果您正在处理一个小问题,请定义概率等,您可能会在这里得到答案。也许查看贝叶斯统计数据。这会让你开始我相信。