Магистратура
2020/2021
Основы программирования на языке Python
Статус:
Курс обязательный (Мировая экономика)
Направление:
38.04.01. Экономика
Где читается:
Факультет мировой экономики и мировой политики
Когда читается:
1-й курс, 3, 4 модуль
Формат изучения:
с онлайн-курсом
Преподаватели:
Арзыматов Кененбек
Прогр. обучения:
Мировая экономика
Язык:
русский
Кредиты:
3
Контактные часы:
20
Программа дисциплины
Аннотация
На сегодняшний день Python является стандартом индустрии для анализа данных. По окончании этого курса, студенты получат в свое распоряжение набор аналитических инструментов, которые им пригодятся как в академии, так и при работе в частном или государственном секторе. Целью этого курса является развитие навыков программирования и создание крепкой практической базы для поиска, анализа и презентации данных. Также мы познакомимся с задачами и алгоритмами машинного обучения, что задаст вектор развития для тех студентов, которые захотят углубиться в предмет. С использованием онлайн-курса, размещенного на online.hse.ru.
Цель освоения дисциплины
- Развитие и закрепление навыков программирования на языке Python.
- Формирование и развитие навыков работы со специализированными библиотеками для обработки, визуализации и анализа данных (pandas, plotly, matplotlib, twitter api).
- Развитие навыков работы с данными: поиск, сбор, обработка, визуализация, разведывательный анализ.
- Знакомство с клиент-серверной архитектурой приложений для самостоятельного поиска данных.
- Освоение терминологии области машинного обучения и знакомство с базовыми алгоритмами.
- Развитие навыков постановки исследовательской задачи и выполнение тестового проекта.
Планируемые результаты обучения
- Уверенно пользуется языком Python для решения аналитических задач
- Решает простые задачи классификации, регрессии
- Загружает данные в pandas и работает с ними (фильтрация, агрегация, заполнение пропущенных значений)
- Проводит разведывательный анализ данных
- Умеет пользоваться программным интерфейсом приложений (API) для поиска необходимых данных
- Использует API различных сайтов для скачивания данных
- Выбирает правильный тип визуализации для решения конкретной задачи
- Выбирает корректные графики для визуализации данных
- Настраивает внешний вид графиков в библиотеках Python для визуализации
- Проводит разведывательный анализ данных с помощью визуализаций
- Определяет тип задачи машинного обучения, выбирает корректные модели для ее решения, осуществляет подбор параметров и выбирает лучшую модель
- Реализовывает простые алгоритмы машинного обучения
- Решает задачи машинного обучения от постановки исследовательского вопроса до интерпретации результатов
Содержание учебной дисциплины
- Основы программирование в PythonНачало работы в Python. Установка Python 3 (дистрибутив Anaconda). Знакомство с интерфейсом Jupyter Notebook. Элементы языка разметки Markdown. Установка и импортирование библиотек. Элементарные вычисления в Python. Переменные в Python. Типы данных в Python: числовой, целочисленный, логический, строковый. Преобразование типов.
- Управляющие конструкции в Python.Управляющие конструкции в Python. Понятие управляющих конструкций. Построение блок-схемы для понимания структуры кода. Условные конструкции и операторы if-else. Особенности использования оператора elif
- Циклы в PythonЦиклы for и while. Применение циклов к строкам, спискам, кортежам и словарям. Альтернатива коду с циклами: списковые включения.
- Структуры данных в PythonСписки, кортежи, множества, словари. Изменяемые и неизменяемые типы данных.
- Функции в PythonУстройство функций в Python. Написание простейших функций. Lambda-функции. Исключения. Поиск ошибок в коде и отладка.
- Работа с файламиРабота с файлами в Python: открытие, изменение, сохранение. Разные форматы хранения данных: csv-файлы, json-файлы, txt-файлы.
- Работа с APIЗнакомство с API. API как источник данных. Извлечение данных. Написание запросов к серверу. Парсинг результатов.
- Визуализация данныхЦели визуализации данных: разведывательный анализ, выбор алгоритмов, презентация данных и результатов. Виды графиков, их корректное использование и интерпретация. Принципы хорошей визуализации, основные ошибки при вузализации данных. Основы визуализации в matplotlib. Оформление и кастомизация графиков.
- Введение в машинное обучениеПарадигма и задачи машинного обучения. Разбор кейсов. Основная терминология машинного обучения. Задачи регрессии (линейная регрессия, методы решающих деревьев и случайного леса). Задачи классификации (логистическая регрессия, метод ближайших соседей, перцептрон). Основные метрики качества модели. Кросс-валидация и подбор параметров по сетке.
- Массивы NumPy и работа с таблицамиМассивы vs списки в Python. Работа с массивами NumPy. Применение массивов в анализе данных. Обзор возможностей библиотеки pandas. Преобразование датафреймов pandas: добавление строк и столбцов в таблицу, фильтрация строк по условиям. Группировка и агрегирование данных. Объединение таблиц.
Элементы контроля
- Контрольная работа №2
- Контрольная работа №1
- ПроектПроект представляет собой написание корректно работающей программы прикладного назначения с последующей устной защитой в виде презентации. Проект включает в себя следующие части: программа Python (файл с расширением .py или файл Jupyter Notebook с расширением .ipynb), pdf-файл с описанием назначения и принципов работы программы (документация) и презентация, включающая публичную демонстрацию работы программы. Проект обязательно должен включать использование навыков, полученных в результате прохождения тем курса, то есть выгрузку данных с веб-страницы или с помощью API, сохранение данных в датафрейм pandas с последующей их обработкой. Проект выполняется индивидуально. Оценка за проект определяется по следующей формуле (способ округления – стандартный арифметический): Проект = 0.15 * План + 0.4 * Программа + 0.15 * Документация + + 0.3 * Презентация).
- Онлайн-курс
- ЭкзаменЭкзамен устный в Zoom. Без прокторинга. На экзамене можно пользоваться всеми своими материалами. Возможно выставление оценки автоматом. Технические требования: web-камера, микрофон, наушники / колонки, Zoom.
Промежуточная аттестация
- Промежуточная аттестация (4 модуль)0.15 * Контрольная работа №1 + 0.2 * Контрольная работа №2 + 0.25 * Онлайн-курс + 0.2 * Проект + 0.2 * Экзамен
Список литературы
Рекомендуемая основная литература
- Muller, A. C., & Guido, S. (2017). Introduction to machine learning with Python: a guide for data scientists. O’Reilly Media. (HSE access: http://ebookcentral.proquest.com/lib/hselibrary-ebooks/detail.action?docID=4698164)
Рекомендуемая дополнительная литература
- Mirkin, B. Core concepts in data analysis: summarization, correlation and visualization. – Springer Science & Business Media, 2011. – 388 pp.
- Miroslav Kubat. An Introduction to Machine Learning. Springer, 2015 (296 pages) ISBN: 9783319200095: — Текст электронны // ЭБС books24x7 — https://library.books24x7.com/toc.aspx?bookid=117295
- Witten, I. H. et al. Data Mining: Practical machine learning tools and techniques. – Morgan Kaufmann, 2017. – 654 pp.
- Мастицкий С.Э. - Визуализация данных с помощью ggplot2 - Издательство "ДМК Пресс" - 2017 - 222с. - ISBN: 978-5-97060-470-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/107895
- Основы алгоритмизации и программирования на Python : учеб. пособие / С.Р. Гуриков. — М. : ФОРУМ : ИНФРА-М, 2020. — 343 с. — (Среднее профессиональное образование). - Режим доступа: http://znanium.com/catalog/product/1042452