воскресенье, 4 декабря 2016 г.

Непрерывные случайные величины

Урок: Непрерывные случайные величины

Транскрибация урока: В прошлом видео мы научились работать с дискретными случайными величинами. В этом давайте разберемся с тем, как работают непрерывные. Перед вами определение дискретной случайной величины, она принимает значение из счетного множества A с вероятностями, которые задаются с помощью функции вероятности, то есть для каждого ai из A, мы знаем, с какой вероятностью наша случайная величина принимает это значение. Если мы пытаемся обобщить это определение на случай непрерывных множеств, у нас возникает проблема со словом счетный. Дело в том, что по таким множествам, как множества всех действительных чисел или интервалы на действительной оси, счетными не являются. Поэтому вероятность любого события из такого множества будет в точности равна 0. Поэтому непрерывные случайные величины нельзя задавать с помощью функции вероятности. Их нужно определять как-то по-другому. Давайте посмотрим на два способа. Способ первый: функция распределения. Функцией распределения называется такая функция F (x), что она равна вероятности того, что случайная величина не превышает этого значения x. Что нужно знать о функциях распределения? Они всего выглядят примерно вот так. Поскольку это вероятность, они принимают значение от 0 до 1. Причем единице они равны где-то справа на числовой оси, а нулю где-то слева. Кроме того функции распределения всегда не бывают по аргументу x. Второй способ — это плотность распределения. Плотностью называется такая функция f (x), что ее интеграл по любому отрезку ab равен вероятности того, что наша случайная величина x попадает в этот отрезок. Плотности связаны с функциями распределения следующим образом: интеграл от плотности, от минус бесконечности до x равен функции распределения. Кроме того, интеграл от плотности по всей числовой оси всегда равен 1, потому что это вероятность того, что случайная величина принимает значение между минус бесконечностью и плюс бесконечностью. Естественно, наша случайная величина делает так всегда. Плотности, в отличие от функции распределения, могут выглядеть очень по-разному. Например, вот так… или вот так, или так, или даже так… Их существует огромное количество, они очень разнообразны. В разных семействах распределения плотности выглядят по-разному. Это их достоинство, потому что плотности визуально легче отличить друг от друга, чем функции распределения, функции распределения всегда примерно одинаковые. Давайте теперь рассмотрим несколько примеров непрерывных случайных величин. Пример 1: случайные величины, имеющие равномерное распределение на отрезке. Представьте, что вы подходите к перекрестку, на светофоре горит красный свет, пусть x — это время ожидания на светофоре до того, как вы сможете перейти дорогу. Если на светофоре нет счетчика, вы не можете угадать, сколько именно времени вам придется прождать. Это может быть любое число от 0 до 30 секунд, допустим, если это максимальное время ожидания на светофоре. Именно так устроено равномерное распределение. Случайная величина имеет равномерное распределение на отрезке ab, если она принимает любое значение на этом отрезке с одинаковой вероятностью. Вот так выглядит функция плотности вероятности для равномерной случайной величины. Она равна 1 / (b − a) везде на отрезке от a до b, и 0 везде вне этого отрезка. График этой функции представляет собой вот такой прямоугольник, длина которого равна b − a, а высота — 1 / (b − a). Если мы найдем площадь этого прямоугольника, перемножив длины сторон, мы получим 1. Прекрасно, поскольку интеграл от плотности распределение и должен быть всегда равен 1. Следующий пример — нормальное распределение. Представьте, что вы любите приходить на работу к 11 или может быть даже лучше к 12, но вряд ли вам удается каждый день входить в ваш рабочий кабинет с последним ударом часов. Скорее всего, точное время вашего прихода на работу немного варьируется. Иногда рано утром вас может разбудить ваш кот, и вы не сможете отказать себе в удовольствии прийти на работу пораньше, а иногда вы слишком долго стоите на светофоре и немного опаздываете. Таким образом, точное время вашего прихода на работу представляет собой результат взаимодействия большого количества слабо связанных друг с другом случайных факторов. Именно такие величины хорошо моделируются нормальным распределением или еще его называют Гауссовским. Нормальное распределение имеет два параметра: параметр μ отвечает за среднее (в нашем примере это среднее время прихода на работу), а параметр σ определяет разброс вокруг этого среднего. Вот так выглядит функция плотности вероятности нормального распределения. График этой функции немного напоминает эту шляпу. Варьируя значения параметров μ и σ можно влиять на форму графика функции плотности вероятности нормального распределения. μ отвечает за положение «шляпы» на числовой оси, а σ за ее форму. Если σ велико, то «шляпа» получается широкая и плоская, а если мало, то наоборот, узкая и высокая. А еще нормальное распределение может быть многомерным, то есть задавать не скалярную, а векторную случайную величину. В таком случае параметры нормального распределения тоже будут многомерными. Так, если случайная величина имеет размерность k, то μ также будет вектором размера k, а σ — матрицей размера k х k, которая должна быть еще к тому же положительна определена. Перед вами функция плотности вероятности нормального распределения и вот ее график для двумерного случая. Очень похож на эту «шляпу». Итак, в этом видео мы узнали, что такое функция распределения и функция плотности вероятности, а также рассмотрели два самых популярных непрерывных распределения — нормальное и равномерное на отрезке. Далее вам будет предложен IPython Notebook с примерами генерации случайных величин и построение разных красивых картинок о распределениях. Я советую вам его внимательнее изучить, это понадобится вам для домашней работы. Это последнее видео в этом уроке, поэтому давайте подведем небольшие итоги. В течение этого урока мы познакомились с механизмом, с помощью которого в математике изучаются случайные явления и рассмотрели подробно первую компоненту этого механизма — теорию вероятностей. Мы узнали, что такое случайные величины, и какие у них бывают распределения, а также познакомились с этой «шляпой». В следующем уроке мы продолжим говорить о случайности и займемся второй компонентой механизма — статистикой.

