Интенсив по Data science (TEST)
Интенсив по Data science
Курс "Интенсив по Data Science" рассчитан на обучение с нуля для тех, кто хочет освоить профессию data scientist.
На начальном этапе все участники получат стартовые знания по Python для того, чтобы успешно справиться обучением и пройти его до конца.
Вы получите необходимые знания и навыки в области статистики, математики, программирования, а также познакомитесь с самыми актуальными и перспективными технологиями, такими как глубокое обучение и нейронные сети.
Обучение предполагает прохождение теории на занятиях, разбор практики в формате скринкаста и самостоятельное выполнение домашних заданий.
На курсе Вы научитесь:
- Умению программировать на Python
- Использовать современные библиотеки для анализа данных и линейной алгебры
- Использовать на практике теорию вероятностей и знания статистики
- Понимать процессы протекающие в машинном обучении используя математический анализ
- Проводить разведочный анализ данных и инжиниринг данных
- Использовать как самые простые и ординарные алгоритмы машинного обучения, так и сложные
- Писать собственные нейронные сети в computer vision и nlp
- Решать задачи из реальной жизни
- Не бояться проходить собеседования при поиске работы
Необходимая предварительная подготовка:
- Elementary знание английского
- Знание школьной программы по математике
Формат курса:
Занятия проходят в дистанционном формате по понедельникам и четвергам с 18:00 до 20:30 часов по Мск. В течении занятий предусмотрено два перерыва по 10 минут.
Аудитория курса:
- Новичкам. Даже если вы никогда не работали в IT, вы получите современную и востребованную специальность.
- Python программисты. Если вы устали от той области в которой работаете и хотите освоить что-то новое, то мы поможем вам это сделать.
- IT-специалистам. Если вы хотите лучше понимать коллег и говорить с ними на одном языке.
Программа курса
- История языка, его применение и особенности.
- Установка Python и основные инструменты разработки: Anaconda, Jupyter Notebook, PyCharm.
- Синтаксис языка: переменные, типы данных, операторы, функции.
- Условные конструкции и циклы: if-else, for, while.
- Структуры данных: списки, кортежи, множества, словари.
- Работа с файлами и директориями: чтение, запись, перемещение и удаление.
- Обработка исключений: try-except.
- Модули и пакеты: создание, импорт и использование.
- ООП в Python: классы, объекты, наследование.
Каждая тема будет сопровождаться практическими заданиями для закрепления полученных знаний и умений.
- Введение в линейную алгебру
- Определения и основные понятия
- Системы линейных уравнений
- Матрицы и операции с матрицами
- Работа с библиотекой NumPy:
- Создание массивов NumPy
- Операции над массивами
- Индексирование и срезы массивов
- Функции для работы с массивами
- Работа с библиотекой Pandas
- Введение в Pandas и структуры данных
- Создание DataFrame и Series
- Обработка и очистка данных
- Сводные таблицы и агрегирование данных
- Применение линейной алгебры в машинном обучении:
- Работа с данными с помощью NumPy и Pandas
- Определение понятий статистики и вероятности
- Общие принципы статистической обработки данных
- Основные принципы теории вероятностей
- Описательная статистика
- Расчет основных характеристик данных: среднее, медиана, мода, дисперсия, стандартное отклонение
- Вероятность
- Определение понятия вероятности
- Расчет вероятности событий
- Условная вероятность и формула Байеса
- Распределения вероятностей: дискретные и непрерывные
- Гипотезы и их проверка
- Уровень значимости и p-value
- Корреляционный анализ
- Корреляция и коэффициент корреляции
- Построение корреляционной матрицы
- Введение в математический анализ
- Основные понятия математического анализа: функции, пределы, производные, интегралы.
- Пределы и непрерывность: определение предела функции, свойства пределов функций, непрерывность функции и ее свойства.
- Производные и дифференцирование: определение производной функции, правила дифференцирования, геометрический смысл производной.
- Практические задания: решение простых задач по математическому анализу и линейной алгебре с помощью Python и библиотеки NumPy
- Введение в градиентную оптимизацию
- Что такое оптимизация и зачем она нужна
- Основы градиентной оптимизации:
- Что такое градиент и как он используется в оптимизации: простейший пример градиентного спуска
- Основные методы градиентной оптимизации: градиентный спуск и стохастический градиентный спуск
- Регуляризация в градиентной оптимизации: L1-регуляризация, L2-регуляризация
- Применение градиентной оптимизации в машинном обучении
- Примеры использования градиентной оптимизации в реальных задачах
- Введение в разведочный анализ данных: определение, цели и примеры.
- Подготовка данных: импорт, очистка, заполнение пропусков и обработка выбросов.
- Визуализация данных: гистограммы, диаграммы рассеяния, ящики с усами, тепловые карты.
- Описательные статистики: среднее значение, медиана, мода, стандартное отклонение.
- Корреляционный анализ: коэффициент корреляции, матрица корреляции.
- Предварительный анализ данных: анализ распределения признаков, обнаружение выбросов, проверка гипотез.
- Интерактивный разведочный анализ данных: использование библиотек Python, таких как Pandas, Matplotlib и Seaborn.
- Примеры применения разведочного анализа данных в реальных проектах.
- Введение в машинное обучение: определение, цели и примеры.
- Типы задач машинного обучения: классификация, регрессия и кластеризация.
- Основные понятия машинного обучения: признаки, метки, обучение с учителем и без учителя.
- Метод k-NN: определение, основные шаги и примеры.
- Примеры использования метода k-NN в реальных проектах.
- Разбиение выборки на обучающую и тестовую части: определение, стратегии и примеры.
- Оценка качества модели: метрики точности, полноты, F1-меры и ROC-кривой.
- Введение в линейную регрессию: определение, цели и примеры.
- Основные понятия линейной регрессии: зависимая и независимые переменные, коэффициенты регрессии, смещение и дисперсия.
- Простая линейная регрессия: определение, формула и примеры.
- Множественная линейная регрессия: определение, формула и примеры.
- Метод наименьших квадратов: определение, формула и примеры.
- Обучение модели линейной регрессии: определение, процесс обучения, подбор параметров модели.
- Оценка качества модели: метрики MAE, MSE, RMSE, R2.
- Регуляризация модели: L1, L2 регуляризация.
- Примеры использования линейной регрессии в реальных проектах.
- Введение в SVM: определение, цели и примеры.
- Основные понятия SVM: гиперплоскость, опорные векторы, мягкий и жесткий отступы.
- Линейная SVM: определение, формула и примеры.
- Ядерная SVM: определение, формула и примеры.
- Разбиение выборки на обучающую и тестовую: определение, стратегии и примеры.
- Обучение модели SVM: определение, процесс обучения, подбор параметров модели.
- Оценка качества модели: метрики точности, полноты, F-мера, ROC-кривая, AUC.
- Регуляризация модели SVM: L1, L2 регуляризация.
- Практические примеры и упражнения.
- Введение в решающие деревья: определение, цели и примеры.
- Основные понятия решающих деревьев: узел, лист, корень, глубина дерева, информационный критерий.
- Классификационные деревья: определение, формула и примеры.
- Регрессионные деревья: определение, формула и примеры.
- Процесс обучения решающего дерева: алгоритм построения дерева, критерии информативности, отбор признаков.
- Практические примеры и упражнения.
- Ограничения и проблемы решающих деревьев: переобучение, низкая устойчивость к шуму и выбросам.
- Решение проблем решающих деревьев: отсечение дерева, стрижка дерева, ансамблирование.
- Введение в ансамбли: определение, цели и примеры.
- Определение, принцип работы, алгоритм построения.
- Преимущества и недостатки Random Forest, XGBoost, CatBoost, LightGBM.
- Сравнение алгоритмов: какой выбрать для конкретной задачи.
- Bagging, boosting и stacking.
- Практические примеры и упражнения.
- Ограничения и проблемы ансамблей.
- Решение проблем ансамблей: калибровка вероятностей, настройка параметров.
- Заключение и дискуссия: обсуждение наиболее интересных и важных аспектов ансамблей в машинном обучении.
- Введение в обучение без учителя: определение, цели и примеры.
- Кластеризация: определение, принцип работы, алгоритмы кластеризации.
- Примеры задач кластеризации: сегментация покупателей, группировка новостей, идентификация образцов.
- Размерностьностьность: определение, проблемы, методы сокращения размерности.
- Метод главных компонент (PCA): определение, принцип работы, алгоритм, примеры применения.
- t-SNE: определение, принцип работы, алгоритм, примеры применения.
- K-Means: определение, принцип работы, алгоритм, примеры применения.
- Оценка качества в обучении без учителя.
- Недостатки и ограничения методов обучения без учителя.
- Практические примеры решения задач с помощью обучения без учителя.
- Обзор инструментов для работы с данными и реализации методов обучения без учителя.
- Введение в нейросети: определение, история, принцип работы.
- Примеры задач, решаемых с помощью нейросетей: классификация изображений, распознавание речи, машинный перевод и другие.
- Основные компоненты нейросети: слои, функции активации, оптимизаторы и функции потерь.
- Введение в PyTorch: история, основные концепции, инструменты и преимущества.
- Тензоры в PyTorch: определение, типы, создание и преобразование тензоров.
- Операции в PyTorch: математические операции, операции с тензорами, генерация случайных чисел и другие.
- Создание и обучение нейросетей с помощью PyTorch: создание модели, определение функции потерь, выбор оптимизатора, обучение модели, оценка результатов.
- Обзор других фреймворков для работы с нейросетями: TensorFlow, Keras, Theano, Caffe и другие.
- Написание собственной реализации нейронной сети на PyTorch.
- Тенденции развития нейросетевых технологий и перспективы их применения в будущем.
- Введение в сверточные нейронные сети (CNN): определение, принцип работы и примеры применения.
- Архитектуры CNN: простые и глубокие модели, архитектура AlexNet, VGG, GoogLeNet, ResNet.
- Концепция свертки и пулинга: определение, виды свертки и пулинга, их роль в улучшении качества модели.
- Примеры задач, решаемых с помощью CNN: классификация изображений, распознавание лиц, обнаружение объектов и другие.
- Регуляризация в нейронных сетях: определение, принцип работы, L1 и L2 регуляризация.
- Dropout и Batch Normalization: определение, роль в регуляризации, примеры использования.
- Аугментация данных: определение, методы аугментации, их роль в улучшении качества модели.
- Обучение CNN с помощью PyTorch: создание модели, определение функции потерь, выбор оптимизатора, обучение модели, оценка результатов.
- Примеры решения задач с помощью CNN и PyTorch: классификация изображений с помощью CNN, распознавание лиц с помощью глубоких сверточных нейронных сетей.
- Тонкости использования PyTorch для обучения CNN: работа с GPU, сохранение и загрузка моделей, визуализация результатов и отладка.
- Обзор других фреймворков для работы с CNN: TensorFlow, Keras, Theano, Caffe и другие.
- Реализация своей собственной модели CNN на PyTorch.
- Тенденции развития CNN и перспективы их применения в будущем.
- Введение и понятие Transfer Learning
- Применение Transfer Learning в различных задачах
- Преимущества и недостатки Transfer Learning
- Предобученные модели для Computer Vision
- Предобученные модели для Natural Language Processing
- Fine-tuning предобученных моделей
- Реализация Transfer Learning на PyTorch на практике
- Практические примеры Transfer Learning в различных областях (Computer Vision, NLP)
- Ограничения и риски Transfer Learning в реальных проектах
- Best practices для использования Transfer Learning
- Введение в NLP, определение NLP и его применение
- Ключевые понятия: токенизация, лемматизация, стемминг, стоп-слова.
- Предобработка текста: очистка данных от шума и мусора; токенизация и обработка текста, извлечение признаков из текста.
- Векторные представления слов: one-hot encoding, embedding (Word2Vec, fastText, GloVe), Bag-of-Words (BoW), TF-IDF
- Рекуррентные нейронные сети (RNN)
- Что такое BERT и для чего его используют
- Архитектура BERT
- Обучение BERT на больших корпусах данных
- Примеры применения BERT в NLP.
- Использование BERT для классификации текстовых данных и задачи NER
- Возможные направления дальнейшего изучения NLP.