Генетическое Программирование - Фитнес-функции - PullRequest
8 голосов
/ 17 апреля 2011

Допустим, у меня есть набор обучающих примеров, где A_i является атрибутом, а результат является двоичным (да или нет):

A1,             A2,             A3,             Outcome
red             dark            large           yes
green           dark            small           yes
orange          bright          large           no

Я знаю, что должен определить фитнес-функцию.Но что это за проблема?В моей реальной задаче есть 10 параметров и 100 обучающих примеров, но это аналогичная проблема.

1 Ответ

6 голосов
/ 17 апреля 2011

Я думаю, что путаница здесь связана с тем фактом, что обычно фитнес-функции возвращают вам некоторый скаляр, иногда в дискретном масштабе, но никогда не бинарный да / нет (или истина / ложь).В этом смысле это больше похоже на проблему «классификации», которую необходимо решить с помощью нейронных сетей (или, возможно, байесовской логики).Сказанное так, вы, безусловно, могли бы разработать 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...