Анализ данных в Python
1. Основы языка программирования Python
Установка Python. Знакомство с языком программирования Python. Работа с типами данных. Пакеты и библиотеки. Синтаксис языка. Функции. Классы и объекты. Написание первой программы.
2. Базовые библиотеки языка Python для анализа данных
Модуль NumPy. Основы работы с многомерными массивами и матрицами, изучение математических функций для операций с этими массивами (начиная с базовых функций и заканчивая линейной алгеброй). Модуль Pandas. Основы работы с табличными данными в формате .csv и .xlsx, структурами данных Series и DataFrame. Основные функции и методы работы с DataFrame и Series. В рамках темы предусмотрены соревнования на платформе Яндекс. Контест для закрепления знаний и тренировки.
3. Элементы теории вероятности и математической статистики
Случайное событие. Вероятность. Распределения вероятностей. Математическое ожидание. Дисперсия. Корреляция. Распределения. Точечные оценки. Ошибки первого и второго рода. Доверительные интервалы. Статистические гипотезы. Условная вероятность. Независимые события. Формула Байеса. Доверительный интервал. Основные методы библиотеки SciPy.
4. Визуализация данных в Python
Модули Matplolib и Seaborn. Изучение основных видов двумерной и трехмерной визуализации и основных видов графики, основы EDA (exploratory data analysis).
5. Основы предварительной обработки данных
Работа с пропущенными значениями, стратегии обработки пропусков. Кодирование категориальных признаков. Масштабирование признаков (Нормализация и стандартизация данных) и его влияние на модели. Обработка выбросов. Преобразование данных для улучшения их структуры: логарифмическое, степенное преобразование. Выбор и создание новых признаков, их влияние на качество модели. Feature engineering.
Основы машинного обучения
1. Основные парадигмы машинного обучения
История становления и развития искусственного интеллекта и машинного обучения. Виды машинного обучения (с учителем, без учителя, обучение с подкреплением) и основные типы задач машинного обучения (классификация, регрессия, кластеризация). Примеры прикладных задач.
2. Обучение с учителем: основные принципы
Библиотека scikit-learn, основные концепции и компоненты, создание и обучение моделей, выбор и подготовка данных, разбиение данных на обучающую и тестовую выборки (отложенная выборка и кросс-валидация). Примеры прикладных задач.
3. Регрессионные модели
Примеры регрессионных моделей. Постановка задачи обучения регрессионной модели. Математические основы задач регресии. Библиотека scikit-learn. Базовые модели для задач регрессии (Linear Regression, Ridge, Lasso) Оценка моделей, метрики оценки качества (MSE, MAE, MAPE, R2.)
4. Задачи классификации
Постановка задачи классификации. Бинарная и многоклассовая классификация. Математические основы задач классификации. Библиотека scikit-learn. Базовая модель для задачи бинарной классификации (логистическая регрессия): преимущества и недостатки. Модели для многоклассовой классификации (Метод K-ближайших соседей (K-Nearest Neighbour)). Оценка точности классификатора. Матрица ошибок, метрики оценки качества (Accuracy, Precision, Recall, ROC AUC и PR AUC). Балансировка классов. Основные методы балансировки классов в несбалансированной выборке. Важность балансировки, изучение инструментов и алгоритмов библиотеки imblearn для балансировки классов.
Машинное обучение
1. Машинное обучение с учителем.
Продолжение изучения алгоритмов машинного обучения с учителем и их математические основы (деревья решений, метод опорных векторов). Ансамблевые методы. Подходы к обучению ансамблей: бэггинг, бустинг, стеккинг. Бутстреппинг выборки. Бэггинг деревьев решений.
2. Машинное обучение без учителя
Примеры практических задач. Постановка задачи сокращения размерности данных. Подходы к сокращению размерности. Метод главных компонентов. Кластерный анализ данных. Математические основы кластерного анализа. Виды кластерного анализа. Общая схема решения задачи кластеризации. Метод K-средних, иерархическая кластеризация, алгоритм DBSCAN.
Нейронные сети
1. Основы нейронных сетей
Математические основы глубокого обучения. Градиентный спуск, функции потерь, функции оптимизации, математические основы нейрона. Создание собственной первой нейронной сети. Изучение различных архитектур нейронных сетей, а также методов обучения и оптимизации. Изучение и применение библиотек глубокого изучение TensorFlow и PyTorch.
2. Применение методов машинного обучения и нейронных сетей в задачах обработки изображений и текстов
Основы работы с изображениями (библиотеки openCV, pillow), предварительная обработка изображений. Аугментация данных. Основы работы с текстом. Задачи обработки естественного языка (natural language processing, NLP). Общая архитектура NLP-системы. Уровни обработки естественного языка. Изучение и реализация различных архитектур нейронных сетей для решения прикладных задач (сверточные, рекурентные, Генеративно-состязательные, трансформеры).
Обеспечение безопасности приложений
1. Основные понятия безопасности информационных систем
Раздел содержит в себе описание основных понятий кибербезопасности. Излагаются ключевые характеристики цифровых угроз. Рассматриваются различные виды уязвимостей и угроз. Изучаются меры обеспечения безопасности и механизмы их реализации.
2. Сферы кибербезопасности
В разделе изучаются методы анализа вредоносного программного обеспечения. Приводится алгоритм разработки защищенного приложения. Излагаются особенности промышленной кибербезопасности и типичные уязвимости.
3. Инструменты атакующих. Виды кибератак
Рассматриваются техники и тактики кибератак MITRE ATT&CK, современный ландшафт угроз.
4. Будущее кибербезопасности
Ознакомление с IoT и его особенностями. Рассказывается о кибериммунитете и его роли в эволюции кибербезопасности. Описываются тренды в кибербезопасности и развитии защиты.
Практика, подготовка к защите и защита итогового проекта
Практика, подготовка к защите и защита итогового проекта. В рамках модуля обучающиеся проходят практику на базе индустриального партнера, развивая навыки, полученные в предыдущих модулях, готовят и представляют к защите итоговый проект.