Я думаю, что путаница здесь связана с тем фактом, что обычно фитнес-функции возвращают вам некоторый скаляр, иногда в дискретном масштабе, но никогда не бинарный да / нет (или истина / ложь).В этом смысле это больше похоже на проблему «классификации», которую необходимо решить с помощью нейронных сетей (или, возможно, байесовской логики).Сказанное так, вы, безусловно, могли бы разработать GA для развития любого вида классификатора, и функция пригодности в основном была бы выражена в терминах правильных классификаций по сравнению с общими оценками.
Еще один чистый подход GA к этому - вероятно, более актуальный длявопрос - это закодировать весь набор правил классификации как данного индивида для генетического алгоритма.В этом смысле фитнес-функция может быть выражена в виде скаляра, представляющего, сколько классификаций «да / нет» данное подходящее решение-кандидат получает сразу по всему, и так далее.Подобный подход может быть найден в этой статье Использование Real-Valued Genetic: алгоритмы для развития R, наборы для классификации .
Пример (один из возможных способов закодировать это):
A1, A2, A3, Outcome
red dark large yes
green dark small yes
orange bright large no
Кодировка: красный = 000, темный = 001, большой = 010, зеленый = 011, маленький = 100, оранжевый = 101, яркий = 111 и т. Д. Результат: да = 1, нет = 0
Хромосома:
A1, A2, A3, Outcome
000 001 010 1
011 001 100 1
101 111 010 0
Все вышеперечисленное преобразуется в возможное решение в виде:
000001010-1/011001100-1/101111010-0
Вы будете генерировать случайную группу из них и развивать их в зависимости от того, каким образомвам нравится проверять пригодность (правильная классификация / общее количество классификаций в наборе правил) всего набора правил (будьте осторожны при выборе своей стратегии перехода здесь!).
Я также предлагаю вам прослушать двоичный файл соло , чтобы поднять вам настроение.
ПРИМЕЧАНИЕ : Я очень сомневаюсь, что это будет работать с набором правил, состоящим из only 3 правил, недостаточной ширины для GA.