Генетический алгоритм после СВМ - PullRequest
2 голосов
/ 31 января 2012

Я уже применил SVM, используя LIBSVM.Теперь я хотел бы реализовать генетический алгоритм для выбора функций.Пытался поискать информацию в Google

1) Видел этот веб-сайт: http://www.scribd.com/doc/31235552/Genetic-Algorithm-Implementation-Using-Matlab

2) Примеры GA в MATLAB: http://www.mathworks.com/help/toolbox/gads/f6691.html

Есть несколько вопросов по ним

Q1) [x fval] = ga (@fitnessfun, nvars, options).Эту функцию выполняет газолвер.Каким должен быть фитнес?В большинстве случаев это полиномиальная функция.Но в случае с SVM, что должно быть фитнесом?

Q2) есть ли конкретные примеры для GA после SVM?

Хотелось бы услышать некоторые отзывы.

Спасибозаранее.

1 Ответ

1 голос
/ 31 января 2012

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

Чтобы ответить на ваш второй комментарий:

Есть много частей, я не знаю, какую функцию ga вы используете, но если вывзгляните на документацию, в которой они должны указать, какие параметры следует ожидать этому фитнесу.Я предполагаю, что человек, для которого вы хотите оценить пригодность, является основным параметром для этой функции.Если вы эволюционируете выборку объектов, этот индивид будет массивом логических переменных, где true указывает на выбранную функцию, false указывает на невыбранную функцию.Эта функция пригодности должна возвращать индикатор того, насколько хорошо этот выбор функций тарифов, то есть она должна возвращать большее число для лучшего выбора и меньшее число для худшего выбора.Точность прогнозирования может быть хорошим значением для этого (количество правильных прогнозов, деленное на общее количество выборок).

Я собираюсь предположить, что вы знаете, как рассчитать точность прогнозирования модели SVM, учитываянабор данных и его метки.Поскольку у вас есть предварительно обученный SVM, может быть немного сложно использовать его только для выбранных функций, и это сильно зависит от реализации вашего SVM.Если это линейный SVM, вы можете просто установить нулевые значения невыбранных объектов в матрице данных.Однако, если это RBF SVM, это не сработает.Вам нужно будет понять внутренние механизмы реализации SVM, на которые вы полагаетесь.Я предлагаю сделать простой пример, где вы обучаете SVM на трехмерных данных, а затем адаптируете его для работы с двумерными данными.Это сильно зависит от реализации вашей модели SVM.

...