Выбор признаков с помощью генетических алгоритмов (пример)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 7: Строка 7:
Задано множество порождающих функций линейной регрессионной модели <tex>\{\mathbf{f}_1,...,\mathbf{f}_N\}</tex>, где <tex>\mathbf{f}_i:\: \mathbb{R}^M \to \mathbb{R}</tex>. Введем обозначения: <br />
Задано множество порождающих функций линейной регрессионной модели <tex>\{\mathbf{f}_1,...,\mathbf{f}_N\}</tex>, где <tex>\mathbf{f}_i:\: \mathbb{R}^M \to \mathbb{R}</tex>. Введем обозначения: <br />
<tex>c\in\{0,1\}^N</tex>,
<tex>c\in\{0,1\}^N</tex>,
-
<tex>F(c) =\left(\begin{array}{ccc} \mathbf{f}_{i_1}(x_1) & \ldots & \mathbf{f}_{i_k}(x_1)\\ \mathbf{f}_{i_1}(x_2) & \ldots & \mathbf{f}_{i_k}(x_2)\\ \ldots & \ldots & \ldots \\ \mathbf{f}_{i_1}(x_n) & \ldots & \mathbf{f}_{i_k}(x_n)\\ \end{array} \right) </tex>,
+
<tex>F(c) =\left(\begin{array}{ccc} \mathbf{f}_{i_1}(x_1) & \ldots & \mathbf{f}_{i_k}(x_1)\\ \mathbf{f}_{i_1}(x_2) & \ldots & \mathbf{f}_{i_k}(x_2)\\ \ldots & \ldots & \ldots \\ \mathbf{f}_{i_1}(x_n) & \ldots & \mathbf{f}_{i_k}(x_n)\\ \end{array} \right) </tex>, k = ||c||<sub>1</sub>, {&nbsp;i<sub>j</sub>&nbsp;}<sub>j=1</sub><sup>k</sup>⊂{ 1,...,N } : c( i<sub>j</sub> )=1 при j=1,...,k; <br />
 +
<tex>\mathbf{w(c)} = (F(c)^TF(c))^{-1}F(c)^T\mathbf{y};</tex> <br />
 +
<tex>\mathbf{y(c)} = F(c)\mathbf{w(c)}.</tex> <br />
 +
Требуется решить следующую задачу: <br />
 +
<tex>SSE(c) = (\mathbf{y}-\mathbf{y(c)})^T(\mathbf{y}-\mathbf{y(c)}) \to min_c.</tex>
 +
 
 +
 
== Описание алгоритма ==
== Описание алгоритма ==

Версия 19:06, 27 апреля 2010

Содержание

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

Постановка задачи

Задана выборка — множество \{x_1,...,x_n|x_i\in\mathbb{R}^M\} значений свободных переменных и множество \{y_1,...,y_n| y_i\in\mathbb{R}\} соответствующих им значений зависимой переменной. Задано множество порождающих функций линейной регрессионной модели \{\mathbf{f}_1,...,\mathbf{f}_N\}, где \mathbf{f}_i:\: \mathbb{R}^M \to \mathbb{R}. Введем обозначения:
c\in\{0,1\}^N, F(c) =\left(\begin{array}{ccc} \mathbf{f}_{i_1}(x_1) & \ldots & \mathbf{f}_{i_k}(x_1)\\ \mathbf{f}_{i_1}(x_2) & \ldots & \mathbf{f}_{i_k}(x_2)\\ \ldots & \ldots & \ldots \\ \mathbf{f}_{i_1}(x_n) & \ldots & \mathbf{f}_{i_k}(x_n)\\ \end{array} \right) , k = ||c||1, { ij }j=1k⊂{ 1,...,N } : c( ij )=1 при j=1,...,k;
\mathbf{w(c)} = (F(c)^TF(c))^{-1}F(c)^T\mathbf{y};
\mathbf{y(c)} = F(c)\mathbf{w(c)}.
Требуется решить следующую задачу:
SSE(c) = (\mathbf{y}-\mathbf{y(c)})^T(\mathbf{y}-\mathbf{y(c)}) \to min_c.


Описание алгоритма

Вычислительный эксперимент

Цель вычислительного эксперимента -

Рисунок с подписью. Выровнен по правому краю.
Рисунок с подписью. Выровнен по правому краю.

Описание данных

Выполнение алгоритма

Визуализация результатов

Исследование свойств алгоритма

Исходный код

Скачать листинги алгоритмов можно здесь: createArtificialData1D.m, testGaEffeciency.m, gaEffeciency.m, evalSSE.m, plotRes.m, plotRegression.m,

Смотри также

Литература

Данная статья является непроверенным учебным заданием.
Студент: Участник:Николай Савинов
Преподаватель: Участник:В.В. Стрижов
Срок: 28 мая 2010

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.

Личные инструменты