КнигоПровод.Ru20.04.2024

/ИТ-книги/O'REILLY

Программируем коллективный разум — Сегаран Т.
Программируем коллективный разум
Создание интеллектуальных приложений для Web 2.0
Сегаран Т.
год издания — 2008, кол-во страниц — 368, ISBN — 978-5-93286-119-6, 0-596-52932-5, тираж — 2000, язык — русский, тип обложки — мягк., масса книги — 460 гр., издательство — Символ-Плюс
КНИГА СНЯТА С ПРОДАЖИ
Programming Collective Intelligence
Toby Segaran

O'REILLY 2007

Пер. с англ. А. Слинкина

Уровень подготовки читателя: средний

Формат 70x100 1/16. Печать офсетная
ключевые слова — интеллект, интернет, самообуч, алгоритм, адапт, википед, youtube, myspace, google, pagerank, flickr, amazon, ebay, adsense, робот, кластеризац, оптимизац, байес, фильтрац, антиспам, индекс, ранжирован, обучен, генетическ, моделирован, libsvm, мутац

Средства эффективной обработки информации в Интернете ещё никогда не были настолько важны и востребованы, как сегодня. Эта книга — первое практическое руководство по программированию интеллектуальных приложений для Web 2.0. Здесь вы найдёте все необходимое, чтобы научиться создавать самообучаемые программы, которые способны собирать и анализировать огромные массивы данных, имеющиеся в Сети. Вы научитесь пользоваться алгоритмами машинного обучения, адаптируя их под свои собственные нужды. Чтобы овладеть представленным материалом, от вас не потребуется никаких специальных знаний об анализе данных, машинном обучении или математической статистике. Однако предполагается, что вы имеете достаточный опыт программирования и знакомы с основными концепциями. В каждой главе вы найдёте практические примеры и задания, которые помогут вам быстро и легко освоить различные аспекты работы алгоритмов.

Когда журнал Time выбрал в качестве человека 2006 года «вас», он утвердил идею о том, что сущность Web 2.0 — это «контент, генерируемый пользователями», и что такие сайты, как Википедия, YouTube и MySpace, — это столпы революции, совершившейся с приходом Web 2.O. Но истина гораздо сложнее. Тот контент, который пользователи вводят в Web 2.0 явно, — лишь самая верхушка айсберга. А 80% существенной информации скрыто в тёмных водах неявно образующихся данных.

Во многих отношениях определяющим моментом революции Web 2.0 стало изобретение компанией Google «ранга страниц» (PageRank). Это стало результатом осознания того факта, что каждая ссылка во Всемирной паутине наполнена скрытым смыслом: ссылка — это голос в пользу важности сайта. Если принять во внимание сами голоса и относительную важность голосующих сайтов, то результаты поиска оказываются лучше, чем при анализе одного лишь содержимого страниц. Именно этот прорыв вывел Google на путь, следуя по которому она стала одной из наиболее авторитетных технологических компаний нового столетия. Ранг страницы — один из сотен неявно учитываемых факторов, которые Google оценивает, решая, как представить результаты поиска.

Никто не назовёт компанию Google «генератором пользовательского контента», и тем не менее она, безусловно, находится в самом сердце Web 2.0. Вот почему я предпочитаю считать краеугольным камнем этой революции «обуздание коллективного разума». Ссылка — это контент, генерируемый пользователями, a PageRank — способ извлечения смысла из этого контента. Это же относится и к алгоритму вычисления «интересности» на сайте Flickr, и к функции «те, кто купил этот товар, купили также» на Amazon, и к алгоритмам нахождения «похожих исполнителей» на Last.fm, и к системе репутационного рейтингования на eBay, и к рекламной системе Google AdSense.

Я определяю Web 2.0 следующим образом: «методика проектирования систем, которые путём учёта сетевых взаимодействий становятся тем лучше, чем больше людей ими пользуются». Привлечение пользователей — первый шаг. Второй — обучение на основе действий пользователей и адаптация сайта в зависимости от того, какие действия пользователи совершают и на что они обращают внимание.

В книге «Программируем коллективный разум» Тоби Сегаран рассматривает алгоритмы и методы извлечения смысла из данных, в том числе и пользовательских. Это инструментарий программиста, работающего в контексте Web 2.O. Теперь уже недостаточно знать, как создать сайт с хранением данных в базе. Если вы хотите добиться успеха, то должны знать, как из этих данных добывать информацию — явно или путём анализа поведения пользователей на вашем сайте.

С 2004 года, когда мы придумали термин Web 2.0, на эту тему уже написано очень много, но книга Тоби — первое практическое руководство по программированию приложений для Web 2.0.

Тим О'Рейли
Предисловие

Браво! Не могу представить себе нилучшего введения в рассматриваемые алгоритмы иметоды для разработчика, ни более подходящего способа освежить в своей памяти кое-какие детали (а я давненько занимаюсь искусственным интеллектом).

— Дэн Рассел, ведущий технический специалист, Google

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

— Тим Уолтерc, технический директор, компания Collective Intellect

Хотите знать, как реализуются ранжирование результатов поиска, рекомендование товаров, социальные закладки и онлайновый подбор пар? В этой захватывающей книге рассказывается, как построить приложение Web 2.0, которое будет извлекать полезную информацию из гигантского массива данных, создаваемых партнёрскими интернет-приложениями. Пользуясь описанными здесь изощрёнными алгоритмами, вы сможете писать интеллектуальные программы, которые получают интересные наборы данных с других сайтов или от пользователей ваших приложений и анализируют их на предмет выявления закономерностей.