Часть: Вероятность и случайные величины

Модуль: Случайность

Описание модуля:  На этой неделе мы освоим базовые концепции теории вероятностей и статистики, которые необходимы для понимания механизма работы практически всех методов анализа данных. Мы разберёмся с самыми популярными распределениями, узнаем, какие явления ими описываются и какими статистиками оцениваются их параметры, а также научимся строить доверительные интервалы.

Курс: Математика и Python для анализа данных

Описание курса: Анализ данных и машинное обучение существенно опираются на результаты из математического анализа, линейной алгебры, методов оптимизации, теории вероятностей. Без фундаментальных знаний по этим наукам невозможно понимать, как устроены методы анализа данных. Данный курс направлен на то, чтобы сформировать этот фундамент. Мы обойдёмся без сложных формул и доказательств и сделаем упор на интерпретации и понимании смысла математических понятий и объектов.

Для успешного применения методов анализа данных нужно уметь программировать. Фактическим стандартом для этого в наши дни является язык Python. В данном курсе мы предлагаем познакомиться с его синтаксисом, а также научиться работать с его основными библиотеками, полезными для анализа данных.

В этом курсе вы познакомитесь с фундаментальными математическими понятиями, необходимыми для анализа данных, и получите начальный навык программирования на Python. Курс состоит из двух больших частей. Первая часть курса – практическая, она посвящена языку программирования Python. Вы познакомитесь с синтаксисом и идеологией языка, научитесь писать простые программы. Также вы узнаете о библиотеках, которые часто применяются на практике для анализе данных, например, NumPy, SciPy, Matplotlib и Pandas. Вторая часть курса посвящена таким разделам математики как линейная алгебра, математический анализ, методы оптимизации и теория вероятностей. При этом, упор делается на разъяснение математических понятий и их применение на практике, а не на вывод сложных формул и доказательство теорем.

