О практической части курса. python. · 2020-05-09 · %time line —...

29
Математическая статистика (ФБМФ/ФМХФ) О практической части курса. Python. Никита Волков, Кирилл Шевкунов Кафедра дискретной математики 2019

Upload: others

Post on 08-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Математическая статистика (ФБМФ/ФМХФ)

О практической части курса. Python.

Никита Волков, Кирилл ШевкуновКафедра дискретной математики

2019

Page 2: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

1. Правила выполненияпрактических заданий

Page 3: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Что такое практические задания?

- визуализация и проверка теоретических свойств (например, предельные теоремы);

- применение и исследование изучаемых практических методов

Приоритеты при выполнении (и проверке) задания:

I. Результаты и выводы

II. Методы, которыми они были получены

III. В частности, оформление графиков (из некорректных графиков получаются некорректные выводы)

IV. Код, который служит инструментом к получению результатов

Page 4: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Варианты выполнения задания

1). Jupyter Notebook с ядром Python 3.6

Решение включает два файла:

- ноутбук с кодом, результатами, пояснениями и выводами;

- pdf-версия ноутбука.

2). Excel (deprecated)

Решение включает два файла:

- excel-файл с рассчетами;

- описание решения задачи в pdf или word.

Page 5: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Принцип проверки:

- В первую очередь проверяются результаты и выводы. Код без результатов и выводов не засчитывается;

- Если по полученным результатам отсутствуют выводы, оценка может быть снижена (будет, если в условии не оговорено другого);

- При проверке код запускается только в том случае, если об этом сказано в условии задания;

- Проверяющий может вообще не читать код.

Page 6: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Оформление решений:

- Каждый логический этап решения должен быть подробно прокомментирован, а соответствующий код разбит на ячейки;

- Непосредственно в коде должны быть комментарии только по самому коду;

- Код в целом должен следовать принятому стилю кода (нестрогий pep8);

- Никакие элементы решения не должны выходить за пределы области печати в pdf

- Графикам должны быть информативными (уместные диапазоны по осям, присутствуют все подписи и т. д.)

- Комментарии к решению и выводы написаны в отдельных ячейках Markdown

Page 7: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Задания и система оценивания

Все дедлайны строгие, в 23:59 указанной даты!!!

При обнаружении списывания 0 баллов за работу и -2 балла к оценке получают все участники!!!

3 задания,с теорией и практикой, каждое по 4 балла. Оценка за курс равна сумме баллов по заданиям.

План семинарских занятий следующий:

1. О практической части курса, язык Питон.

2. Семинар по решению задач. Выдается ДЗ 1.

3. Разбор ДЗ 1.

… и т. д. ...

Page 8: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Отправка решений

Практические задания нужно выслать на почту [email protected]

Тема письма

[mathstats] Фамилия Имя - задание N

– Квадратные скобки обязательны!

Например,

[mathstats] Фишер Роналд - задание 1

Page 9: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

2. Выполнение заданий на Python

Page 10: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Языки программирования для анализа данных

Слабо специализированный,проприетарный

Недостаточно гибкий в современных задачах.Тем не менее, незаменим для профессионалов.

Достаточно гибкий,большое число библиотек.

Слишком молодой.

Page 11: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Что можно cделать на Python:

● Вычисления для задач прикладной статистики● Построить красивые графики● Решить практические задания

А также:

● Написать обычную программу● Обучить модели машинного обучения (sklearn)● Обучить нейронные сети (keras, tensorflow, …)● Скачать википедию (requests, ...)● Написать код для распределённой Map-Reduce системы (Hadoop,

YT...)● Создать сайт (Flask, Django, …)● Создать приложение на телефон (Kivy, ...)

Page 12: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Jupyter Notebook — инструмент для создания документов-ноутбуков, которые сочетают в себе код и его выход, графики, текстовое описание, формулы.

Возможности:● редактирование кода в браузере, с подсветкой синтаксиса, автоотступами и автодополнением;

● запуск кода в браузере;● отображение результатов вычислений с медиа представлением (схемы, графики);

● работа с языком разметки Markdown и LaTeX.

Поддержка ядер:Python (по умолчанию), R, Julia, F#, C++, Java и др.

Page 13: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время
Page 14: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время
Page 15: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Jupyter Lab

Page 16: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Магия Jupyter

● %matplotlib inline — отображение графиков прямо в ноутбуке;

● %run code — выполнение python-кода;

● %time line — измеряет время работы строки;

● %%time — измеряет время работы ячейки;

● ! comand — выполнение shell-команд (в т.ч. внутри python-кода);

● object? — просмотр документации;

● %%python2, %%R, %%bash, … — выполнение кода других языков при условии, что установлены соответствующие ядра;

● %magic — полный список команд.

Полный список: http://ipython.readthedocs.io/en/stable/interactive/magics.html

Page 17: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Установка Jupyter

● Ubuntu и т.п.

sudo pip3 install jupyter

