Анализ данных на языке Python [2021]
Высшая инженерная школа СПбПУ (Санкт-Петербургский Политехнический Университет)
Светлана Городецкая, Анна Заграновская, Дмитрий Федоров
Программа переподготовки предназначена для тех, кто хочет начать работу в сфере анализа больших данных или машинного обучения на позициях аналитика, Data Scientist или Data Engineer.
Наука о данных, или Data science, сегодня является одним из быстро растущих IT-направлений, а Python — это универсальный язык, позволяющий получать данные из произвольных источников и баз данных, обрабатывать их, строить графики и диаграммы.
В результате освоения программы, обучающиеся будут уметь:
- обрабатывать открытые данные с помощью стандартных модулей Python;
- работать с модулем requests;
- писать запросы к БД;
- использовать агрегатных и оконных функций;
- модифицировать данные в БД;
- выполнять операции над векторами и матрицами с помощью модуля NumPy;
- обрабатывать табличные данные с помощью pandas;
- выбирать подмножество из таблицы;
- визуализировать данные;
- осуществлять сбор и подготовку данных с помощью языка Python;
- использовать методы анализа и обработки данных;
- строить модели машинного обучения;
- использовать методы обработки данных для анализа и прогнозирования временных рядов;
- строить модели одномерных временных рядов.
Тема 1. Введение в программирование на языке Python в среде Jupyter Notebook
1.1 Отличия языков программирования.
1.2 Функции в Python.
1.3 Создание функций.
1.2 Функции в Python.
1.3 Создание функций.
Тема 2. Логические операторы и операции над строками.
2.1 Работа с текстом.
2.2 Строковый тип данных.
2.3 Функции для работы со строками.
2.4 Преобразование типов.
2.5 Срезы.
Тема 3. Модули.2.2 Строковый тип данных.
2.3 Функции для работы со строками.
2.4 Преобразование типов.
2.5 Срезы.
3.1 Создание собственных модулей.
3.2 Загрузка модулей и вызов функций, содержащихся в модуле.
3.3 Создание собственных модулей.
3.4 Отличие запуска модуля от импортирования.
3.5 Автоматизированное тестирование функций.
Тема 4. Методы.3.2 Загрузка модулей и вызов функций, содержащихся в модуле.
3.3 Создание собственных модулей.
3.4 Отличие запуска модуля от импортирования.
3.5 Автоматизированное тестирование функций.
4.1 Специальные методы и отличие от функций.
4.2 Строковые методы в языке Python.
4.3 Отличие вызова метода от вызова функции из модуля.
4.4 Специальные строковые методы.
Практические занятия
Создание модуля для вычисления статистики
Тема 5. Списки и преобразование типов.4.2 Строковые методы в языке Python.
4.3 Отличие вызова метода от вызова функции из модуля.
4.4 Специальные строковые методы.
Практические занятия
Создание модуля для вычисления статистики
5.1 Синтаксические отличия в языках высокого уровня.
5.2 Правила чтения оператора присваивания.
5.2 Правила чтения оператора присваивания.
Практические занятия
Формирование выражений с использованием математических, логических, строковых операций, приоритет операций.
Тема 6. Циклы и обработка входных данных.Формирование выражений с использованием математических, логических, строковых операций, приоритет операций.
6.1 Инструкция цикла for.
6.2 Обработка списков и строк.
6.3 Использование функции range.
6.4 Подходы к созданию списка: генераторы списков.
6.5 Функции высшего порядка.
6.6 Инструкция цикла while.
6.7 Бесконечный цикл.
6.8 Анонимные функции.
6.9 Вложенные циклы.
Практические занятия
Обработка списка и задачи на преобразование типов данных
Тема 7. Множества, кортежи, словари.6.2 Обработка списков и строк.
6.3 Использование функции range.
6.4 Подходы к созданию списка: генераторы списков.
6.5 Функции высшего порядка.
6.6 Инструкция цикла while.
6.7 Бесконечный цикл.
6.8 Анонимные функции.
6.9 Вложенные циклы.
Практические занятия
Обработка списка и задачи на преобразование типов данных
7.1 Множества в Python.
7.2 Операции над множествами, основные методы.
7.3 Создание множеств.
7.4 Кортежи в Python.
7.5 Операции над кортежами.
7.6 Словари.
7.7 Методы для работы со словарями.
7.8 Реализация подсчета слов и символов с помощью словарей.
7.9 Переменное число параметров.
Практические занятия
Обработка словарей и кортежей.
Тема 8. Обработка исключений и работа с файлами.7.2 Операции над множествами, основные методы.
7.3 Создание множеств.
7.4 Кортежи в Python.
7.5 Операции над кортежами.
7.6 Словари.
7.7 Методы для работы со словарями.
7.8 Реализация подсчета слов и символов с помощью словарей.
7.9 Переменное число параметров.
Практические занятия
Обработка словарей и кортежей.
8.1 Исключения в Python.
8.2 Обработка исключений.
8.3 Использование исключений для обработки ошибок.
8.4 Чтение из файла.
8.5 Обработка ошибок при работе с файлами.
8.6 Менеджер контекста.
8.7 Методы для чтения, записи и добавления текста.
Практические занятия
Обработка текстовых файлов - копирование, поиск фразы.
Тема 9. Основы объектно-ориентированного программирования.8.2 Обработка исключений.
8.3 Использование исключений для обработки ошибок.
8.4 Чтение из файла.
8.5 Обработка ошибок при работе с файлами.
8.6 Менеджер контекста.
8.7 Методы для чтения, записи и добавления текста.
Практические занятия
Обработка текстовых файлов - копирование, поиск фразы.
9.1 Понятие объекта.
9.2 Создание класса.
9.3 Объектно-ориентированный подход к программированию.
9.4 Создание методов класса.
9.5 Конструктор объекта.
9.6 Атрибуты объекта и класса.
9.7 Наследование классов.
Практические занятия
Разработка объектно-ориентированного приложения.
Тема 10. Открытые данные.9.2 Создание класса.
9.3 Объектно-ориентированный подход к программированию.
9.4 Создание методов класса.
9.5 Конструктор объекта.
9.6 Атрибуты объекта и класса.
9.7 Наследование классов.
Практические занятия
Разработка объектно-ориентированного приложения.
10.1 Работа с API.
10.2 Байтовый тип данных.
10.3 Кодировки.
10.4 Доступ к файлам, находящимся в сети Интернет.
10.5 Доступ к данным через API.
Практические занятия
Обработка данных, полученных с удаленного сайта.
Тема 11. Промежуточная аттестация10.2 Байтовый тип данных.
10.3 Кодировки.
10.4 Доступ к файлам, находящимся в сети Интернет.
10.5 Доступ к данным через API.
Практические занятия
Обработка данных, полученных с удаленного сайта.
Модуль 2 - PDA-DB. Основы баз данных
Тема 1. Введение в базы данных и СУБД.
1.1 Введение в базы данных и СУБД.
Работа с РБД.
Подключение.
Язык запросов SQL
Тема 2. Работа с объектами БД.- Концепция баз данных и СУБД.
- Принципы организации базы данных.
- Основные функции СУБД.
- Классификация баз данных.
- Преимущества и недостатки БД.
- Основные операции с данными (CRUD-операции).
- Основные термины и определения.
- Требования к модели РБД.
- Нормализация.
- Работа с РБД.
- Подключение к БД.
- Язык запросов SQL.
- Базовый синтаксис SQL.
Работа с РБД.
Подключение.
Язык запросов SQL
2.1 Управление таблицами БД.
Создание таблиц и ограничений целостности
Тема 3. Чтение данных из БД- Операторы DDL.
- Создание таблиц БД.
- Определение полей.
- Типы данных.
- Изменение таблиц.
- Удаление таблиц.
- Типы ограничений целостности и их назначение.
- Создание ограничений целостности.
Создание таблиц и ограничений целостности
3.1 Написание простых SELECT-запросов.
Чтение данных из БД
Тема 4. Модификация данных. Транзакции- Простые запросы.
- Запросы с фильтрацией и сортировкой.
- Типы объединений: INNER JOIN, OUTER JOIN, CROSS JOIN.
- Объединение таблицы с самой собой.
- Объединение результирующих наборов записей с помощью SET-операторов (Объединение, пересечение, вычитание).
- Группировка и агрегирование данных.
- Фильтрация групп на основе итоговых данных.
- Использование наборов группирования (GROUPING SETS, CUBE и ROLLUP)
- Анализ данных БД с помощью аналитических (оконных) функций
Чтение данных из БД
4.1 Модификация данных
Модификация данных.
Транзакции
Тема 5. Итоговая аттестация.- Добавление данных в БД.
- Изменение данных.
- Удаление данных
- Определение транзакций.
- Типы транзакций.
- Уровни изоляции транзакций.
Модификация данных.
Транзакции
Модуль 3 - PDA-110. Введение в анализ данных на языке Python
Тема 1. Консолидация данных
1.1 Введение в ETL.
1.2 Data Engineer.
1.3 Извлечение данных в ETL
1.4 Очистка данных в ETL
1.5 Преобразование данных в ETL
1.6 Загрузка данных в хранилище
1.7 Загрузка данных из локальных источников
1.8 Обогащение данных
Практические занятия
Работа с векторами и матрицами в NumPy.
Агрегирование данных массива.
Тема 2. Трансформация данных1.2 Data Engineer.
1.3 Извлечение данных в ETL
1.4 Очистка данных в ETL
1.5 Преобразование данных в ETL
1.6 Загрузка данных в хранилище
1.7 Загрузка данных из локальных источников
1.8 Обогащение данных
Практические занятия
Работа с векторами и матрицами в NumPy.
Агрегирование данных массива.
2.1 Введение в трансформацию данных
2.2 Трансформация упорядоченных данных
2.3 Группировка данных
2.4 Слияние данных
2.5 Квантование
2.6 Нормализация и кодирование данных
Практические занятия
Работа с таблицами pandas.
Агрегирование данных из нескольких таблиц.
Тема 3. Визуализация данных2.2 Трансформация упорядоченных данных
2.3 Группировка данных
2.4 Слияние данных
2.5 Квантование
2.6 Нормализация и кодирование данных
Практические занятия
Работа с таблицами pandas.
Агрегирование данных из нескольких таблиц.
3.1 Подготовка данных.
3.2 Методы и инструменты визуализации.
3.3 Обзор возможностей Python для визуализации.
Практические занятия
Построение графиков с помощью внешних модулей.
Тема 4. Очистка и предобработка данных3.2 Методы и инструменты визуализации.
3.3 Обзор возможностей Python для визуализации.
Практические занятия
Построение графиков с помощью внешних модулей.
4.1 Оценка качества данных
4.2 Технологии и методы оценки качества данных
4.3 Очистка и предобработка
4.4 Фильтрация данных
4.5 Обработка дубликатов и противоречий
4.6 Выявление аномальных значений
4.7 Восстановление пропущенных значений
4.8 Введение с сокращение размерности
4.9 Сокращение числа признаков
Практические занятия
Очистка данных с помощью возможностей pandas.
Тема 5. Введение в машинное обучение на языке Python4.2 Технологии и методы оценки качества данных
4.3 Очистка и предобработка
4.4 Фильтрация данных
4.5 Обработка дубликатов и противоречий
4.6 Выявление аномальных значений
4.7 Восстановление пропущенных значений
4.8 Введение с сокращение размерности
4.9 Сокращение числа признаков
Практические занятия
Очистка данных с помощью возможностей pandas.
5.1 Знакомство с библиотекой Scikit-learn.
5.2 Представление данных в Scikit-learn.
5.3 Проверка модели.
5.4 Классификация.
5.5 Регрессия.
Тема 6. Аттестация5.2 Представление данных в Scikit-learn.
5.3 Проверка модели.
5.4 Классификация.
5.5 Регрессия.
Модуль 4 - PDA-120. Программирование на Python для анализа данных
Тема 1. Введение в анализ данных. Операции над векторами и матрицами в NumPy
1.1 Введение в анализ данных. Возможности Jupyter Lab
Работа с векторами и матрицами в NumPy.
Агрегирование данных массива.
Тема 2. Операции над таблицами в pandas- Введение в анализ данных.
- Выполнение внешнего кода %run.
- Длительность выполнения кода %timeit.
- Справка по магическим функциям.
- Использование системного командного процессора
- Операции над векторами и матрицами в NumPy.
- Сравнение list и ndarray.
- Создание ndarray из списка.
- Атрибуты массивов NumPy.
- Индексация массива.
- Срезы массива.
- Изменение формы массивов.
- Медлительность циклов Python.
- Универсальные функции NumPy.
- Агрегирование.
- Суммирование значений.
- Минимум и максимум.
- Транслирование.
- Сравнение, маски, булева логика.
- Прихотливая индексация. Сортировка массивов
Работа с векторами и матрицами в NumPy.
Агрегирование данных массива.
2.1 Общее знакомство с pandas, обзор возможностей
Построение графиков.
Работа с текстовыми данными.
Работа с объектами Series и DataFrame.
Тема 3. Сбор и подготовка данных с помощью языка Python- Обзор типов данных pandas.
- Выбор подмножества из таблицы.
- Построение графиков.
- Создание новых столбцов.
- Создание сводной статистики.
- Работа с текстовыми данными.
- Работа с объектами Series и DataFrame.
- Использование индексных объектов.
- Переиндексация.
- Удаление элементов из оси.
- Доступ по индексу, выборка, фильтрация.
- Сортировка и ранжирование
Построение графиков.
Работа с текстовыми данными.
Работа с объектами Series и DataFrame.
3.1 Работа с файлами разных форматов
Работа с файлами разных форматов.
Очистка и подготовка данных.
Тема 4. Анализ данных с помощью возможностей языка Python- Чтение и запись CSV, XML, JSON, Excel, HTML
- Обработка отсутствующих данных.
- Фильтрация отсутствующих данных.
- Восполнение отсутствующих данных.
- Устранение дубликатов.
- Преобразование данных.
- Замена значений.
- Манипуляции со строками
- Обзор возможностей модуля requests.
- Обращение к внешним API (погода, курс валют).
- Работа с реляционными БД (sqlite3), выполнение SQL-запросов.
- SQL-запросы из pandas
- Предварительная обработка текста.
- Лексемизация слов.
- Нормализация слов
Работа с файлами разных форматов.
Очистка и подготовка данных.
4.1 Операции над таблицами в pandas
Визуализация данных.
Анализ данных из социальной сети ВКонтакте.
5. Итоговая аттестация.- Иерархическое индексирование.
- Сводная статистика по уровню.
- Комбинирование и слияние наборов данных.
- Изменение формы и поворот.
- Агрегирование данных и групповые операции.
- Метод apply.
- Сводные таблицы
- Matplotlib: рисунки, подграфики, цвета, маркеры, аннотации.
- Seaborn/plotly: линейные графики, столбчатые диаграммы, гистограммы
- Типы данных, относящиеся к дате и времени.
- Диапазоны дат, сдвиг.
- Скользящие оконные функции
- Анализ данных из открытых источников
Визуализация данных.
Анализ данных из социальной сети ВКонтакте.
Модуль 5 - PDA-200. Методы машинного обучения в прогнозировании данных
Тема 1. Введение в анализ и прогнозирование данных
1.1 Первичный анализ данных с использованием описательных статистик и визуализации
1.2 Проверка статистических гипотез
1.3 Масштабирование, отбор, понижение размерности признаков
1.4 Оценка точности моделей
Практические занятия
Первичный анализ данных.
Проверка различных статистических гипотез.
Масштабирование, отбор и понижение размерности признаков.
Оценка точности построенных моделей.
Тема 2. Линейные модели для классификации1.2 Проверка статистических гипотез
1.3 Масштабирование, отбор, понижение размерности признаков
1.4 Оценка точности моделей
Практические занятия
Первичный анализ данных.
Проверка различных статистических гипотез.
Масштабирование, отбор и понижение размерности признаков.
Оценка точности построенных моделей.
2.1 Логистическая регрессия
2.2 Линейный метод опорных векторов
2.3 Дискриминантный анализ
Практические занятия
Построение линейных модели для классификации.
Тема 3. Нелинейные модели для классификации2.2 Линейный метод опорных векторов
2.3 Дискриминантный анализ
Практические занятия
Построение линейных модели для классификации.
3.1 Метод ближайших соседей
3.2 Наивный байесовский классификатор
3.3 Деревья решений для классификации
3.4 Нейронные сети
Практические занятия
Построение нелинейных моделей для классификации.
Тема 4. Линейные модели для регрессии3.2 Наивный байесовский классификатор
3.3 Деревья решений для классификации
3.4 Нейронные сети
Практические занятия
Построение нелинейных моделей для классификации.
4.1 Парная регрессия
4.2 Множественная регрессия
4.3 Полиномиальная регрессия
4.4 Регрессия с фиктивными переменными
4.5 Гребневая регрессия
4.6 Лассо регрессия
4.7 Эластичная сеть
4.8 Пуассоновская регрессия
Практические занятия
Построение линейной модели для регрессии.
Тема 5. Нелинейные модели для регрессии4.2 Множественная регрессия
4.3 Полиномиальная регрессия
4.4 Регрессия с фиктивными переменными
4.5 Гребневая регрессия
4.6 Лассо регрессия
4.7 Эластичная сеть
4.8 Пуассоновская регрессия
Практические занятия
Построение линейной модели для регрессии.
5.1 Метод ближайших соседей
5.2 Деревья решений для регрессии
5.3 Байесовская регрессия
5.4 Ядерный метод опорных векторов
5.5 Нейронные сети
Практические занятия
Построение нелинейные модели для регрессии
Тема 6. Ансамбли и настройка параметров5.2 Деревья решений для регрессии
5.3 Байесовская регрессия
5.4 Ядерный метод опорных векторов
5.5 Нейронные сети
Практические занятия
Построение нелинейные модели для регрессии
6.1 Проект построения модели машинного обучения для классификации
6.2 Проект построения модели машинного обучения для регрессии
Практические занятия
Gостроение ансамблевых моделей, настройка параметров лучшего алгоритма.
Тема 7. Аттестация6.2 Проект построения модели машинного обучения для регрессии
Практические занятия
Gостроение ансамблевых моделей, настройка параметров лучшего алгоритма.
Модуль 6 - PDA-210. Прогнозирование временных рядов
Тема 1. Введение в анализ и прогнозирование временных рядов
1.1 Понятие и компоненты временного ряда
1.2 Анализ временных рядов
1.3 Задача прогнозирования временных рядов
1.4 Первичный анализ данных с использованием описательных статистик и визуализации
1.5 Передискретизация и интерполяция
1.6 Преобразование данных
1.7 Сглаживание скользящей средней
Практические занятия
Проведение первичного анализа, передискретизации, интерполяции, преобразования данных,
Проведение сглаживания временных рядов с помощью скользящих средних.
Тема 2. Структура временного ряда1.2 Анализ временных рядов
1.3 Задача прогнозирования временных рядов
1.4 Первичный анализ данных с использованием описательных статистик и визуализации
1.5 Передискретизация и интерполяция
1.6 Преобразование данных
1.7 Сглаживание скользящей средней
Практические занятия
Проведение первичного анализа, передискретизации, интерполяции, преобразования данных,
Проведение сглаживания временных рядов с помощью скользящих средних.
2.1 Белый шум
2.2 Случайное блуждание
2.3 Разложение временного ряда на составляющие компоненты
2.4 Выявление и моделирование тренда
2.5 Выявление и моделирование сезонности
2.6 Выявление и проверка стационарности временного ряда
Практические занятия
Проверка временных рядов и остатков при построении моделей скользящих средних белым шумом.
Проверка данных на случайное блуждание.
Разложение временных рядов на составляющие компоненты.
Удаление их данных тренда с использованием методов интегрирования и моделирования кривых роста.
Удаление из данных сезонной составляющей с использованием разностного метода и моделирование сезонности с помощью полиномов.
Проверка временных рядов на стационарность с помощью разных методов.
Тема 3. Оценка качества моделей2.2 Случайное блуждание
2.3 Разложение временного ряда на составляющие компоненты
2.4 Выявление и моделирование тренда
2.5 Выявление и моделирование сезонности
2.6 Выявление и проверка стационарности временного ряда
Практические занятия
Проверка временных рядов и остатков при построении моделей скользящих средних белым шумом.
Проверка данных на случайное блуждание.
Разложение временных рядов на составляющие компоненты.
Удаление их данных тренда с использованием методов интегрирования и моделирования кривых роста.
Удаление из данных сезонной составляющей с использованием разностного метода и моделирование сезонности с помощью полиномов.
Проверка временных рядов на стационарность с помощью разных методов.
3.1 Тестовая и обучающая выборка
3.2 Оценка точности моделей
3.3 Базовый уровень прогноза
3.4 Анализ остатков
3.5 Формы представления задачи прогнозирования временных рядов
Практические занятия
Разбиение временных рядов на обучающую и тестовую выборки с помощью разных методов.
Оценка точности наивного прогноза (базовый уровень прогноза), анализ остатков с помощью разных методов.
Посмотрите на данные них иначе: измените их временную разбивку, сформулируйте задачу прогнозирования временных рядов в терминах задачи регрессии или классификации.
Тема 4. Модели одномерных временных рядов3.2 Оценка точности моделей
3.3 Базовый уровень прогноза
3.4 Анализ остатков
3.5 Формы представления задачи прогнозирования временных рядов
Практические занятия
Разбиение временных рядов на обучающую и тестовую выборки с помощью разных методов.
Оценка точности наивного прогноза (базовый уровень прогноза), анализ остатков с помощью разных методов.
Посмотрите на данные них иначе: измените их временную разбивку, сформулируйте задачу прогнозирования временных рядов в терминах задачи регрессии или классификации.
4.1 Прогнозирование с помощью кривых роста
4.2 Тренд-сезонная модель
4.3 Тренд-сезонная модель с фиктивными переменными
4.4 Простое экспоненциальное сглаживание (модель Брауна)
4.5 Модель Хольта с линейным и экспоненциальным трендом
4.6 Модель Хольта-Уинтерса и модель Тейла-Вейджа
4.7 Модель стохастической аппроксимации
4.8 Метод Бокса-Дженкинса
4.9 Авторегрессионные модели
4.10 Модели скользящих средних
4.11 Модель ARIMA
4.12 Автокорреляция и частичная автокорреляция
4.13 Поиск по сетке гиперпараметров модели ARIMA
4.14 Прогнозные интервалы
4.15 Проект построения моделей для прогнозирования временных рядов
Практические занятия
Построение разных моделей, определение лучшей модели, повышение качества лучшей модели изменяя гиперпараметры, построение прогнозных интервалов.
Тема 5. Аттестация4.2 Тренд-сезонная модель
4.3 Тренд-сезонная модель с фиктивными переменными
4.4 Простое экспоненциальное сглаживание (модель Брауна)
4.5 Модель Хольта с линейным и экспоненциальным трендом
4.6 Модель Хольта-Уинтерса и модель Тейла-Вейджа
4.7 Модель стохастической аппроксимации
4.8 Метод Бокса-Дженкинса
4.9 Авторегрессионные модели
4.10 Модели скользящих средних
4.11 Модель ARIMA
4.12 Автокорреляция и частичная автокорреляция
4.13 Поиск по сетке гиперпараметров модели ARIMA
4.14 Прогнозные интервалы
4.15 Проект построения моделей для прогнозирования временных рядов
Практические занятия
Построение разных моделей, определение лучшей модели, повышение качества лучшей модели изменяя гиперпараметры, построение прогнозных интервалов.
https://www.avalon.ru/Retraining/Programs/Python-Data-Analysis/