0

我想了解更多关于使用小波包分解、特征选择和 SVM 的故障检测模型。可以在这里阅读一些相关论文:

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4547208

https://mospace.umsystem.edu/xmlui/bitstream/handle/10355/4845/research.pdf?sequence=3

我的问题是在“特征选择”步骤中,我们需要选择小波包节点(及其计算的 rms 值)作为最终 SVM 分类器的特征。在 SVM 中,我们还需要知道每个向量的标签 (+1, -1),但是我们如何在特征选择过程中获得这个标签。我真的不太了解使用 10 倍 SVM 的遗传算法(GA),如上述论文。任何人都可以向我解释这一点吗?

4

1 回答 1

0

在列出的论文中,作者试图通过仅使用来自具有相对较低 EMI 噪声的频带的数据包训练 SVM 来最小化分类器中的噪声量。因此,他们将遗传算法纳入其特征选择步骤,如下所示:

首先,在这种情况下,遗传算法将是一堆 0 和 1,其长度等于您特定问题的频带数。每个“槽”(在遗传算法中实际上称为“基因”)对应于您在训练分类器时是否应该使用来自该频带的数据。

因此,如果您为数据使用总共 10 个频带,则每个个体或染色体(一组插槽/基因)的大小将是 10,并且看起来像这样(只是一堆 10 个 1s/0s)

0110101000

所以你从生成一整串随机染色体开始,一整串有多少?这取决于您的问题,并且肯定需要一些努力来确定...我建议根据您的硬件能力从几百到几百万尝试这个值。

好的,现在你有了随机的 0 和 1 串,那又如何呢?

好吧,这是有趣的部分,您需要评估这些染色体中的每一个在为您选择数据时(单独/一次一个)的能力,因此对于每个染色体,您循环遍历数据并训练您的 SVN当且仅当该特定染色体在与该数据包的频带相对应的位置具有“1”时,数据包。

换句话说,如果您有一个示例染色体:1000000001,并假设您收到一个对应于第一个频带的数据包,您会将其接受到您的 SVN 训练集中。如果您收到该染色体第 5 个频带的数据包,则将其丢弃。

由于 GA 仅用于特征选择步骤,现在您只需查看染色体“接受”的数据包数据,并使用此数据正常训练您的 SVN(而不是整个训练数据集)。然后,您根据使用此数据训练的 SVN 计算误差,并根据染色体的好坏为染色体分配一个分数。

在对所有染色体重复此操作后,您现在拥有每个染色体的列表以及生成的 SVN 在分类方面的表现。然后,您保存您有史以来表现最好的染色体,并执行遗传算法步骤来创建一批全新的染色体。这个想法是,通过结合前面步骤中表现良好的染色体,您可以获得一些甚至更好的染色体来为您的 SVN 选择数据。你只需重复这个评估/重组程序,直到你没有看到新染色体的表现比你一直以来的最好。

有道理?

于 2012-07-29T19:41:13.197 回答