Книга «Программируем коллективный разум» — это введение в мир машинного обучения и статистики. В ней объясняется, как делать полезные с точки зрения маркетинга выводы о поведении и предпочтениях пользователей на основе информации, ежедневно собираемой вашими и сторонними приложениями. Каждый алгоритм описан чётко и кратко и сопровождается кодом, который можно сразу же включить в собственный сайт, блог, Вики или какое-нибудь специализированное приложением. Рассмотрены следующие темы:

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

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

ОГЛАВЛЕНИЕ

Предисловие9
Введение10
Благодарности18
 
1. Введение в коллективный разум19
 
Что такое коллективный разум20
Что такое машинное обучение22
Ограничения машинного обучения23
Примеры из реальной жизни23
Другие применения обучающих алгоритмов24
 
2. Выработка рекомендаций26
 
Коллаборативная фильтрация27
Сбор информации о предпочтениях27
Отыскание похожих пользователей29
Рекомендование предметов35
Подбор предметов37
Построение рекомендателя ссылок с помощью API сайта del.icio.us39
Фильтрация по схожести образцов43
Использование набора данных MovieLens46
Сравнение методов фильтрации по схожести пользователей
и по схожести образцов48
Упражнения49
 
3. Обнаружение групп50
 
Обучение с учителем и без него51
Векторы слов51
Иерархическая кластеризация54
Рисование дендрограммы60
Кластеризация столбцов63
Кластеризация методом К-средних64
Кластеры предпочтений67
Просмотр данных на двумерной плоскости71
Что ещё можно подвергнуть кластеризации75
Упражнения76
 
4. Поиск и ранжирование77
 
Что такое поисковая машина77
Простой паук79
Построение индекса82
Запросы86
Ранжирование по содержимому88
Использование внешних ссылок на сайт93
Обучение на основе действий пользователя99
Упражнения109
 
5. Оптимизация111
 
Групповые путешествия112
Представление решений113
Целевая функция114
Случайный поиск117
Алгоритм спуска с горы118
Алгоритм имитации отжига120
Генетические алгоритмы123
Поиск реальных авиарейсов127
Оптимизация с учётом предпочтений132
Визуализация сети136
Другие возможности142
Упражнения142
 
6. Фильтрация документов144
 
Фильтрация спама145
Документы и слова145
Обучение классификатора146
Вычисление вероятностей149
Наивная классификация151
Метод Фишера155
Сохранение обученных классификаторов159
Фильтрация блогов161
Усовершенствование алгоритма обнаружения признаков164
Использование службы Akismet166
Альтернативные методы168
Упражнения168
 
7. Моделирование с помощью деревьев решений170
 
Прогнозирование количества регистрации171
Введение в теорию деревьев решений173
Обучение дерева174
Выбор наилучшего разбиения176
Рекурсивное построение дерева178
Отображение дерева180
Классификация новых наблюдений183
Отсечение ветвей дерева184
Восполнение отсутствующих данных186
Числовые результаты188
Моделирование цен на недвижимость188
Моделирование степени привлекательности191
В каких случаях применять деревья решений194
Упражнения196
 
8. Построение ценовых моделей197
 
Построение демонстрационного набора данных198
Алгоритм k-ближайших соседей199
Взвешенные соседи203
Перекрёстный контроль207
Гетерогенные переменные209
Оптимизация масштаба212
Неравномерные распределения214
Использование реальных данных — API сайта eBay220
В каких случаях применять метод k-ближайших соседей227
Упражнения227
 
9. Более сложные способы классификации:
ядерные методы и машины опорных векторов229
 
Набор данных для подбора пар230
Затруднения при анализе данных231
Простая линейная классификация234
Категориальные свойства238
Масштабирование данных242
Идея ядерных методов243
Метод опорных векторов247
Библиотека LIBSVM249
Подбор пар на сайте Facebook252
Упражнения258
 
10. Выделение независимых признаков259
 
Массив новостей260
Прошлые подходы264
Неотрицательная матричная факторизация267
Вывод результатов273
Использование данных о фондовом рынке277
Упражнения282
 
11. Эволюционирующий разум284
 
Что такое генетическое программирование285
Программы как деревья287
Создание начальной популяции292
Проверка решения293
Мутация программ295
Скрещивание298
Построение окружающей среды300
Простая игра303
Направления развития308
Упражнения311
 
12. Сводка алгоритмов312
 
Байесовский классификатор312
Классификатор на базе деревьев решений316
Нейронные сети320
Метод опорных векторов324
k-ближайшие соседи329
Кластеризация333
Многомерное шкалирование336
Неотрицательная матричная факторизация338
Оптимизация341
 
Приложения344
 
A. Дополнительные библиотеки344
 
B. Математические формулы351
 
Алфавитный указатель358

Книги на ту же тему

  1. Нейронное программирование диалоговых систем, Толкачёв С. Ф., 2006
  2. Системы искусственного интеллекта, Лорьер Ж. Л., 1991
  3. Автоматизация синтеза и обучение интеллектуальных систем автоматического управления, Макаров И. М., Лохин В. М., ред., 2009
  4. Непараметрические коллективы решающих правил, Лапко В. А., 2002

© 1913—2013 КнигоПровод.Ruhttp://knigoprovod.ru