О практической части курса. python. · 2020-05-09 · %time line —...
TRANSCRIPT
Математическая статистика (ФБМФ/ФМХФ)
О практической части курса. 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.
… и т. д. ...
Отправка решений
Практические задания нужно выслать на почту [email protected]
Тема письма
[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Почта, куда можно писать вопросы: [email protected]