假设我有一组训练示例,其中 A_i
是一个属性,输出是 Iris-setosa
数据集中的值为
A1, A2, A3, A4 outcome
3 5 2 2 Iris-setosa
3 4 2 2 Iris-setosa
2 4 2 2 Iris-setosa
3 6 2 2 Iris-setosa
2 5 3 2 Iris-setosa
3 5 2 2 Iris-setosa
3 5 2 3 Iris-setosa
4 6 2 2 Iris-setosa
3 7 2 2 Iris-setosa
经分析,属性范围为:
A1 ----> [2,3,4]
A2 ----> [4,5,6,7]
A3 ----> [2,3]
A4 ----> [2,3]
我定义了:
A1 ----> [Low(2),Medium(3),High(4)]
A2 ----> [Low(4,5),Medium(6),High(7)]
A3 ----> [Low(<2),Medium(2),High(3)]
A4 ----> [Low(<2),Medium(2),High(3)]
我设置如下:
A1, A2, A3, A4 outcome
Medium Low Medium Medium Iris-setosa
Medium Low Medium Medium Iris-setosa
Low Low Medium Medium Iris-setosa
Medium Medium Medium Medium Iris-setosa
Low Low High Medium Iris-setosa
Medium Low Medium Medium Iris-setosa
Medium Low Medium High Iris-setosa
High Medium Medium Medium Iris-setosa
Medium High Medium Medium Iris-setosa
我知道我必须定义适应度函数。这个问题到底是为了什么?在我的实际问题中,有 50 个训练示例,但这是一个类似的问题。
如何使用GA
优化规则?我该如何编码?
假设如果我输入(4,7,2,3),优化如何帮助我分类输入是否为Iris-setosa
?
感谢您的耐心等待。
最佳答案
您描述的任务称为 one-class classification .
通过从仅包含该类对象的训练集中学习,在所有元素中识别特定类的元素
... different from and more difficult than the traditional classification problem, which tries to distinguish between two or more classes with the training set containing objects from all the classes.
一种可行的方法是人为构建离群值类数据并使用二类模型进行训练,但这可能很棘手。
生成人工离群数据时,您需要比目标数据更广泛的可能值(您必须确保目标数据在所有属性方向上都被包围)。
生成的二类训练数据集往往不平衡并且 大。
无论如何:
如果您想尝试使用遗传编程进行一类分类,请查看
One-Class Genetic Programming - Robert Curry、Malcolm I. Heywood(在第 13 届欧洲基因编程 session EuroGP'10 上发表)
还请考虑 anomaly detection技术(简单介绍的是吴恩达的Coursera Machine Learning class的第9周;notes在这里)。
关于machine-learning - 遗传算法-适应度函数和规则优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35244639/