Бакалавриат
2020/2021
Программирование в Python для анализа данных
Лучший по критерию «Полезность курса для расширения кругозора и разностороннего развития»
Лучший по критерию «Новизна полученных знаний»
Статус:
Курс обязательный (Социология)
Направление:
39.03.01. Социология
Кто читает:
Департамент социологии
Где читается:
Факультет социальных наук
Когда читается:
4-й курс, 2 модуль
Формат изучения:
с онлайн-курсом
Язык:
русский
Кредиты:
4
Контактные часы:
44
Программа дисциплины
Аннотация
Дисциплина направлена на изучение основ программирования в Python (базовые структуры данных, в частности типы данных, логические выражения, условные операторы, организация множественного ветвления, циклы, последовательности (строки и списки) и словари в Python) для применения полученных знаний и навыков при анализе и визуализации в Python как тренировочных, так и реальных данных, включая преобразование и очистку данных, «восстановление отсутствующих» значений, построение графиков (гистограмм, графиков плотностей и диаграмм рассеяния), агрегирование данных, таблицы сопряженности, корреляционный и квантильный анализ, построение предсказательных моделей, оценка качества моделей. По итогам курса студенты должны научиться самостоятельно принимать решение о целесообразности использования возможностей Python для решения прикладных задач в исследовательской практике. Большое внимание уделяется рассмотрению примеров решения задач на реальных данных. Программа предусматривает проведение семинарских занятий и лабораторных работ. Также предполагается выполнение и последующая проверка домашних работ (решение задач). Настоящая дисциплина относится к вариативной части, являясь обязательной дисциплиной специализации «Прикладные методы и технологии социальных исследований».
Цель освоения дисциплины
- Целью освоения дисциплины " Программирование в Python для анализа данных " является формирование компетенций, связанных с решением задач по сбору, анализу и визуализации социологических данных с помощью программ на языке Python.
Планируемые результаты обучения
- Знает основы программирования, включая стандартные алгоритмы, и их реализацию в Python
- Умеет строить модели, оценивать их качество и сравнивать различные модели средствами Python
- Имеет навыки анализа реальных социологических данных в Python
Содержание учебной дисциплины
- Введение в Python и его основные библиотеки и модулиОбщая характеристика языка Python. Базовые команды, библиотеки и модули Python, включая библиотеки SciPy, NumPy (основные пакет для выполнения научных и инженерных расчетов на Python), Matplotlib (библиотека для визуализации данных двумерной графикой), Pandas (программная библиотека на языке Python для обработки и анализа данных, в частности для работы с числовыми таблицами; работа Pandas с данными строится поверх библиотеки NumPy) и Scikit-Learn (предоставляет реализацию целого ряда алгоритмов для обучения с учителем и обучения без учителя)
- Типы данных в Python, подготовка данных к построению моделейЧтение и запись данных. Форматы файлов. Типы хранения данных: векторы, двухмерные таблицы, матрицы, массивы. Переформатирование данных: очистка, преобразование, слияние, изменение формы. Способы работы с пропущенными данными. Агрегирование данных и групповые операции. Построение таблиц сопряженности и квантильный анализ. Понятие функции, ссылки на функции из разных пакетов, создание собственной функции. Циклы for, while, repeat.
- Визуализация данных и результатов их анализа в PythonПостроение графиков, статическая и интерактивная визуализации. Работа с библиотекой Matplotlib. Изменение масштаба. Нанесение рисок, меток и надписей. Добавление пояснительных надписей. Аннотации и рисование в подграфике. Использование символов и цветов. Сохранение графиков в файле. Функции построения графиков в библиотеке Pandas, включая линейные и нелинейные графики функций, столбиковые диаграммы, гистограммы, графики плотностей распределения вероятностей, «ящики с усами» и диаграммы рассеяния.
- Предсказательное моделирование в PythonРабота с библиотекой Scikit-Learn. Построение моделей, «обучающихся с учителем». Разделение данных на обучающие и тестовые. Нормировка обучающих данных. Модели классификации. Бинарная и многоклассовая классификация. Предварительная выборка атрибутов. Понижение размерности данных. Наивный байесовский классификатор. Регрессионные модели: линейная множественная регрессия, логистическая регрессия, регуляризованная регрессия. Построение моделей, «обучающихся без учителя». Подходы для построения моделей кластеризации. Анализ «рыночной корзины». Поиск ассоциативных правил. Ансамбли моделей. Применение пакета jug для работы с большими данными.
- Анализ качества построенных моделей в PythonОпределение переобученности модели. Реализация перекрестной проверки в Python. Критерии согласия модели. Оценки, основанные на хи-квадрат статистике, информационные критерии. Возможности в Python по отклонению «плохих» моделей и выбору лучших.
Элементы контроля
- Домашнее задание №1За нарушение срока сдачи работы на 1 неделю оценка за нее снижается на 50%, на 2 недели – на 100%.
- Экзмен
- Домашнее задание №3За нарушение срока сдачи работы на 1 неделю оценка за нее снижается на 50%, на 2 недели – на 100%.
- Домашнее задание №2За нарушение срока сдачи работы на 1 неделю оценка за нее снижается на 50%, на 2 недели – на 100%.
- Домашнее задание №1За нарушение срока сдачи работы на 1 неделю оценка за нее снижается на 50%, на 2 недели – на 100%.
- Экзмен
- Домашнее задание №3За нарушение срока сдачи работы на 1 неделю оценка за нее снижается на 50%, на 2 недели – на 100%.
- Домашнее задание №2За нарушение срока сдачи работы на 1 неделю оценка за нее снижается на 50%, на 2 недели – на 100%.
Промежуточная аттестация
- Промежуточная аттестация (2 модуль)0.26 * Домашнее задание №1 + 0.27 * Домашнее задание №2 + 0.27 * Домашнее задание №3 + 0.2 * Экзмен
Список литературы
Рекомендуемая основная литература
- Анализ социологических данных с помощью пакета SPSS : учеб. пособие для вузов, Крыштановский, А. О., 2006
- Коэльо Л.П., Ричарт В. - Построение систем машинного обучения на языке Python - Издательство "ДМК Пресс" - 2016 - 302с. - ISBN: 978-5-97060-330-7 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/82818
- Лучано Рамальо - Python. К вершинам мастерства - Издательство "ДМК Пресс" - 2016 - 768с. - ISBN: 978-5-97060-384-0 - Текст электронный // ЭБС ЛАНЬ - URL: https://e.lanbook.com/book/93273
Рекомендуемая дополнительная литература
- Язык программирования Python: практикум : учеб. пособие / Р.А. Жуков. — М. : ИНФРА-М, 2019. — 216 с. + Доп. материалы [Электронный ресурс; Режим доступа: http://www.znanium.com]. — (Высшее образование: Бакалавриат). — www.dx.doi.org/10.12737/textbook_5cb5ca35aaa7f5.89424805.