• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта
Бакалавриат 2019/2020

Анализ данных в Python

Статус: Курс по выбору (Политология)
Направление: 41.03.04. Политология
Когда читается: 4-й курс, 1, 2 модуль
Формат изучения: Blended
Язык: русский
Кредиты: 4

Программа дисциплины

Аннотация

Сегодня стремительно растет количество и виды данных, к которым могут обращаться социальные науки. У современного исследователя есть в потребность в гибких, мощных и легко масштабируемых инструментах для сбора и анализа информации. Язык программирования Python и его библиотеки являются стандартом индустрии машинного обучения и анализа больших данных. Многие из этих инструментов окажутся полезны для студентов-политологов, выбери они исследовательскую карьеру или работу в государственном и частных секторах. Целью этого курса является развитие навыков программирования и создание крепкой практической базы для анализа и презентации данных. Также мы познакомимся с задачами и разными алгоритмами машинного обучения, что задаст вектор развития для тех студентов, которые захотят углубиться в предмет. В этом курсе мы освежим в памяти навык программирования на языке Python, углубим навыки работы со специализированными библиотеками для анализа и визуализации данных - numpy, pandas, scipy, matplotlib, plotly. Будем решать исследовательские задачи от постановки задачи и сбора данных до применения математических моделей для оценки корректности наших гипотез. К знакомым из статистики регрессионным моделям добавим в наш исследовательский инструментарий решающие деревья и случайный лес, алгоритмы классификации и кластеризации, научимся строить социальные графы. Отдельное внимание уделим текстовому анализу, потому что огромное количество исследовательских и коммерческих задач завязано именно на нем. Обсудим, что такое нейронные сети и как можно применить готовые решения для своих задач.
Цель освоения дисциплины

Цель освоения дисциплины

  • Развитие и закрепление навыков программирования на языке Python.
  • Формирование и развитие навыков работы со специализированными библиотеками для обработки, визуализации и анализа данных (pandas, numpy, scipy, sklearn, plotly, matplotlib).
  • Развитие навыков работы с данными: сбор, обработка, визуализация, разведывательный анализ.
  • Освоение терминологии области машинного обучения и знакомство с базовыми алгоритмами
  • Развитие навыков постановки исследовательской задачи и тестирования гипотез с помощью количественных методов.
  • Развитие навыков презентации полученных результатов (оформление отчета о проделенной работе и устная защита исследования).
Результаты освоения дисциплины

Результаты освоения дисциплины

  • Уверенно пользоваться языком Python для решения аналитических задач
  • Загружать данные в pandas и работать с ними (фильтрация, агрегация, заполнение пропущенных значений)
  • Умение подсчитывать описательные статистики, оценивать распределения, интерпретировать корелляции
  • Проводить разведывательный анализ данных
  • Работать с сайтом соревнований по машинному обучению kaggle
  • Умение выбирать корректные графики для визуализации данных, уметь кастомизировать их внешний вид, интерпретировать графики
  • Создавать интерактивные визуализации с помощью plotly
  • Собирать данные через API. Преобразовывать формат json в таблицу
  • Собирать данные с помощью web-scraping, парсить данные и сохранять их в табличном виде
  • Определять тип задачи машинного обучения, выбирать корректные модели для ее решения, осуществлять подбор параметров и выбирать лучшую модель
  • Решать задачи машинного обучения от постановки исследовательского вопроса до интерпретации результатов
  • Решать простые задачи классификации, регрессии и кластеризации
  • Собирать и подготавливать данные для текстового анализа. Проводить стандартизацию текста. Решать задачи классификации и кластеризации для текстовых данных
  • Подготавливать данные для сетевого анализа и строить социальные графы
  • Иметь общее представление о принципах работы нейроных сетей. Уметь использовать готовые нейронные сети для анализа собственных данных
Содержание учебной дисциплины

