Алгоритмы интеллектуального ИнтернетаМетодическое руководство.

Марманис X., Бабенко Д. "Алгоритмы интеллектуального Интернета. Передовые методики сбора, анализа и обработки данных" Символ-Плюс, 2011 год, 480 стр, ил. (4,83 мб. djvu)

Используя методы сбора и анализа данных в Интернете возможно создавать успешные коммерческие приложения для интеллектуальных веб-проектов. Можно привести примеры успешных разработок, созданных широко известными брендами, как Google, Netflix и Amazon. Книга расскажет о том, как выработать алгоритмы, на основе которых будут сформированы веб-приложения построенные на методиках обработки информации полученной при анализе собранных данных.

Будут рассмотрены пять основных категорий алгоритмов: поисковые, обработка приоритетов (выработка предложений рекомендаций), кластеризация (создание и объединение групп), классификация (категоризация), объединение и ансамбли классификаторов. В книге, исходный код приводится на языке Java. Если вы знакомы с другим объектно-ориентированным языком, то разобраться в приведенном коде вполне по силам. Полученную информацию вы можете с успехом применить к различным типам приложений - от утилит для мобильной связи и до традиционных десктопных приложений. Книга ориентирована на IT специалистов занимающихся программированием и разработкой WEB-приложений.
ISBN 978-5-93286-186-8
ISBN 978-1-933988-66-5 (англ)
Оглавление.

Предисловие 11
Благодарности 14
Об этой книге 16

Глава 1. Что такое интеллектуальный Интернет? 23
1.1. Примеры интеллектуальных веб-приложений 25
1.2. Базовые элементы интеллектуальных приложений 26
1.3. Что могут выиграть приложения от интеллектуальности? 29
1.3.1. Сайты социальных сетей 29
1.3.2. Гибридные веб-приложения (мэшапы) 31
1.3.3. Порталы 32
1.3.4. Вики-сайты 33
1.3.5. Сайты общего доступа к медиафайлам 34
1.3.6. Онлайн-игры 35
1.4. Как встроить интеллект в мое приложение? 36
1.4.1. Анализ функциональности и данных 36
1.4.2. Получение дополнительных данных из Интернета 37
1.5. Машинное обучение, интеллектуальный анализ данных и так далее 42
1.6. Восемь заблуждений насчет интеллектуальных приложений 44
1.6.1. Заблуждение 1: данные достоверны 45
1.6.2. Заблуждение 2: логический вывод осуществляется мгновенно 46
1.6.3. Заблуждение 3: размер данных не имеет значения 46
1.6.4. Заблуждение 4: масштабируемость решения - не проблема 46
1.6.5. Заблуждение 5: одна хорошая библиотека годится на все случаи 47
1.6.6. Заблуждение 6: время вычислений известно 47
1.6.7. Заблуждение 7: чем сложнее модель, тем лучше 47
1.6.8. Заблуждение 8: существуют модели без систематической ошибки 48
1.7. Заключение 48
1.8. Ссылки 49

Глава 2. Поиск 51
2.1. Поиск с применением библиотеки Lucene 52
2.1.1. Программный код библиотеки Lucene 54
2.1.2. Анализ основных этапов поиска 61
2.2. Зачем нужен поиск вне индексов? 65
2.3. Уточнение результатов поиска на основе анализа ссылок 67
2.3.1. Алгоритм PageRank 67
2.3.2. Вычисление вектора PageRank 69
2.3.3. alpha: эффект телепортации между веб-страницами 71
2.3.4. Основные сведения о степенном методе 73
2.3.5. Объединение оценок индексирования и оценок PageRank 78
2.4. Уточнение результатов поиска на основе анализа экранных данных 82
2.4.1. Первое знакомство с анализом экранных данных 82
2.4.2. Применение наивного байесовского классификатора 85
2.4.3. Объединение оценок индексирования Lucene, вектора PageRank и данных о переходах пользователя по ссылкам 90
2.5. Ранжирование документов Word, PDF и других документов без ссылок 94
2.5.1. Введение в алгоритм DocRank 95
2.5.2. Внутренние механизмы алгоритма DocRank 96
2.6. Проблемы масштабной реализации 102
2.7. Получили ли вы то, что искали? Точность и выборка 105
2.8. Заключение 108
2.9. Сделать 109
2.10. Ссылки 112

Глава 3. Выработка предложений и рекомендаций 113
3.1. Музыкальный интернет-магазин: основные понятия 114
3.1.1. Понятия расстояния и сходства 115
3.1.2. Подробнее о вычислении сходства 120
3.1.3. Какую из формул вычисления сходства предпочесть? 125
3.2. Как работают системы выработки рекомендаций 126
3.2.1. Рекомендации на основе сходства пользователей 127
3.2.2. Рекомендации на основе сходства предметов 138
3.2.3. Рекомендации на основе контента 142
3.3. Выработка рекомендаций по друзьям, статьям и новостным сообщениям 150
3.3.1. Знакомство с сайтом MyDiggSpace.com 151
3.3.2. Нахождение друзей 152
3.3.3. Внутренние механизмы класса DiggDelphi 155
3.4. Рекомендации фильмов на сайте, подобном сайту Netflix.com 161
3.4.1. Введение в наборы данных о кинофильмах и рекомендателях 161
3.4.2. Нормализация данных и коэффициенты корреляции 165
3.5. Масштабная реализация и вопросы оценки 171
3.6. Заключение 173
3.7. Сделать 174
3.8. Ссылки 177

