2012-01-31 112 views
2

我已经应用了LIBSVM的SVM。现在我想要实现遗传算法进行特征选择。试图谷歌的一些信息SVM后的遗传算法

1)看到这个网站:http://www.scribd.com/doc/31235552/Genetic-Algorithm-Implementation-Using-Matlab

2)在MATLAB GA例子:http://www.mathworks.com/help/toolbox/gads/f6691.html

对他们

Q1几个问题)[X FVAL] =ガ(@fitnessfun,nvars,选项)。这是做加索尔的功能。健身运动应该怎样?在大多数ga中,它是一个多项式函数。但是在SVM的情况下,健身运动应该是什么? Q2)在SVM之后,遗传算法是否有任何具体的例子?

想听听一些反馈。

在此先感谢。

回答

1

如果你想做功能选择,我认为你有它倒退。您应该在之前运行GA以获取特征选择对SVM的培训。您的健身功能可能会成为新训练的SVM在选定功能上的表现,这取决于您想要完成的功能。不能说你对这个话题非常清楚。

要回答你的第二个评论:

有很多地方,我不知道你正在使用此ga函数,但如果你看看文档,他们必须某处告诉你这个参数应该fitnessfun期待。我猜想你想评估适应度的个体是这个功能的主要参数。如果您演变了一系列功能,则此人将成为布尔变量数组,其中true表示选定的功能,false表示未选择的功能。这个适应度函数需要返回这个特征选择的好坏指标,即它必须返回一个更高的数字才能获得更好的选择,而更低的数字则会得到最差的选择。对于这个预测精度可能是一个很好的数值(nb。正确预测除以样本总数)。

我打算假设您知道如何计算给定数据集及其标签的SVM模型的预测精度。由于您有预先训练好的SVM,因此仅将它用于选定的功能可能有点棘手,并且它强烈依赖于SVM的实施。如果它是线性SVM,则可以将数据矩阵中的未选特征的值设置为零。但是,如果它是RBF SVM,将无法工作。您需要了解您所依赖的SVM实施的内部机制。我建议做一个简单的例子,在这里你可以训练一个支持3D数据的SVM,然后使其适应2D数据。它强烈依赖于SVM模型的实现。

+0

我明白你的意思:分类前的特征选择......但我正在做我的fyp ..我的教授想先运行分类器。现在他想通过功能选择来改进结果... – lakesh 2012-01-31 19:14:21

+0

好吧,我想我明白了......运行一个训练有素的SVM,并选择功能在运行时供给它,而无需重新训练?然后,如果仅使用所选功能,则您的健身功能应该成为预测SVM准确性的函数。 – levesque 2012-01-31 19:21:24

+0

我不明白最后一句话。你能解释一下细节吗?我该怎么做? – lakesh 2012-02-01 03:34:38