Зарегистрироваться
Восстановить пароль
FAQ по входу

Имран Ахмад. 40 алгоритмов, которые должен знать каждый программист на Python

  • Файл формата pdf
  • размером 12,42 МБ
Имран Ахмад. 40 алгоритмов, которые должен знать каждый программист на Python
Пер. с англ. Р. Чикин. — СПб.: Питер, 2023. — 368 с.: ил. — (Библиотека программиста). — ISBN 978-5-4461-1908-0.
Понимание работы алгоритмов и умение применять их для решения прикладных задач – must-have для любого программиста или разработчика. Эта книга поможет вам не только развить навыки использования алгоритмов, но и разобраться в принципах их функционирования, в их логике и математике.
Вы начнете с введения в алгоритмы, от поиска и сортировки перейдете к линейному программированию, ранжированию страниц и графам и даже поработаете с алгоритмами машинного обучения. Теории не бывает без практики, поэтому вы займетесь прогнозами погоды, кластеризацией твитов, механизмами рекомендаций фильмов. И, наконец, освоите параллельную обработку, что даст вам возможность решать задачи, требующие большого объема вычислений.
Дойдя до конца, вы превратитесь в эксперта по решению реальных вычислительных задач с применением широкого спектра разнообразных алгоритмов.
Об авторе
Предисловие
Для кого эта книга
О чем эта книга
Что вам потребуется при чтении этой книги
Условные обозначения
От издательства
Основы и базовые алгоритмы
Обзор алгоритмов
Что такое алгоритм
Этапы алгоритма
Определение логики алгоритма
Псевдокод
Использование сниппетов
Создание плана выполнения
Введение в библиотеки Python
Библиотеки Python
Реализация Python с помощью Jupyter Notebook
Методы разработки алгоритмов
Параметры данных
Параметры вычислений
Анализ производительности
Анализ пространственной сложности
Анализ временной сложности
Оценка эффективности
Выбор алгоритма
«О-большое
Проверка алгоритма
Точные, приближенные и рандомизированные алгоритмы
Объяснимость алгоритма
Резюме
Структуры данных, используемые в алгоритмах
Структуры данных в Python
Список
Кортеж
Словарь
Множество
DataFrame
Матрица
Абстрактные типы данных
Вектор
Стек
Очередь
Базовый принцип использования стеков и очередей
Дерево
Резюме
Алгоритмы сортировки и поиска
Алгоритмы сортировки
Обмен значений переменных в Python
Сортировка пузырьком
Сортировка вставками
Сортировка слиянием
Сортировка Шелла
Сортировка выбором
Алгоритмы поиска
Линейный поиск
Бинарный поиск
Интерполяционный поиск
Практическое применение
Резюме
Разработка алгоритмов
Знакомство с основными концепциями разработки алгоритма
Вопрос 1. Даст ли разработанный алгоритм ожидаемый результат
Вопрос 2. Является ли данный алгоритм оптимальным способом получения результата
Вопрос 3. Как алгоритм будет работать с большими наборами данных
Понимание алгоритмических стратегий
Стратегия «разделяй и властвуй
Стратегия динамического программирования
Жадные алгоритмы
Практическое применение — решение задачи коммивояжера
Использование стратегии полного перебора
Использование жадного алгоритма
Алгоритм PageRank
Постановка задачи
Реализация алгоритма PageRank
Знакомство с линейным программированием
Формулировка задачи линейного программирования
Практическое применение — планирование производства с помощью линейного программирования
Резюме
Графовые алгоритмы
Представление графов
Типы графов
Особые типы ребер
Эгоцентрические сети
Анализ социальных сетей
Введение в теорию сетевого анализа
Кратчайший путь
Создание окрестностей
Показатели центральности
Вычисление показателей центральности с помощью Python
Понятие обхода графа
BFS — поиск в ширину
DFS — поиск в глубину
Практический пример — выявление мошенничества
Простой анализ мошенничества
Анализ мошенничества методом сторожевой башни
Резюме
Алгоритмы машинного обучения
Алгоритмы машинного обучения без учителя
Обучение без учителя
Обучение без учителя в жизненном цикле майнинга данных
Современные тенденции исследований в области обучения без учителя
Практические примеры
Алгоритмы кластеризации
Количественная оценка сходства
Иерархическая кластеризация
Оценка кластеров
Применение кластеризации
Снижение размерности
Метод главных компонент (PCA)
Ограничения PCA
Поиск ассоциативных правил
Примеры использования
Анализ рыночной корзины
Ассоциативные правила
Оценка качества правила
Алгоритмы анализа ассоциаций
Практический пример — объединение похожих твитов в кластеры
Тематическое моделирование
Кластеризация
Алгоритмы обнаружения выбросов (аномалий)
Использование кластеризации
Обнаружение аномалий на основе плотности
Метод опорных векторов
Резюме
Традиционные алгоритмы обучения с учителем
Машинное обучение с учителем
Терминология машинного обучения с учителем
Благоприятные условия
Различие между классификаторами и регрессорами
Алгоритмы классификации
Задача классификации
Оценка классификаторов
Этапы классификации
Алгоритм дерева решений
Ансамблевые методы
Логистическая регрессия
Метод опорных векторов (SVM)
Наивный байесовский алгоритм
Среди алгоритмов классификации победителем становится
Алгоритмы регрессии
Задача регрессии
Линейная регрессия
Алгоритм дерева регрессии
Алгоритм градиентного бустинга для регрессии
Среди алгоритмов регрессии победителем становится
Практический пример — как предсказать погоду
Резюме
Алгоритмы нейронных сетей
Введение в ИНС
Эволюция ИНС
Обучение нейронной сети
Анатомия нейронной сети
Градиентный спуск
Функции активации
Инструменты и фреймворки
Keras
Знакомство с TensorFlow
Типы нейронных сетей
Перенос обучения
Практический пример — использование глубокого обучения для выявления мошенничества
Методология
Резюме
Алгоритмы обработки естественного языка
Знакомство с NLP
Терминология NLP
Библиотека NLTK
Мешок слов (BoW)
Эмбеддинги слов
Окружение слова
Свойства эмбеддингов слов
Рекуррентные нейросети в NLP
Использование NLP для анализа эмоциональной окраски текста
Практический пример — анализ тональности в отзывах на фильмы
Резюме
Рекомендательные системы
Введение в рекомендательные системы
Типы рекомендательных систем
Рекомендательные системы на основе контента
Рекомендательные системы на основе коллаборативной фильтрации
Гибридные рекомендательные системы
Ограничения рекомендательных систем
Проблема холодного старта
Требования к метаданным
Проблема разреженности данных
Предвзятость из-за социального влияния
Ограниченные данные
Области практического применения
Практический пример — создание рекомендательной системы
Резюме
Расширенные возможности
Алгоритмы обработки данных
Знакомство с алгоритмами обработки данных
Классификация данных
Алгоритмы хранения данных
Стратегии хранения данных
Алгоритмы потоковой передачи данных
Применение потоковой передачи
Алгоритмы сжатия данных
Алгоритмы сжатия без потерь
Практический пример — анализ тональности твитов в режиме
реального времени
Резюме
Криптография
Введение в криптографию
Понимание важности самого слабого звена
Основная терминология
Требования безопасности
Базовое устройство шифров
Типы криптографических методов
Криптографические хеш-функции
Симметричное шифрование
Асимметричное шифрование
Практический пример — проблемы безопасности при развертывании модели МО
Атака посредника (MITM)
Избежание маскарадинга
Шифрование данных и моделей
Резюме
Крупномасштабные алгоритмы
Введение в крупномасштабные алгоритмы
Определение эффективного крупномасштабного алгоритма
Терминология
Разработка параллельных алгоритмов
Закон Амдала
Гранулярность задачи
Балансировка нагрузки
Проблема расположения
Запуск параллельной обработки на Python
Разработка стратегии мультипроцессорной обработки
Введение в CUDA
Кластерные вычисления
Гибридная стратегия
Резюме
Практические рекомендации
Введение в практические рекомендации
Печальная история ИИ-бота в Твиттере
Объяснимость алгоритма
Алгоритмы машинного обучения и объяснимость
Этика и алгоритмы
Проблемы обучающихся алгоритмов
Понимание этических аспектов
Снижение предвзятости в моделях
Решение NP-трудных задач
Упрощение задачи
Адаптация известного решения аналогичной задачи
Вероятностный метод
Когда следует использовать алгоритмы
Практический пример — события типа «черный лебедь
Резюме
  • Чтобы скачать этот файл зарегистрируйтесь и/или войдите на сайт используя форму сверху.
  • Регистрация