Модуль 4
52,00ч

Python для анализа данных

Целью изучения модуля «Python для анализа данных» является формирование компетенций слушателей в области использования библиотек NumPy, SciPy, Pandas для работы с данными, визуализации данных, применения методов обучения с учителем и без учителя, создания нейронных сетей.

Задачи Модуля 4:
1) сформировать умение применять инструменты библиотеки NumPy, применять инструменты библиотеки SciPy, применять инструменты библиотеки Pandas для работы с данными;
2) сформировать умение визуализировать данные при помощи инструментов Python, применить на практике инструменты Python для работы со статистическим анализом;
3) сформировать умение применять на практике линейную регрессию, применять на практике кросс-валидацию, оценивать качества моделей, обучать на практике ансамблевые модели;
4) сформировать умение применять на практике методы кластеризации, применять на практике методы понижения размерности. создавать рекомендательную сеть;
5) сформировать умение реализовывать перцептрон, реализовывать свою нейронную сеть.
Часов в программе
10,00 часов
лекции
16,00 часов
практика
14,00 часов
самостоятельная
12,00 часов
промежуточная аттестация
52,00 часа
всего
Материально-технические условия реализации программы:
Вид занятий: Лекция
Требуемое ПО:
Zoom
Браузер Chrome
Microsoft Visual Studio 2010 или выше
Вид занятий: Практическая работа
Требуемое ПО:
Zoom
Браузер Chrome
Microsoft Visual Studio 2010 или выше
Вид занятий: Промежуточная (итоговая) аттестация
Требуемое ПО:
Zoom
Браузер Chrome
Microsoft Visual Studio 2010 или выше
Информационные ресуры
Документация Postgres про сравнение строк - https://postgrespro.ru/docs/postgrespro/9.5/functions-matching
Документация Postgres про другие функции работы со строками - https://postgrespro.ru/docs/postgrespro/9.5/functions-string
Тестер регулярных выражений - https://www.regextester.com
Интерактивный учебник по SQL -http://www.sql-tutorial.ru/ru/content.html
Введение в анализ данных с помощью Pandas - https://habr.com/ru/post/196980/
Начало работы с Power BI - https://docs.microsoft.com/ru-ru/power-bi/fundamentals/desktop-getting-started
Образовательные ресуры
https://www.coursera.org/learn/mathematics-and-python/home/welcome

Учебно-методические материалы

Методы, формы и технологии

Методы обучения:
- лекция;
- практическая работа под руководством учителя;
- самостоятельная практическая работа;
- изучение литературы по теме.
Методы контроля:
- выполнение практических занятий по темам лекций;
- выполнение итогового задания.
Формы организации учебных занятий:
- лекция;
- вебинар с элементами практической работы и разбора теоретического материала.
Формы организации учебной деятельности:
- групповая работа;
- индивидуальная работа.
Дистанционные образовательные технологии:
- использование образовательных интернет-ресурсов;
- использование ресурсов, созданных преподавателем (ноутбуки для решения задач по программированию);
- WEB-консультации и другие.

Методические разработки

Задание для промежуточной (итоговой) аттестации
Проект предполагает очную защиту перед экзаменационной комиссией. Перед комиссией студент готовит материалы согласно заданию и направляет экзаменационной комиссии не менее чем за 2 дня до назначенной даты экзамена
В качестве итогового проекта вам предлагается решить задачу классификации на наборе данных Fashion-MNIST, который вы можете скачать по следующей ссылке
Fashion-MNIST
Данные проект является учебным и его цель – научиться работать с различными моделями машинного обучения. Вам необязательно строить самую лучшую модель и получать лучшее качество на тестовых данных. Самое важное – это научиться обучать модели и анализировать полученные результаты. В результате, вы научитесь использовать и подготавливать данные для решения задачи классификации. Так же вы изучите на практике различные алгоритмы машиного обучения, такие как логистическая регрессия, полносвязные нейронные сети и сверточные нейронные сети. Более того, вы научитесь обучать эти модели и анализировать результаты работы этих алгоритмов на новых данных
Fashion-MNIST – это датасет состоящий из 70000 черно-белых изображений одежды 28х28 пикселей каждое. 60000 из них содержатся в тренировочной выборке, и 10000 – в тестовой. Этот набор данных представляет из себя альтернативу обычному датасету рукописных цифр MNIST. Существовало несколько предпосылок для создания такого набора данных.
Большинство исследователей в области машинного и глубинного обучения используют MNIST при первой проверки своих моделей, что не всегда является хорошей идеей. Если какая-то модель не работает на датасете MNIST – это не значит, что она не работает в принципе. Если какая-то модель прекрасно работает на датасете MNIST – это не означает, что она так же хорошо будет работать на других датасетах. Известны случаи в отказе публикации некоторых статей из-за недостаточно хорошего качества модели на MNIST. Поэтому Zalando Research предложили альтернативу.
В Fashion-MNIST содержится 10 классов разной одежды по аналогии с 10 цифрами из MNIST.