Программа:
  • Введение
  • Знакомство с курсом
  • Python, уровень 0
  • Знакомство с синтаксисом Python
  • Производная и её применения
  • Немного обсуждений
  • Библиотеки Python и линейная алгебра
  • Библиотеки NumPy, Matplotlib, SciPy, Pandas
  • Линейная алгебра. Векторы
  • Линейная алгебра. Матрицы
  • Оптимизация и матричные разложения
  • Градиент и оптимизация гладких функций
  • Оптимизация негладких функций
  • Матричные разложения
  • Случайность
  • Вероятность и случайные величины
  • Статистики
  • Бонусный урок
Описание преподавателя:
  • Евгений Рябенко — кандидат физико-математических наук, доцент кафедры "Интеллектуальные системы" ФУПМ МФТИ, Data Scientist Фабрики данных Яндекса. Соавтор и преподаватель курса "Прикладной статистический анализ данных", который читается в МФТИ, МГУ и ВШЭ. Занимается анализом данных, био- и нейроинформатикой, кормит синиц.
  • Евгений Соколов — руководитель группы анализа неструктурированных данных в Yandex Data Factory. Окончил факультет ВМК МГУ в 2013 году, сейчас пишет диссертацию про матричные разложения в аспирантуре там же. Ведет практические занятия по машинному обучению на ВМК МГУ и читает лекции на ФКН ВШЭ. Преподаватель Школы Анализа Данных Яндекса.
  • Виктор Кантор – старший преподаватель кафедры “Алгоритмы и технологии программирования” ФИВТ МФТИ, руководитель исследовательской группы Yandex Data Factory. Ведет лекции и семинары в МФТИ на кафедрах “Алгоритмы и технологии программирования”, “Анализ данных”, “Банковские информационные технологии”, “Компьютерная лингвистика” и “Распознавание изображений и обработка текстов”.
  • Эмели Драль – преподаватель ШАД и руководитель исследовательской группы Yandex Data Factory. Окончила РУДН, факультет физико-математических и естественных наук, кафедра “Информационные технологии”. Разрабатывала учебные материалы и вела такие курсы как “Технологии разработки программных систем”, “Объектно-ориентированный подход к разработке программных систем”, “Методы интеллектуального поиска”. В МФТИ ведет семинары курса "Машинное обучение" на ФИВТ, кафедра “Алгоритмы и технологии программирования”.
Категория: Наука о данных

Описание категории: На специализациях и курсах по науке о данных преподаются основы интерпретации данных, проведения различных видов анализа, понимания и представления практических выводов. Начинающие и продолжающие учащиеся освоят такие темы, как качественный и количественный анализ данных, инструменты и методы манипулирования данными, а также алгоритмы машинного обучения.

Тематика: Анализ данных

Материал:



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

Линейная алгебра
Виктор Кантор:
  • Ильин, Ким. Линейная алгебра и аналитическая геометрия (1998) — МГУ.
  • Умнов. Аналитическая геометрия и линейная алгебра (2011) — МФТИ.
Евгений Рябенко:
  • Деммель. Вычислительная линейная алгебра. Теория и приложения (2001) — понятный кусок про матричные разложения.
Математический анализ
Виктор Кантор:
  • Ильин, Позняк, Основы математического анализа (2005) — МГУ.
  • Тер-Крикоров, Шабунин. Курс математического анализа (2001) — МФТИ, много примеров.
  • Иванов. Лекции по математическому анализу (2000) — МФТИ, очень короткое, но полное изложение.
Методы оптимизации
Евгений Рябенко:
  • Нестеров. Методы выпуклой оптимизации (2010) — математически строгое введение в оптимизацию от живого классика.
  • Boyd, Vandenberghe. Convex Optimization (2004) — идеальная книга по классической оптимизации, много интересных постановок задач.
  • Schneider, Kirkpatrick. Stochastic Optimization (2006) — стохастическая оптимизация во всём многообразии.
Теория вероятностей и статистика
Евгений Соколов:
  • Dekking, Kraaikamp, Lopuhaa, Meester. A Modern Introduction to Probability and Statistics, Understanding Why and How (2005) — доступная книга, описывающая базовые понятия, теоремы и методы; разбирается очень много примеров, тесно связанных с задачами машинного обучения и анализа данных.