Содержание учебной дисциплины

  • Введение в анализ данных: Pyhton для анализа данных, алгоритмы, введение в библиотеки pandas и numpy.
    Преимущества использования Python для анализа данных по сравнению с другими инструментами. Прикладные задачи политологии, для решения которых подходит инструментарий Python. Обзор библиотек и инструментов. Программирование на Python: вспоминаем типы данных, основные структуры, методы и функции, условные операторы, циклы, списковые включения, функцию map() и анонимные функции, отладку кода (try/except). Алгоритмы: оптимизация и сложность на примере алгоритмов сортировок. Библиотека numpy: векторы и массивы, специальные типы данных. Библиотека pandas. Основы работы с датафреймами: загрузка, очистка, фильтрация, группировка и агрегация. Описательные статистики, распределения, разведывательный анализ, работа с пропущенными значениями, постановка гипотезы. Работа с Kaggle.
  • Визуализация данных
    Виды графиков, их корректное использование и интерпретация. Принципы хорошей визуализации, основные ошибки при визуализации данных. Основы визуализации в matplotlib. Оформление и кастомизация графиков. Визуализации отфильтрованных и сгруппированных данных. Создание интерактивных визуализаций в Plotly.
  • Сбор данных
    Сбор данных из открытых источников: web-scraping, работа с API, парсинг текста и таблиц, сохранение файлов.
  • Машинное обучение
    Введение в машинное обучение: терминология, постановка исследовательского вопроса и проверка гипотезы. Виды задач машинного обучения. Baseline модели. Numpy: операции с векторами и матрицами. Задачи регрессии. Линейная регрессия. Задачи классификации. Реализация алгоритма kNN. Логистическая регрессия. Решающие деревья. Случайный лес. Работа с Kaggle. Обучение без учителя. Кластеризация. Решаем Kaggle кейс: от гипотезы до submission.
  • Текстовый анализ
    Сбор, обработка и очистка текста для анализа. Текстовый анализ: классификация, семантический анализ. Байесовские модели. Выявление топиков (LDA).
  • Сетевой анализ
    Сетевой анализ: кейсы, описательные статистики. Сбор и подготовка данных. Построение социального графа.
  • Нейронные сети
    Нейронные сети. Области применения. Использование существующих решений для собственных задач.
Элементы контроля

Элементы контроля

  • неблокирующий Created with Sketch. Контрольные работы
    Две контрольные работы в течение курса, проводятся во время семинаров.
  • неблокирующий Created with Sketch. Домашние задания
    Два домашних задания в течение курса.
  • неблокирующий Created with Sketch. Экзамен
    Устный экзамен. Самостоятельно выполненный проект по машинному обучению на данных по выбору и его защита.
Промежуточная аттестация

Промежуточная аттестация

  • Промежуточная аттестация (2 модуль)
    0.35 * Домашние задания + 0.35 * Контрольные работы + 0.3 * Экзамен
Список литературы

Список литературы

Рекомендуемая основная литература

  • - Бонцанини М. — Анализ социальных медиа на Python. Извлекайте и анализируйте данные из всех уголков социальной паутины на Python - Издательство "ДМК Пресс" - 2018 - ISBN: 978-5-97060-574-5 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/108129
  • - Джеймс Г., Уиттон Д., Хасти Т. — Введение в статистическое обучение с примерами на языке R - Издательство "ДМК Пресс" - 2017 - ISBN: 978-5-97060-495-3 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/93580
  • - Уэс Маккинли — Python и анализ данных - Издательство "ДМК Пресс" - 2015 - ISBN: 978-5-97060-315-4 - Текст электронный // ЭБС Лань - URL: https://e.lanbook.com/book/73074

Рекомендуемая дополнительная литература

  • HEER, J., BOSTOCK, M., & OGIEVETSKY, V. (2010). A Tour Through the Visualization Zoo. Communications of the ACM, 53(6), 59–67. https://doi.org/10.1145/1743546.1743567