ПРОГРАММА КУРСА
Data Science: машинное обучение и нейронные сети.
Начальный уровень

Введение в машинное обучение и науку о данных
  • Что такое наука о данных?
  • Этапы работ по машинному обучению.
  • Установка Data Science Tools.
  • Знакомство с Jupyter Notebook.
  • Введение в язык программирования Python.
  • Установка интерпретатора Python.
  • Выбор среды разработки (IDE).
  • Работа с менеджером пакетов и виртуальным окружением.
  • Понятие сложности алгоритма.

Введение в программирование на языке Python
  • Типы и структуры данных.
  • Переменные. Функции ввода-вывода. Типизация в Python.
  • Основы булевой алгебры.
  • Операторы ветвления.
  • Вложенные операторы ветвления.
  • Приоритет операторов.
  • Коллекции в Python. Модуль collections.

Работа с системой контроля версий
  • Понятие системы контроля версий (VCS).
  • Цели использования.
  • Установка Git.
  • Основные понятия.
  • Игнорирование файлов.
  • Работа с Git. Команды. Разрешение конфликтов. Git Flow.

Циклы
  • Циклы for, while.
  • Операторы break и continue.
  • Использование else с циклами.
  • Обработка ошибок, создание собственных исключений.
  • Итераторы.

Работа с данными
  • Обработка данных.
  • Менеджеры контекста.
  • Модуль itertools.
  • Математические модули: decimal, fractions, math, random.
  • Работа с файлами CSV, excel, JSON.

Основы линейной алгебры и теории вероятностей
  • Знакомство с понятиями вектор, матрица, векторное пространство. Действия над векторами и матрицами. Транспонирование матрицы, обратная матрица, единичная и нулевая матрица.
  • Теория вероятности. Комбинаторика. Случайные величины. Дисперсия случайной величины. Условная вероятность. Формула Байеса. Распределения и доверительные интервалы.
  • Знакомство с NumP.

Обработка и визуализация данных
  • Знакомство с библиотекой Pandas. Визуализация данных с помощью библиотеки matplotlib. Визуализация данных с помощью Seaborn.

Функции. Функция как объект первого класса
  • Вызов функции.
  • Встроенные функции. Аргументы. Использование *args, **kwargs. Значение аргументов по умолчанию. Аннотации типов. Возвращение значения из функции. Оператор return. Использование pass.

Функции, декораторы, понятие класса
  • Замыкания. Декораторы. Пространства имен. Область видимости. Lambda функции. Генераторы. Рекурсия.
  • Понятие класса. Создание класса с помощью ключевого слова class. Понятие объекта класса. Использование self. Атрибуты класса и атрибуты объекта.
  • Статические методы и методы класса.
  • Магические методы класса. Инициализация и работа с объектами.

Объектно-ориентированное программирование
  • Работа с классами данных с помощью dataclasses.
  • Принципы ООП.
  • Diamond problem. MRO. Декоратор property. Дескрипторы.

Основы SQL
  • Основы языка SQL. Понятие транзакции. ACID. CAP. Понятие ORM. Знакомство с SQLAlchemy. Выполнение запросов в СУБД с помощью SQLAlchemy.

Знакомство с Machine Learning
  • Классификация. Оценка производительности модели. Компромисс смещения-дисперсии. Регрессия. Линейная регрессия.

Алгоритмы машинного обучения
  • Метод К-ближайших соседей, метод опорных векторов.
  • Деревья решений. Случайные леса. Бустинг и расширяемые деревья. Наивный Байесовский алгоритм.

Нейронные сети. Знакомство с Keras
  • Сверточные и рекуррентные нейронные сети. Рекуррентная нейронная сеть LSTM. Знакомство с Keras. Анализ временных рядов с помощью Python.