Установка Jupyter Lab:

sudo pip3 install jupyterlabjupyter serverextension enable --py jupyterlab --sys-prefix

Запуск: jupyter notebook или jupyter lab

● Просто поставьте Anaconda:

https://www.anaconda.com/download/

● Попробовать онлайн:

https://colab.research.google.com/

https://jupyter.org/try

Page 18: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Библиотеки для анализа данных

Необходимый минимум:● numpy — быстрые численные и матричные вычисления;● scipy (stats) — статистический пакет;● matplotlib — построение графиков.

Может пригодиться:● pandas — работа с табличными данными● seaborn — высокоуровневое построение графиков;● statsmodels — профессиональный стат. пакет;● sklearn — методы машинного обучения;

Для интересующихся:● keras — простая и мощная библиотека для нейронных сетей● ipywidgets — виджеты● plotly — интерактивные графики;● qgrid — возможности Excel в Python.

Page 19: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

3. Примеры реальных задач статистики и анализа

данных

Page 20: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Лекарства против респираторного заболевания

● 2 лекарства;

● несколько испытуемых.

Каждый испытуемый

● вдыхает первое лекарство с помощью ингалятора;

● проходит упражнение беговой дорожке. Измеряется время достижения максимальной нагрузки;

● после периода восстановления эксперимент повторяется со вторым лекарством.

Отличается ли время достижения максимальной нагрузки для исследуемых лекарств?

Метод решения: дисперсионный анализ.

Kanji G.K. 100 statistical tests, 2006.

Page 21: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Эффект лекарственного препарата

Исследуется влияние препарата на некоторое заболевание.

Часть испытуемых принимает препарат, часть — плацебо.

По окончании курса определяется, произошло ли выздоровление.

Отличается ли эффект препарата от эффекта плацебо?

Метод решения: анализ зависимостей.

Page 22: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Эффективность жаропонижающих средств

● 4 лекарства, в составе которых один и тот же активный ингридиент присутствует в разных дозировках;

● 4 группы из 15 морских свинок;

● В каждой группе фиксируется изменение температуры после

введения жаропонижающего.

Есть ли различия в действии препаратов?

Метод решения: дисперсионный анализ.

Bonnini S., Corain L., Marozzi M., Salmaso S. Nonparametric Hypothesis Testing - Rank and Permutation Methods with Applications in R, 2014.

Page 23: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Дизайн сайтов

● Решается вопрос об изменении дизайна интернет-магазина;

● Некоторым пользователям показывается сайт в новом дизайне, в то время как остальным — в старом;

● Верно ли, что в новом дизайне пользователи тратят меньше времени на оформление заказа?

Метод решения: дисперсионный анализ.

Page 24: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Диагностика диабета

Около 500 пациентов, для которых известна информация:

● Пол, возраст;

● Индекс массы тела;

● Среднее кровяное давление;

● Измерения сыворотки крови;

Нужно предсказать риск развития диабета в течении года.

Метод решения: регрессионный анализ.

Page 25: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Другие задачи анализа данных

Кредитный скоринг.

На основании данных о клиенте банк должен решить, выдавать ли кредит клиенту. Если да, то на каких условиях.

Рекомендательные системы.

По поведению пользователя предложить ему услуги, основываясь на предпочтениях других пользователей.

● «Вам так же может понравиться»;

● Персональная лента новостей, напр. Яндекс.Дзен;

● Персональные скидки, напр. сеть супермаркетов Виктория.

https://habrahabr.ru/company/yandex/blog/241455/

Page 26: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Другие задачи анализа данных

Предсказание продаж

На основании данных о продажах товаров, а так же других факторов, предсказать продажи на месяц вперед.

https://habrahabr.ru/company/ods/blog/327242/

Ранжирование результатов поиска

По запросу пользователя поисковая система подобрала 100500 ссылок на различные сайты. Требуется упорядочить их по степени релевантности запросу.

https://habrahabr.ru/search/?q=%5BFML%5D&target_type=posts

Page 27: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Нейронные сети

Медицина — диагностика рака кожи

Нейронную сеть обучили на 130 000 изображений, в которых выделено 2000 различных заболеваний кожи.

Точность диагностики 91%, как и у коллектива из 21 дерматолога из Стэнфордской медицинской школы.

https://geektimes.ru/post/285154/

Распознавание лиц на фотографиях

На фотографии нужно найти все лица и сопоставить их с персонами по известной базе изображений.

Пример: распознавание лиц в Facebook.

https://habrahabr.ru/post/306568/

Page 28: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Алиса

Голосовой помощник

от Яндекса.

https://alice.yandex.ru/

Описание технологии:

https://habrahabr.ru/company/yandex/blog/339638/

Page 29: О практической части курса. Python. · 2020-05-09 · %time line — измеряет время работы строки; %%time — измеряет время

Контакты

Сайт, на котором будут материалы: mipt-stats.gitlab.ioПочта, куда можно писать вопросы: [email protected]