Подготовка курса Компьютерный практикум
Курс Компьютерный практикум по математическому моделированию.
Содержание
1 Идеология курса
- Языком программирования на курсе является язык Julia.
- Курс состоит в выполнении лабораторных работ.
- К лабораторным работам даются видео-описания.
2 Информация по предмету
- Наименование дисциплины: Компьютерный практикум по математическому моделированию
- Объем курса:
- 6 кредитов,
- общая трудоёмкость: 216 часа
- контактные часы: часа
- лекции: 0 часов
- лабораторные работы: 36 часов
- самостоятельная работа: часа
- контроль: часов
- Курс: 4
- Семестр: 7
- Модуль: 13, 14
- Продолжительность курса: 17 недель
- Лекции: 0 часов
- Лабораторные работы: 2 часа в неделю
3 Лабораторные работы
3.1 Основы Julia
3.1.1 Julia. Установка и настройка. Основные принципы
- Подготовка инструментария к работе
- Основы работы в блокноте Jupyter
- Основы синтаксиса Julia
3.1.2 Структуры данных
- Кортежи
- Словари
- Множества
- Массивы
3.1.3 Управляющие структуры
- Циклы
while
иfor
- Условные выражения
- Функции
- Сторонние библиотеки (пакеты) в Julia
3.1.4 Линейная алгебра
- Поэлементные операции над многомерными массивами
- Транспонирование, след, ранг, определитель и инверсия матрицы
- Вычисление нормы векторов и матриц, повороты, вращения
- Матричное умножение, единичная матрица, скалярное произведение
- Факторизация. Специальные матричные структуры
- Общая линейная алгебра
3.1.5 Построение графиков
- Основные пакеты для работы с графиками в Julia
- Опции при построении графиков
- Точечный график
- Аппроксимация данных
- Две оси ординат
- Полярные координаты
- Параметрический график
- График поверхности
- Линии уровня
- Векторные поля
- Анимация
- Errorbars
- Использование пакета Distributions
- Подграфики
3.1.6 Решение моделей в непрерывном и дискретном времени
- Решение обыкновенных дифференциальных уравнений
- Модели
- Модель экспоненциального роста
- Система Лоренца
- Модель Лотки–Вольтерры
3.2 Машинное обучение
3.2.1 Визуализация статистических данных
- Пакеты для визуализации статистических данных
- Одномерные данные
- Распределения
- Варианты визуализации
- Ящики с усами
- Скрипки
- QQ-графики
- Тепловые карты
3.2.2 Аналитико-численный подход к моделированию
- Пакет ModelingToolkit.jl
- Пакет Catalyst.jl
- Модели
- Модель экспоненциального роста
- Система Лоренца
- Модель Лотки–Вольтерры
3.2.3 Оптимизация
- Линейное программирование
- Векторизованные ограничения и целевая функция оптимизации
- Оптимизация рациона питания
- Путешествие по миру
- Портфельные инвестиции
- Восстановление изображения
3.2.4 Манипулирование данными. Структуры данных для работы со статистической информацией
- DataFrames. Расширенное описание
- Данные с категориями
- Ввод/вывод структур данных
- Разбиение и слияние данных
- Запросы к данным
3.2.5 Введение в работу с данными
- Julia для науки о данных
- Считывание данных
- Запись данных в файл
- Словари
- DataFrames
- RDatasets
- Работа с переменными отсутствующего типа (Missing Values)
- FileIO
- Обработка данных: стандартные алгоритмы машинного обучения в Julia
- Кластеризация данных. Метод \(k\)-средних
- Кластеризация данных. Метод \(k\) ближайших соседей
- Обработка данных. Метод главных компонент
- Обработка данных. Линейная регрессия
3.2.6 Обучение с учителем
- Перекрёстная проверка
- Классификация k-ближайших соседей
- Деревья классификации и регрессии
- Bootstrap
- Random Forests
- Градиентный бустинг
3.2.7 Обучение без учителя
- Анализ основных компонентов
- Алгоритм максимизации ожидания
- Кластеризация данных. Метод k-средних
- Вероятностный анализ главных компонент
3.2.8 Нейронные сети
- Построение нейронной сети для классификации фруктов
- Нейронная сеть для данных MNIST
4 Материалы для курса
4.1 Julia-in-DS
- Курс про основы Julia для применения в Data Science проектах.
- Репозиторий: https://github.com/JuliaEvangelists/Julia-in-DS
- Видео: https://www.youtube.com/playlist?list=PLTlO6nV_TaGDX81p4b1dbqtJWHR1iZqof