遗传算法的参数选择


9

如何为遗传算法建模给定系统选择合适数量的参数?

例如,假设您要优化汽车的生产,并且对1,000名不同员工中的每名员工在不同任务下的小​​时效率进行了1,000次测量。因此,您有1,000,000个数据点。其中大多数可能与工厂的整体效率之间存在弱关联,但并非如此弱,以至于您可以说它们与统计信心无关。如何为GA选择输入,以使您没有1,000,000+的自由度,从而导致收敛速度非常慢或完全没有收敛?

具体来说,一个可以用来预选或选择性消除特征的算法是什么?

我在这种情况下使用的一种方法是自行发展参数选择,因此我可能会有像{a,b,c}{b,d,e,q,x,y,z}等等的父项。然后,我将对孩子进行突变以添加或删除功能。这对几十个功能都适用。但是问题是,如果存在大量的自由度,效率会很低。在这种情况下,您正在查看10^n组合(在上面的示例中10^1,000,000),这使得对功能进行一些预过滤对于获得任何有用的性能至关重要。

Answers:


11

首先-该示例似乎不太适合,因为您可能会使用一些回归或经典ML方法来解决此问题。其次-您指的是特征选择 (Kira,Rendell,1992)属性选择 (Hall,Holmes,2003)变量选择 (Guyon,Elisseeff,2003)变量子集选择 (Stecking,Schebesch,2005)的一般问题特征提取 (Hillion,Masson,Roux,1988) (Roweis,Saul,200)状态抽象 (Amarel,1968)。当处理高维数据时,这个问题不仅与遗传算法有关,而且与几乎所有机器学习技术有关。

在这里可以区分三种情况:这个问题的最后一个实例称为状态抽象,通常与流程建模有关(适合您的示例,但不适合GA上下文)。从字面上看问题时,前三个功能(即特征选择属性选择变量选择)似乎最相关。在这种情况下,通用的解决方案是mRMR方法(Peng,Long,Ding,2005)。根据我的经验,它并不总是适用于连续数据-但是,互信息可以用其他系数代替,例如相关性。另一种可能的方法是使用交叉验证(Picard,Cook,1984)为了这。您可以有多个使用不同功能的模型,通过使用交叉验证技术进行模型选择,您可以选择最佳模型,从而为您提供有关哪些功能最适合给定任务的信息。

特征提取降维情况下,不仅可以选择初始特征,还可以选择其组合。对于这种情况,众所周知的示例解决方案是PCA算法(Pearson,1901年),该算法根据解释的方差产生最优的特征集,即输入特征的线性组合。

还要注意,有许多模型可以自己处理特征提取任务。例如:神经网络的成长(Fritzke,1995),LASSO (Tibshirani,2011),RFE SVM (Zeng,Chen,Tao,2009),决策树(Quinlan,1986)

参考文献:


3

我以前从未做过,而且显然没有访问这些数据的权限,但是实现这一目标的一种潜在的好方法是通过集群。对于每个员工,我们都有一个n维向量,其中每个维对应于一个不同的任务。然后,我们可以使用群集将“相似”的员工分组在一起;但是,这将完全取决于您的数据,即,很可能仅给1000名员工,集群将产生与实际上并没有任何关系的员工组,因此尽管我们可能会减少人口,可能以信息丢失为代价。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.