جزییات کتاب
Тоби Сегаран Программируем коллективный разум Средства эффективной обработки информации в Интернете еще никогда не были настолько важны и востребованы, как сегодня. Эта книга - первое практическое руководство по программированию интеллектуальных приложений для Web 2.0. Здесь вы найдете все необходимое, чтобы научиться создавать самообучаемые программы на языке Python, которые способны собирать и анализировать огромные массивы данных, имеющиеся в Сети. Вы научитесь пользоваться алгоритмами машинного обучения, адаптируя их под свои собственные нужды. Чтобы овладеть представленным материалом, от вас не потребуется никаких специальных знаний об анализе данных, машинном обучении или математической статистике. Однако предполагается, что вы имеете достаточный опыт программирования и знакомы с основными концепциями. В каждой главе вы найдете практические примеры и задания, которые помогут вам быстро и легко освоить различные аспекты работы алгоритмов. Обзор глав Глава 1 #Введение в коллективный разум# Разъясняются идеи, лежащие в основе машинного обучения, его применение в различных областях и способы, позволяющие с его помощью делать выводы из данных, полученных от многих людей. Глава 2 #Выработка рекомендаций# Дается введение в методику коллаборативной фильтрации, которая применяется во многих онлайновых магазинах для рекомендования товаров или мультимедийной продукции. Включен также раздел о рекомендовании ссылок на социальном сайте хранения закладок и о построении системы рекомендования кинофильмов на основе анализа набора данных MovieLens. Глава 3 #Обнаружение групп# Развивает идеи, изложенные в главе 2, и знакомит с двумя методами кластеризации, позволяющими автоматически обнаруживать группы сходных элементов в большом наборе данных. Демонстрируется применение кластеризации для отыскания групп во множестве популярных блогов и во множестве пожеланий, высказанных посетителями сайта социальной сети. Глава 4 #Поиск и ранжирование# Описываются различные компоненты поисковой машины, в том числе паук, индексатор, механизм обработки запросов. Рассмотрен алгоритм ранжирования страниц на основе ведущих на них ссылок, PageRank, и показано, как создать нейронную сеть, которая обучается тому, какие ключевые слова ассоциированы с различными результатами. Глава 5 #Оптимизация# Содержит введение в алгоритмы оптимизации, предназначенные для отбора наилучшего решения задачи из миллионов возможных. Широта области применения подобных алгоритмов демонстрируется на примерах поиска оптимальных авиарейсов для группы людей, направляющихся в одно и то же место, оптимального способа распределения студентов по комнатам в общежитии и вычерчивания сети с минимальным числом пересекающихся линий. Глава 6 #Фильтрация документов# Демонстрируется методика байесовской фильтрации, которая используется во многих бесплатных коммерческих системах фильтрации спама для автоматической классификации документов по типам слов и другим обнаруживаемым свойствам. Описанный подход применим ко множеству результатов поиска по RSS-каналам с цель1ю автоматической классификации найденных записей. Глава 7 #Моделирование с помощью деревьев решений# Содержит введение в теорию деревьев решений, которая позволяет не только делать прогнозы, но и моделировать способ принятия решений. Первое дерево решений строится на основе гипотетических данных, взятых из протоколов сервера, и используется для того, чтобы предсказать, оформит ли пользователь премиальную подписку. В остальных примерах взяты данные с реальных сайтов для моделирования цен на недвижимость и оценки степени привлекательности различных людей. Глава 8 #Построение ценовых моделей# Описывается подход к решению задачи предсказания числовых значений, а не классификации. Для этого применяется метод k-ближайших соседей и алгоритмы оптимизации из главы 5. Эти методы в сочетании с eBay API используются для построения системы прогнозирования окончательной цены на торгах исходя из некоторого набора свойств. Глава 9 #Более сложные способы классификации: ядерные методы и машины опорных векторов# Показано, как можно использовать метод опорных векторов для подбора пар на сайтах знакомств или в системах подбора профессиональных кадров. Машины опорных векторов # довольно сложная техника, она сравнивается с альтернативными методиками. Глава 10 #Выделение независимых признаков# Содержит введение в сравнительно новую методику # неотрицательную матричную факторизацию, которая применяется для поиска независимых признаков в наборе данных. Часто элементы набора данных представляют собой конгломерат различных заранее неизвестных признаков. Данная методика позволяет распознать эти признаки. Описанная техника демонстрируется на примере набора новостей, когда одна или несколько тем новости выводятся из ее текста. Глава 11 #Эволюционирующий разум# Содержит введение в генетическое программирование # весьма продвинутую теорию, которая выходит за рамки оптимизации и позволяет фактически строить алгоритмы решения задачи, основанные на идее эволюции. В качестве примера рассматривается простая игра, в которой компьютер изначально играет плохо, но постепенно модифицирует свой код, и чем больше игр сыграно, тем совершеннее его умение. Глава 12 #Сводка алгоритмов# Обзор всех алгоритмов машинного обучения и статистической обработки, рассмотренных в этой книге. Выполняется также их сравнение в плане применимости к решению нескольких искусственных задач. Это поможет вам понять, как они работают, и визуально проследить, как каждый алгоритм производит разбиение данных. Приложение А #Дополнительные библиотеки# Приводится информация о дополнительных библиотеках, использованных в этой книге: где их найти и как установить. Приложение B #Математические формулы# Представлены формулы, описания и код для многих математических понятий, встречающихся на страницах настоящей книги. Упражнения в конце каждой главы содержат идеи о том, как обобщить описанные алгоритмы и сделать их более мощными.