Читальный зал

индекс
155,43

Тоби Сегаран «Программируем коллективный разум»

Знаете, люблю я книжки про всякие интересные алгоритмы, и вот недавно попалась еще одна такая книжка.
Книга «Программируем коллективный разум» в основном посвящена алгоритмам классификации и кластеризации, хотя есть главы, посвященные другим темам вроде создания собственного поисковика, генетическим алгоритмам и генетическому программированию. Почти все описанные алгоритмы применяются в духе Web 2.0, используя анализ поведения пользователей на разных сайтах, которые предоставляют свой API. Но что особенно приятно удивило, так это то, что все примеры написаны на языке Python.
Вот какие алгоритмы описываются в книге:
  • Коллаборативная фильтрация. Или, говоря человечески языком, алгоритмы, которые могут рекомендовать вам какие-то покупки, сайты или музыку в зависимости от оценок, которые вы поставили другим подобным вещам. По таким алгоритмам работает навязывание покупок в интернет-магазинах или подбор музыки на last.fm. В конце главы приводится пример, который будет рекомендовать вам ссылки из сервиса del.icio.us.
  • Алгоритмы группировки (кластеризации). Создаваемый пример анализирует RSS-каналы блогов и пытается их автоматически разделить на группы в виде дерева в зависимости от частоты слов, которые попадаются в блоге. Заодно Сегаран рассказывает как можно сделать так, чтобы названия блогов расположились на плоскости кучками в зависимости от их близости в плане рассматриваемых тем.
  • Отдельная глава посвящена построению поисковиков – созданию паука и, самое главное, рассматриваются алгоритмы ранжирования ссылок, в том числе и с учетом ссылок страниц друг на друга, создавая, таким образом, аналог Google PageRank. Еще интересно, что в этой же главе есть пример, где для выдачи наиболее релевантных ссылок используется нейронная сеть, которая обучается по мере того как пользователь щелкает на понравившиеся ему ссылки.


  • Еще одна глава посвящена методам оптимизации. Здесь, в принципе, ничего особенного нет, коротко описаны алгоритмы случайного поиска, спуска с горы, отжига и генетический алгоритм. В качестве вебдванольного примера выступает поиск авиарейсов для довольно специфической задачи с помощью API сайта Kayak. Но в этой главе меня больше заинтересовали алгоритмы расселения студентов в общаге, чтобы удовлетворить как можно большее количество людей, и рисование связей между людьми таким образом, чтобы линии, обозначающие связи, не пересекались.
  • Рассматриваются алгоритмы сортировки на примере фильтрации спама. Приводится Байесовский алгоритм, который обычно первым приходит на ум при решении подобной задачи, и его модификация – метод Фишера. В качестве примера приводится работа с сайтом Akismet.
  • Рассказывается про алгоритмы построения деревьев решений, а в конце главы приводится пример, который с сайта Zillow загружает данные о ценах на недвижимость, а затем строит дерево решений, которое показывает какие параметры домов каким образом влияют на цену, а при желании можно спрогнозировать какая будет цена у дома с заданными параметрами.
  • Одна глава посвящена числовым прогнозам. Здесь рассмотрен алгоритм k ближайших соседей и взвешенный алгоритм k ближайших соседей. Пример в конце главы пытается угадать наиболее вероятную цену на товары на аукционе eBay по указанным параметрам.
  • Отдельная глава посвящена таким алгоритмам классификации как машина опорных векторов и ядерные методы. К сожалению, самое интересное – метод опорных векторов почти не рассмотрен. Точнее, буквально на пальцах рассказано что он делает, но не то как он это делает, а в примере используется библиотека http://www.csie.ntu.edu.tw/~cjlin/libsvm/, где этот алгоритм уже запрограммирован. В конце главы приводится пример подбора пар с использование API сайта Facebook.
  • Отдельная глава посвящена выявлению независимых признаков по массивам данных, но здесь я, если честно, не особо понял что делают описываемые алгоритмы.
  • И последняя глава посвящена генетическому программированию – разновидности генетических алгоритмов, когда между собой за место под солнцем (в оперативной памяти) конкурируют классы, моделирующие разные программы, которые между собой скрещиваются и мутируют.

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

Эта запись у меня в блоге
+61
24 декабря 2009, 09:19
122

