Программируем коллективный разум
Автор: |
Сегаран Т. |
ISBN: |
5-93286-119-3 |
Страниц: |
368 |
Масса: |
450 |
Обложка: |
мягкая |
Тираж: |
2000 |
Издана: |
Декабрь 2012 |
Оценка читателей: |
|
Обсудить на форуме
Аннотация
Хотите знать, как реализуются ранжирование результатов поиска, рекомендование товаров, социальные закладки и онлайновый подбор пар? В этой захватывающей книге рассказывается, как построить приложение Web 2.0, которое будет извлекать полезную информацию из гигантского массива данных, создаваемых партнерскими интернет-приложениями. Пользуясь описанными здесь изощренными алгоритмами, вы сможете писать интеллектуальные программы, которые получают интересные наборы данных с других сайтов или от пользователей ваших приложений и анализируют их на предмет выявления закономерностей.
Книга "Программируем коллективный разум" – это введение в мир машинного обучения и статистики. В ней объясняется, как делать полезные с точки зрения маркетинга выводы о поведении и предпочтениях пользователей на основе информации, ежедневно собираемой вашими и сторонними приложениями. Каждый алгоритм описан четко и кратко и сопровождается кодом, который можно сразу же включить в собственный сайт, блог, Вики или какое-нибудь специализированное приложение. Рассмотрены следующие темы:
- Методы коллаборативной фильтрации, позволяющие розничным продавцам рекомендовать товары или мультимедийную продукцию.
- Методы кластеризации, применяемые для обнаружения групп схожих образцов в большом наборе данных.
- Алгоритмы оптимизации, позволяющие рассмотреть миллионы возможных решений задачи и выбрать среди них наилучшее.
- Байесовская фильтрация, применяемая в антиспамных фильтрах для классификации документов на основе встречающихся слов и других признаков.
- Метод опорных векторов, применяемый для подбора пар на сайтах знакомств.
- Применение эволюционных методик для решения различных задач – компьютер обучается, улучшая собственный код после каждой сыгранной игры.
Каждая глава сопровождается практическими заданиями, направленными на овладение рассмотренных в ней алгоритмов. Выйдите за рамки простых приложений с хранением в базе данных и заставьте богатейшие россыпи данных в Интернете работать на вас.
Все примеры в книге написаны на языке Python. Кроме того, автор подробно разъясняет алгоритмы, что делает их понятными для тех, кто пишет на друих языках.
"Программируем коллективный разум" доставляет по Москве, Петербургу и всей России логистическая компания
Posylych. Посылыч - лучшее решение для интернет-логистики.
Найденные опечатки
BorisPlus, 1 ноября 2009
стр. 63 - не затронута весьма интересная тема - критерий остановки кластеризации, как определить, что кластеров 4, а не 124? Я к тому, что в итоге в приведенной кластеризации всегда получается один кластер. Ну и получится в итоге, что у нас все предъявленные объекты в одном "кластерном" скопе. А это не интересно.
стр. 69 - немного не правильно приведена формула коэффициента Танимото, так как она расходится с определением данным выше, на самом деле вычисляется "модифицированный" коэффициент Танимото, имеющий значение от (1-T), где T - это и есть коэф. Танимото.
стр. 71 - очень скользкий момент представления данных на двумерной плоскости, это не всегда возможно. Достаточно попробовать спроецировать тетраэдр. Ошибка проекции может быть весьма и весьма велика при этом.
стр. 83 - представлена модель базы данных, но неряшливо, ненаглядно, лапки один-ко-многим пришлось самому дорисовывать. Да и вообще не хватает в приложении итоговой ER-модели с таблицами pagerank, hiddennode, wordhidden,hiddenurl,fc,cc.
стр. 83 - скрипт создания базы, я бы добавил столбец urlid в индекc worldlocation.
стр. 95 - на рисунке, не хватает дополнительной стрелки во вне из блока "С 0.7". Иначе приводимые ниже вычисления матрицы перехода неверны.
стр. 96 - не сказано, как вычислить достаточное число итераций прохождения алгоритма PageRank. фраза "20 должно быть достаточно" - меня лично не устраивает
стр. 97 - используются веса нескольких метрик, но вот не пойму, почему веса не нормализованы, это же гораздо удобней, когда и итоговые данные распределены от 0 до 1. Ведь сами отдельные метрики и распределены от 0 до 1. А веса какие-то мутные и итоговая метрика получается в интервале от 0 до 3 (именно в контексте этого примера). А ведь от 0 до 1 - все таки приятнее
стр. 105 - "обучение с обратным распространением". Это же совсем легко понять, когда знаешь как оперировать матрицами(складывать и перемножать) . Зачем эти вложенные мегациклы, когда здесь проще показать именно формулу - "вектор умножить на вектор, получить матрицу, и сложить с исходной матрицей - получим искомую матрицу". Я думал автор пробует избежать понятия матриц, но он их все равно вводит гораздо позже в другой теме. Почему б не ввести это понятие именно тут, а не на аж стр. 267?
стр. 114 - во втором столбце представления результатов оптимизации, судя по формату и данным исходно файла, должны стоять сокращения названий.
стр.111-143 - "Случайный поиск", "Алгоритм спуска", "Алгоритм имитации отжига", "Генетические алгоритмы" - все имеют первое полученное случайным образом решение, от которого и "пляшут" далее. Другие алгоритмы оптимизации не описаны и не упомянуты. Непросвещенный подумает "Значит все методы оптимизации основываются на первом случайном решении". А это не так.
стр. 122 - как вам строчка сравнения значений статистик random.random()<p?
стр. 129 - "Ваша функция должно..." - описка.
стр. 138 - не хватает после "18" переопределения "s = optimization.genetic..." иначе будут показаны результаты случайного поиска, а не генетического алгоритма.
стр. 149 - речь идет о вероятности. Потом приводится формула. И вдруг "эта величина называется условной вероятностью". Напрашивается логически вопрос, а что тогда такое все таки "безусловная" вероятность и как ее считать? Думаю, надо исходную формулу привести уже после приведенной цитаты, а не до.
стр. 156 - "cprob = clf/(clf+nclf)" - заменить на "cprob = clf/freqsum", как это и сделано в функции cprob ниже.
стр. 156 - в самом низу "Как видите, документы, содержащие слово casino с вероятностью 0.9, классифицируются как спам" - эта фраза очень странная по нескольким причинам. Во-первых, в примере просто нет каких-либо упоминаний про casino и величину 0.9. А во-вторых, обратите внимание на запятые в предложении, ведь получается "документы, содержащие слово casino с вероятностью 0.9", а надо бы на самом деле "документы с вероятностью 0.9 классифицируются как спам".
стр. 269 - вот они и упоминавшиеся мной матрицы. Просто обратите внимание как они перемножаются. Ну как можно матрицу 3на4 умножить на матрицу 3на3? Это "банан" (двойка) по алгебре на первой сессии, а на второй уже без права исправления и прямиком в армию! Транспонируйте для приличия первую матрицу или другой пример приведите, только правильный.
Про разные API и связанный с этим код читал весьма бегло, может там все и в порядке)
1, 31 января 2010
стр 30 результат
Оставить сообщение об опечатках в книге
Спасибо за сотрудничество!