Материалы курса

Примеры заданий по модулю 4
Практические задания

Тема 1.
Ответьте на вопросы.
1. Какие из следующих методов numpy не создают массивы, заполненные значениями (например массивы, состоящие из единиц или случайных чисел)?
full()
Все методы создают массивы с значениями
eye()
randint()
flatten()
2. Поменять порядок элементов в массиве на обратный и вернуть 4-й элемент нового массива Z = np.array([92, 13, 44, 555, 1, -3]). Напомним, что индексация массива начинается с нуля.
1
13
555
-3
3. Создайте два вектора - вектор, состоящий из 5 единиц, и другой вектор размером 5, содержащий только значение 2. Найдите скалярное произведение векторов.
[2,2,2,2,2]
10
3
нельзя найти произведение векторов из-за разной размерности

Тема 2. Визуализация данных и статистика
В качестве задания на отработку навыков по визуализации данных, мы предлагаем вам провести различные визуализации датасета с большим количеством атрибутов.
Это датасет с информацией о ~15 000 игроков из футбольного симулятора FIFA 18, особо актуальный в год проведения Чемпионата Мира в России. Ознакомиться с ним и скачать можно по ссылке с Kaggle, платформы для соревнований по машинному обучению.
https://www.kaggle.com/thec03u5/fifa-18-demo-player-dataset
Для выполнения этого задания, вам нужно будет сделать как минимум 4 визуализации для указанного датасета. Вы можете проявить свою фантазию или же использовать предложенные нами варианты визуализаций.
Примеры визуализации:
 Гистограмма возраста игроков
 Сравнение зависимости зарплаты от возраста игрока. Можно найти самые большие команды и сравнить эти зависимости между ними.
 Гистограмма распределения одной из статистик по странам — например, средний и максимальный Performance
Решение должно соответствовать следующим критериям:
1. Минимум две визуализации с помощью matplotlib
2. Минимум две визуализации с помощью Plotly
3. В каждой визуализации должен использоваться как минимум один атрибут, не использованный в других визуализациях
4. Решением к заданию должен быть архив, в котором лежат IPYNB файлы визуализаций. Помимо самого кода визуализации и изображения, в ноутбуке должно присутствовать текстовое описание визуализации.
5. В каждой визуализации должен быть указан заголовок и подписаны оси, если они есть
6. К каждой визуализации должен быть описан вопрос, на который она отвечает, например:
 Гистограмма возраста укажет на доминирующий возраст и особенности распределения
 Гистограмма среднего Performance по странам определит стабильные и надежные страны, а гистограмма максимума — родины особо ярких игроков

Задача
Оцените решения сокурсников по критериям ниже
1. В решении присутствуют минимум две визуализации с помощью matplotlib
2. В решении присутствуют минимум две визуализации с помощью Plotly
3. В каждой визуализации используется как минимум один атрибут, не использованный в других визуализациях
4. К каждой визуализации описан вопрос, на который она отвечает
5. В каждой визуализации указан заголовок и подписаны оси, если они есть
6. Решением к заданию является архив, в котором лежат IPYNB файлы визуализаций. Помимо самого кода визуализации и изображения, в ноутбуке присутствует текстовое описание визуализации.
Нет – 0
Да – 1

Тема 3.
Ответьте на вопросы.
1. Выберете верные утверждения
1) Решающие деревья склонны к переобучению
2) Результатом классификации нового объекта в решающем дереве является класс, содержащийся в листе этого дерева
3) Решающие деревья не используются в качестве регрессионных моделей

2. Каким образом может достигается различие между решающими деревьями в алгоритме случайного леса?
1) Использованием случайного подмножества признаков при разбиении объектов в вершинах решающего дерева
2) Выбором случайного подмножества объектов при обучении решающего дерева
3) Всем из вышеперечисленного

3. Какие из пунктов описывают достоинства случайного леса?
1) Существуют методы оценки предсказательной способности признаков в модели
2) Случайный лес не склонен к переобучению при увеличении числа базовых алгоритмов
3) В случайном лесе обычно используются глубокие решающие деревья
4) В этой модели решающие деревья строятся независимо, что делает возможным использование методов паралелльных вычислений

Тема 4.
Ответьте на вопросы.
1. В каком из следующих сценариев может пригодится рекомендательная система?
5) Оценка вероятности возврата кредита по анкетным данным
6) Рекомендация прически в парикмахерской
7) Составление списка музыкальных композиций, удовлетворяющих вкусам пользователя
8) Составление списка статей, удовлетворяющим интересам пользователя

2. В методах коллаборативной фильтрации
1) Для расчета похожести между пользователями/товарами пропуски надо заменить на “0
2) Заложена устойчивость к проблеме “холодного старта”
3) редполагается что оценки похожих пользователей/товаров будут похожими
4) Предполагается только 5-и бальная система оценок