комментарии (29)

+1
EiZeRR #
А там есть что-нибудь по теме Swarm intelligence, который по сути и есть коллективный разум в терминах AI?
0
Jenyay #
Нет, про этот метод нет.
0
Timeless #
Спасибо!
Когда читаю такие посты всегда жалею что на хабре нет кнопки «Хочу в подарок» :)
+2
Virgoss #
0
Timeless #
спасибо!
и Вас с Новым Годом :)
+3
vadbars #
А если я спрошу, нет ли где русской версии этой книги для бесплатного скачивания, это ведь не превратит Хабр в рассадник пиратства?
0
Virgoss #
Я не нашел.
0
dreamiurg #
Предпочитаю книги покупать, но сейчас хотелось её просмотреть, не откладывая. Нашел, выложил, пользуйтесь.

Программируем коллективный разум — русская версия, 2.9 Mb PDF (scan + OCR)
Programming collective intelligence — english version, 3.3 Mb PDF (text)
0
SergeyACTIVITI #
Замечу, что также все исходники на Python можно скачать с сайта автора. Вот – kiwitobes.com/PCI_Code.zip

P.S. PCI = Programming Collective Intelligence
0
highw #
Отлично! Некоторые темы касаются диплома, необходимо срочно почитать! )
0
hansi #
www.manning.com/marmanis/ Тоже по теме годная книга. Правда, пока только на английском)
0
kmike #
отличная книга, без ненужных усложнений, все по делу.
0
igorekk #
Хорошая книжка. Сам зачитывался :)
0
fata1ex #
Отличная книга, одна из тех, которые периодически перечитываю.
ps Жаль только вы немного опоздали — она вышла полтора года назад :) Хотя хорошие вещи читать никогда не поздно.
0
Jenyay #
Надо же, я думал, что она вышла в этом году, впервые ее увидел этим летом.
0
oddy #
О, а я и не знал, что она на русском вышла. Спасибо, заказал :)
0
Timeless #
а где, если не секрет?
–1
Timeless #
отставить, уже сам нашел на books.ru :)
0
Vadikus #
Мне показалось, или перевод действительно сильно отличается от оригинала. Я просто читаю оригинальную версию на английском, а вот тут лежит кусочек перевода на русский язык (7ая глава). Если внимательно присмотреться, то даже картинки как-то урезаны, переведены только частично — много текста просто выкинуто.
Пока существует только единственный русский перевод? Или это я такой удачливый — попал на не лучший экземпляр…
0
Jenyay #
Насчет перевода ничего сказать не могу, в оригинале я ее не видел, да и в бумажном виде видел только одну. На первый взгляд там все так же как по Вашей ссылке.
0
nnknows #
Читал около года назад на английском — клевая!
0
avenu #
Тем, кто купит эту книгу рекомендую сначала прочитать книгу без чтения кода, иначе очень сильно проседаешь, разбираясь в особенностях. Лучше понять все в целом, а потом уже разбираться в алгоритмах, которые понадобятся по необходимости.
0
yyyar #
Отличная книга для знакомства с темой. Читал в оригинале, помогла в работе. Однако в реальном проекте столкнулся с грудой трудностей, в книге не описанных (судя по всему вообще мало где описанных — тема не настолько хорошо изучена), что, однако, ничуть не уменьшает ценность книги :).

Must Read для всех, кто интересуется внутренностями современных социальных сетей (и не только ими).
+1
A_Gura #
Стоит заметить, что в примерах кода довольно много багов.
+1
NickMitin #
Спасибо! Купил оригинал на сайте O'Reilly.
0
Arceny #
Купил ПДФку на books.ru, очень интересно :)
0
ekzo #
у меня уже выработалась предвзятость к издательству O'Reilly, любая выпущенная книга будет, как минимум, хорошей.
0
Rumantic #
читаю и радуюсь, сколько же там инфы полезной.
много интересного взял для своей поисковой машины.
0
multik #
Скачал её в электронном русском варианте, ибо 450 грн. жаба задавила платить.
Книга действительно хорошая интересная и отлично подходит в качестве отправной точки.
Читать её интересно даже в случае, если питон — не является вашим любимым языком, пусть даже вы совсем с ним (питоном) не знакомы — как я например.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.