Как определить фитнес-функцию? - PullRequest
9 голосов
/ 07 сентября 2011

Я работаю над проектом, который будет иметь выбранный набор данных, и у каждого будут разные атрибуты. Мне нужно будет использовать фитнес-функцию, чтобы выбрать данные, которые лучше всего соответствуют выбранному сценарию, используя атрибуты.

Однако я не нашел ни одного сайта, объясняющего, как определить мою собственную фитнес-функцию. Все, что у меня есть, это то, что это часть генетического алгоритма, и это насколько я понял. Итак, я могу дать некоторые указатели здесь?

Ответы [ 2 ]

16 голосов
/ 07 сентября 2011

Это сложная часть ГА (ну, это и представление данных), и на самом деле вы можете учиться только на собственном опыте.

Заявив, очевидно, что функция должна быть чем-то, что измеряет, насколько хороши результаты,В частности, он должен быть гладким по широкому диапазону данных - какими бы ни были данные, ваша функция пригодности должна показывать правильный способ улучшения.

Так, например, функция пригодности, которая равна нулю, если толькоправильный ответ - это не хорошо, потому что он не помогает вам приблизиться к правильному ответу, когда вы начинаете.

И функция фитнеса, которая увеличивается по мере улучшения ситуации, но не определяет лучшиерешение тоже не очень хорошее, потому что ваше население улучшится до определенного уровня, а затем застрянет.

Так что вам нужно сесть, написать несколько примеров ваших данных, а затем подумать о том, какие функцииты можешь использовать.Вы хотите что-то, что дает низкие значения для плохих данных и высокие значения для хороших данных.И это прекрасно подстраивается между двумя.

Попробуйте сначала любую сумасшедшую идею, о которой вы только можете подумать, а затем посмотрите, как вы можете представить это в хорошей математической форме.Просто проведите мозговой штурм и продолжайте пробовать и повторять ... вы, вероятно, обнаружите, что ваш первый выбор не так уж хорош, и как только вы запустите GA, вы сможете посмотреть на происходящее более подробно и улучшить его.

2 голосов
/ 07 сентября 2011

Вы уверены, что на самом деле вам нужна функция фитнеса?

Функция фитнеса, как вы сказали, - это то, что используется в Генетическом алгоритме.Он используется в каждой итерации алгоритма для оценки качества всех предложенных решений вашей проблемы в текущей популяции.Функция пригодности оценивает, насколько хорошо одиночное решение в популяции, например, если вы пытаетесь определить, для какого значения x функция имеет минимальный y, с помощью генетического алгоритма, функция пригодности для единицы может просто быть отрицательной y-значение (чем меньше значение, тем выше фитнес-функция).

То, что я в основном пытаюсь сказать, фитнес-функции не так много имеют с атрибутами, просто оценивая результаты.

Если вы хотите выбрать наиболее репрезентативную выборку данных, которая содержит атрибуты, возможно, вам следует также изучить методы классификации или кластеризации?Вы не дали много информации о том, каким образом будет представлен выбранный сценарий, но, возможно, вы могли бы кластеризовать свои данные (вы можете попробовать алгоритм кластеризации k-средних и увеличить число кластеров, пока ошибка классификации не перестанет значительно падать?) Ичем выбрать репрезентативный кластер данных, если у вас есть требование сценария?

Если вы предоставили более подробную информацию о том, как запросы представлены в отношении представления данных, возможно, вы получили другой (или лучший) ответ откто-то.

Опять же, если ваша единственная цель - изучить Генетический алгоритм или любую другую часть области ИИ / Машинного обучения, вы должны сделать именно то, что предложили ФС, и найти книгу, аудиолекцию, записаться накласс для этого или что-то подобное.

...