Архив для категории: ‘теория’

Простая игра

Более интересной задачей для генетического программирования является создание искусственного интеллекта для игры. Программы можно заставить эволюционировать, принудив их состязаться между собой или с людьми, причем победителям предоставляются более высокие шансы перейти в следующее поколение. В этом разделе мы создадим симулятор для очень простой игры «Погоня» (рис. 11.6).

Читать далее »

Метод опорных векторов

Ранее  были рассмотрены машины опорных векторов (SVM). Пожалуй, это самый сложный метод классификации из всех описанных в книге. SVM принимает набор данных, состоящий из чисел, и пытается спрогнозировать, в какую категорию он попадает. Можно, например, определить роль игрока в баскетбольной команде по его росту и скорости бега. Для простоты рассмотрим всего две возможности: позиция в […]

Читать далее »

Оптимизация масштаба

В данном случае выбрать подходящие параметры масштабирования не так уж сложно, потому что вы заранее знаете, какие переменные существенны. Но обычно приходится работать с наборами данных, построенными кем-то другим, поэтому априорной информации о том, какие переменные существенны, а какие – нет, может и не быть. Теоретически можно попробовать много разных сочетаний коэффициентов, пока не найдется […]

Читать далее »

Кластеризация методом K-средних

Иерархическая кластеризация дает на выходе симпатичное дерево, но у этого метода есть два недостатка. Древовидное представление само по себе не разбивает данные на группы, для этого нужна дополнительная работа. Кроме того, алгоритм требует очень большого объема вычислений. Поскольку необходимо вычислять попарные соотношения, а затем вычислять их заново после объединения элементов, то на больших наборах данных […]

Читать далее »

Игра с человеком

Вы получили в ходе эволюции программу, которая победила всех своих кибернетических соперников. Теперь самое время сыграть с ней самому. Для этого создайте еще один класс, где также будет метод evaluate, который рисует доску и просит пользователя сделать ход. Добавьте в файл gp.py класс humanplayer: class humanplayer: def evaluate(self,board):

Читать далее »

Неотрицательная матричная факторизация

Техника выделения существенных признаков из данных называется неотрицательной матричной факторизацией (Non-negative Matrix Factorization – NMF). Это один из наиболее сложных методов во всей книге, поэтому потребуется чуть больше объяснений и краткое введение в линейную алгебру. Но в этом разделе мы рассмотрим все, что нужно знать.

Читать далее »

Оценка по евклидову расстоянию- Отыскание похожих пользователей

Один из самых простых способов вычисления оценки подобия – это евклидово расстояние. В этом случае предметы, которые люди оценивали сообща, представляются в виде координатных осей. Теперь в этой системе координат можно расположить точки, соответствующие людям, и посмотреть, насколько они оказались близки (рис. 2.1).

Читать далее »

Ранжирование критиков

Имея функции для сравнения двух людей, можно написать функцию, которая будет вычислять оценку подобия всех имеющихся людей с данным человеком и искать наилучшее соответствие. В данном случае меня интересуют кинокритики с таким же вкусом, как у меня. Тогда я буду знать, на кого ориентироваться, принимая решение о выборе фильма. Включите в файл recommendations.py следующую функцию, […]

Читать далее »

Евклидово расстояние

определяет расстояние между двумя точками в многомерном пространстве. Это то расстояние, которое вы измеряете с помощью обычной линейки. Расстояние между точками с координатами (Pj, p2, p3, p4, ^) и (q^, q2, q3, q4, ^) выражается по формуле B.1.

Читать далее »

Выделение независимых признаков

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

Читать далее »
 
Rambler's Top100