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

Post on 08-Jul-2020

13 views 0 download

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

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

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

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

2019

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2). Excel (deprecated)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

… и т. д. ...

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

Практические задания нужно выслать на почту mipt.stats@yandex.ru

Тема письма

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

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

Например,

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

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

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

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

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

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

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

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

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

А также:

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

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

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

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

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

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

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

Jupyter Lab

Магия 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

Установка 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

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

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

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

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

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

данных

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

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

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

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

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

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

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

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

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

Kanji G.K. 100 statistical tests, 2006.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Алиса

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

от Яндекса.

https://alice.yandex.ru/

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

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

Контакты

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