3. Выберите верные утверждения
1) Latent Factor Model обучается на всевозможных парах пользователь-товар
2) Размерность векторов p и q в Latent Factor Model должна быть одинаковой
3) Так как Latent Factor Model обучается с помощью стохастического градиентного спуска, то для двух разных запусков могут обучится разные p и q
4) Перед применением SVD надо избавиться от пропусков в матрице рейтингов

Тема 5.
Ответьте на вопросы.
1. Предположим, что на вход сверточного слоя поступает цветное изображения размером 32x32 пикселей. Количество каналов для каждого изображения в данном случае равно 3. Мы использует фильтры с ядром свертки 5x5. Какое количество параметров (настраеваемых весов) содержится в одном фильтре без учета bias параметра?
1) 102
2) 3072
3) 75
4) 675

2. Каким образом качество восстанавливаемых данных зависит от размерности скрытого пространства в модели автоэнкодера при обучении на одной и той же выборке? Мы считаем каждую модель достаточно точной по отношению к величине ошибки восстановления
1) При увеличении размерности скрытого пространства качество востанавливаемых данных увеличивается
2) При уменьшении размерности скрытого пространства качество восстанавливаемых данных увеличивается
3) Качество восстанавливаемых данных не зависит от размерности скрытого пространства

3. В чем заключается основная идея архитектуры ResNet?
1) Использование Batch normalization после сверточного слоя нейронной сети
2) Дублирование сверточных слоев по отношению к количеству каналов
3) Добавление дополнительного соединения, которое обходит цепочку преобразований и создает дополнительный поток данных, который складывается с основным

Учебная литература

Основная литература:
Think Python [Электронный ресурс] – Режим доступа - https://greenteapress.com/wp/think-python-2e/
Automate the Boring Stuff with Python [Электронный ресурс] – Режим доступа - https://automatetheboringstuff.com/
Dive Into Python 3 [Электронный ресурс] – Режим доступа -http://diveintopython3.problemsolving.io/
Problem Solving with Algorithms and Data Structures using Python [Электронный ресурс] – Режим доступа -https://runestone.academy/runestone/static/pythonds/index.html
Swaroop Chitlur. A Byte of Python [Электронный ресурс] – Режим доступа - https://wombat.org.ua/AByteOfPython/AByteofPythonRussian-2.02.pdf – 2020.
Федоров Д. Основы программирования на примере языка Python [Текст] : учебное пособие / Д. Федоров. - 2018.
Свейгарт Э. Автоматизация рутинных задач с помощью Python [Текст] : практическое руководство для начинающих / Эл Свейгарт. – 2017.

Дополнительная литература:
Маккинни У. Python и анализ данных [Текст] / У. Маккинни. – 2015.

Перечень учебно-методического обеспечения для самостоятельной работы обучающихся по дисциплине (модулю)
Бэрри П. Изучаем программирование на Python [Текст] / П. Бэрри. – 2017.
Савельев В. Статистика и котики [Текст] / Владимир Савельев. – 2018.
Бослав С. Статистика для всех [Текст] / Сара Бослав. – 2015.
Хамидуллин Р. Я. Теория вероятностей и математическая статистика [Текст] / Р.Я. Хамидуллин. – 2020.
Справочник по функциям DAX [Электронный ресурс] – Режим доступа - https://docs.microsoft.com/ru-ru/dax/dax-function-reference
Талер Р. Nudge. Архитектура выбора [Текст] / Ричард Талер. – 2017.
Желязны Дж. Говори на языке диаграмм [Текст] : пособие по визуальным коммуникациям / Джин Желязны. – 2020.

Перечень ресурсов информационно-телекоммуникационной сети "Интернет", необходимых для освоения дисциплины (модуля)
Документация Postgres про сравнение строк - https://postgrespro.ru/docs/postgrespro/9.5/functions-matching
Документация Postgres про другие функции работы со строками - https://postgrespro.ru/docs/postgrespro/9.5/functions-string
Тестер регулярных выражений - https://www.regextester.com
Интерактивный учебник по SQL -http://www.sql-tutorial.ru/ru/content.html
Введение в анализ данных с помощью Pandas - https://habr.com/ru/post/196980/
Начало работы с Power BI - https://docs.microsoft.com/ru-ru/power-bi/fundamentals/desktop-getting-started

Темы

Математика и Python для анализа данных Визуализация данных и статистика Обучение с учителем Методы обучения без учителя Нейронные сети
Лекции
2,00ч
Практические занятия
2,00ч
Самостоятельная работа
2,00ч
Всего
6,00ч
Лекции
2,00ч
Практические занятия
2,00ч
Самостоятельная работа
2,00ч
Всего
6,00ч
Лекции
2,00ч
Практические занятия
4,00ч
Самостоятельная работа
4,00ч
Всего
10,00ч
Лекции
2,00ч
Практические занятия
4,00ч
Самостоятельная работа
4,00ч
Всего
10,00ч
Лекции
2,00ч
Практические занятия
4,00ч
Самостоятельная работа
2,00ч
Всего
8,00ч
Промежуточная аттестация 12,00 часов
Зачет