Виктор Кантор:
  • Лагутин. Наглядная математическая статистика (2007) — в основном статистика, но есть и небольшое введение в теорию вероятностей. Стоит читать, кроме глав про классификацию и анализ данных, там изложение не слишком современно.
  • Чжун, АитСахлиа. Элементарный курс теории вероятностей. Стохастические процессы и финансовая математика (2007) — очень простое изложение.
  • Отличные лекции с мехмата Новосибирского Государственного Университета: http://www.nsu.ru/mmf/tvims/chernova/tv/tv_nsu07.pdf — теория вероятностей, http://www.nsu.ru/mmf/tvims/chernova/ms/ms_nsu07.pdf — математическая статистика.
Евгений Рябенко:
  • Diez, Barr, Çetinkaya-Rundel, Dorazio. Advanced High School Statistics (2015) — вводная книга, программа соответствует типичному курсу Statistics 101 хорошего западного университета.
  • DasGupta. Probability for Statistics and Machine Learning: Fundamentals and Advanced Topics (2011) — для смелого читателя, рассматриваются в том числе достаточно высокоуровневые методы.
Python
Эмели Драль:
  • Классические руководства по Python: https://docs.python.org/2/tutorial/ (2.7), https://docs.python.org/3/tutorial/(3.5)
  • Reitz. The Hitchhiker’s Guide to Python http://docs.python-guide.org/en/latest/ — довольно полное руководство, в котором рассматриваются вопросы от установки, работы с виртуальным окружением и работы в различных IDE до основных структур языка с примерами кода.
  • Google python class https://developers.google.com/edu/python/ — небольшой бесплатный онлайн-курс по Python для слушателей с минимальным опытом программирования.
Книги, для тех, кому захочется основательно изучить Python:
  • Lutz. Learning Python (2013) — с этой книги можно начинать изучение, она покрывает все основные структуры языка.
  • Lutz. Python Pocket Reference (2015) — подробный справочник.
Конспекты
https://drive.google.com/open?id=0B4sIH7qjgc24cVh0aTNnMEM0eXc

Интересные ресурсы
Ресурсы по материалам 1 недели:
Здесь http://bit.ly/29hALFk вы можете узнать, какие языки программирования сегодня являются самыми востребованным. Интересно, какое место в рейтинге занимает python?

Многие часто спрашивают, почему мы выбрали для специализации python, а не R? Мы подошли к выбору со всей ответственностью, рассмотрели плюсы и минусы обоих вариантов и остановились на python, в первую очередь, из-за простоты изучения, читаемости кода и универсальности языка. Здесь вы можете почитать статью о сравнении языков python и R http://bit.ly/29lkL5z

Ресурсы по материалам 2 недели:
На второй неделе курса Вам предстоит знакомство с библиотекой Pandas для работы с данными в виде таблиц, SciPy и NumPy для работы со статистикой, линейной алгеброй, оптимизационными задачами, а также Matplotlib для визуализации данных. Эти библиотеки очень функциональны, просты для изучения и популярны в мире анализа данных. Они настолько широко распространены, что часто можно встретить их использование для вот таких необычных задач: Python и красивые ножки http://bit.ly/2an3FTt

Занятное дополнение к материалам второй недели:
  • Знакомство с Python, Numpy, Scipy, Matplotlib http://bit.ly/2a4yd06
  • Курс Делфтского Технического Университета про Python и его использование в научных вычислениях http://bit.ly/29GCt4J
Ресурсы по материалам 4 недели:
Статистика — важный инструмент познания, дающий нам механизм порождения новых знаний из наблюдений за окружающим миром. Научиться им пользоваться может быть непросто; если материал лекций покажется Вам сложным, посмотрите, как понятия статистики объясняются на котиках http://bit.ly/29T53jd или в танце http://bit.ly/29PH9l5