Глава 4. Кластеризация: объединение в группы 179
4.1. Необходимость кластеризации 180
4.1.1. Группы пользователей на веб-сайте (конкретный случай) 181
4.1.2. Нахождение групп с помощью SQL-предложения order by 183
4.1.3. Нахождение групп путем сортировки массива 185
4.2. Обзор алгоритмов кластеризации 188
4.2.1. Классификация алгоритмов кластеризации по структуре кластеров 189
4.2.2. Классификация алгоритмов кластеризации по типу и структуре данных 190
4.2.3. Классификация алгоритмов кластеризации по размеру обрабатываемых данных 192
4.3. Алгоритмы связей 193
4.3.1. Дендрограмма: базовая структура данных кластера 193
4.3.2. Знакомство с алгоритмами связей 196
4.3.3. Алгоритм одной связи 198
4.3.4. Алгоритм средней связи 200
4.3.5. Алгоритм минимального остовного дерева 203
4.4. Алгоритм k-средних 206
4.4.1. Первое знакомство с алгоритмом k-средних 207
4.4.2. Внутренние механизмы работы алгоритма к-средних 208
4.5. Устойчивая кластеризация, использующая связи (ROCK) 211
4.5.1. Введение в алгоритм ROCK 212
4.5.2. Почему ROCK - это надежно? 213
4.6. DBSCAN 218
4.6.1. Первое знакомство с алгоритмами на основе плотности 218
4.6.2. Внутренние механизмы алгоритма DBSCAN 221
4.7. Вопросы кластеризации очень больших наборов данных 226
4.7.1. Вычислительная сложность 226
4.7.2. Большая размерность 228
4.8. Заключение 229
4.9. Сделать 231
4.10. Ссылки 233

Глава 5. Классификация: размещение по принадлежности 235
5.1. Необходимость классификации 237
5.2. Обзор классификаторов 241
5.2.1. Алгоритмы структурной классификации 243
5.2.2. Статистические алгоритмы классификации 245
5.2.3. Жизненный цикл классификатора 246
5.3. Автоматическая категоризация почтовых сообщений и фильтрация спама 248
5.3.1. Наивная байесовская классификация 250
5.3.2. Классификация по правилам 266
5.4. Обнаружение мошенничества с помощью нейронных сетей 280
5.4.1. Сценарий выявления мошенничества в транзакционных данных 281
5.4.2. Обзор нейронных сетей 283
5.4.3. Детектор мошенничества на основе нейронной сети в действии 285
5.4.4. Анатомия нейронной сети детектора мошенничества 291
5.4.5. Базовый класс для создания универсальных нейронных сетей 299
5.5. Можно ли доверять полученным результатам? 305
5.6. Классификация очень больших наборов данных 310
5.7. Заключение 313
5.8. Сделать 315
5.9. Ссылки 320

Глава 6. Объединение классификаторов 323
6.1. Кредитоспособность: анализ примера объединения классификаторов 325
6.1.1. Краткое описание данных 327
6.1.2. Создание искусственных данных для реальных задач 332
6.2. Оценка кредитоспособности с помощью единственного классификатора 337
6.2.1. Основы применения наивного байесовского классификатора 337
6.2.2. Основы применения дерева решений 340
6.2.3. Основы применения нейронных сетей 343
6.3. Сравнение классификаторов в применении к одним и тем же данным 346
6.3.1. Тест Макнемара 347
6.3.2. Тест на разность пропорций 350
6.3.3. Q-тест Кохрана и F-тест 352
6.4. Bagging - самонастраиваемое объединение 355
6.4.1. Bagging-классификатор в действии 357
6.4.2. Заглянем внутрь bagging-классификатора 359
6.4.3. Ансамбли классификаторов 362
6.5. Boosting - итеративный подход к улучшению 365
6.5.1. Boosting-классификатор в действии 366
6.5.2. Заглянем внутрь boosting-классификатора 368
6.6. Заключение 373
6.7. Сделать 375
6.8. Ссылки 380

Глава 7. Все вместе: интеллектуальный новостной портал 381
7.1. Обзор функциональности 383
7.2. Получение и обработка контента 385
7.2.1. На старт, внимание, краулинг! 385
7.2.2. Обзор предварительных условий поиска 386
7.2.3. Используемый по умолчанию набор извлеченных и обработанных новостных сообщений 389
7.3. Поиск новостных сообщений 391
7.4. Распределение по новостным категориям 394
7.4.1. Порядок имеет значение 395
7.4.2. Классификация с помощью класса NewsProcessor 400
7.4.3. Знакомьтесь: классификатор 402
7.4.4. Стратегия классификации: выход за пределы низкоуровневой категоризации 405
7.5. Формирование групп новостей с помощью класса NewsProcessor 408
7.5.1. Кластеризация обычных новостных сообщений 409
7.5.2. Кластеризация новостных сообщений в категории новостей 414
7.6. Динамический контент на базе пользовательских оценок 418
7.7. Заключение 421
7.8. Сделать 422
7.9. Ссылки 428

Приложение А. Введение в ВеаnShell 429
А.1. Что такое ВеаnShell 429
А.2. Зачем нужен язык ВеаnShell? 430
А.З. Выполнение ВеаnShell 430
A.4. Ссылки 431

Приложение В. Краулинг 432
B.1. Обзор компонентов поискового робота 432
В. 1.1. Этапы краулинга 433
В. 1.2. Наш простой поисковый робот 434
В.1.3. Поисковые роботы с открытым исходным кодом 435
B.2. Ссылки 436

Приложение С. Памятка по математике 437
C.1. Векторы и матрицы 437
С.2. Измерение расстояний 438
С.З. Развитые матричные методы 440
С.4. Ссылки 441

Приложение D. Обработка естественных языков 442
Приложение Е. Нейронные сети 445
Алфавитный указатель 448

 

Скачать книгу бесплатно4,83 мб. djvu