是否可以使用遗传算法对数据进行分类?

人工智能 分类 遗传算法 进化算法 matlab 神经进化
2021-11-08 06:10:59

是否可以使用遗传算法对数据进行分类?例如,是否可以对该数据库进行排序?

Matlab中有什么例子吗?

2个回答

这是可能的,但这是一个非常糟糕的主意。

有几个选项。一种是不使用 GA 作为直接分类器,而是使用 GA 来学习另一个分类模型(如神经网络)的参数。GA 的基本思想是它(非常粗略地说)形成了一种黑盒方法,用于在任意空间中搜索最小化或最大化某些函数的解决方案。

在这里,您将搜索可能的神经网络拓扑和/或权重的空间,以找到最小化错误分类率的空间。

另一种方法是有时被称为学习分类器系统 (LCS) 或基于遗传学的机器学习 (GBML) 所采用的方法。这种方法是使用进化机制来进化“如果 X 条件为真,则执行/分类 Y”形式的规则集。这是解决这类问题的更直接的方法。您在数据集上定义了一些特征,算法会尝试根据这些特征学习规则。

任何这些方法的问题都在于有很多更好的方法可以解决问题。请记住,GA 基本上是一个黑匣子,应该可以很好地解决大量未知问题。但我并没有解决大量未知问题。我正在尝试在一个数据集上将火腿与垃圾邮件分开。我可以想出比 GA 真正希望做的更好、更快的方法。

您必须了解遗传算法是一种优化算法。您不能向它提供电子邮件并使其对垃圾邮件进行分类。遗传算法用于训练模型以对垃圾邮件进行分类。那东西可能是神经网络。

您需要的是一种优化神经网络神经进化的遗传算法它可能大致工作如下

  1. 从神经网络池开始
  2. 给他们发送电子邮件,让他们分类,并计算正确率的适应度
  3. 选择神经网络进行交叉
  4. 分频器
  5. 变异

但是,有更好的方法对电子邮件进行分类(例如,一种查找某些“垃圾邮件词”的算法)。

但这绝对是可能的。如果您有兴趣,我为神经进化设置了一个javascript 库。