Решать онлайн методом гаусса: Онлайн калькулятор. Решение систем линейных уравнений. Метод Гаусса

МФК

Данный значительно обновлённый курс лекций предназначен для студентов с широким познавательным интересом к устройству и деятельности такой сложнейшей системы общества, как государство в широком смысле, близком к слову «страна».Для понимания государства-страны как особой системы нужен широкий междисциплинарный подход. Нужно свести вместе знания, накопленные в философии, антропологии и психологии (мир, его вещественная и мысленная части, человек в мире, его сознание и подсознание), в социальной философии (общество, его архетипы бытия, социальные побуждения, целеполагание, социогенетика, социодинамика), в истории (возникновение государственных форм), в политологии (государство, государственное управление), в экономике (блага, деньги, стоимость, бюджет, налоги, банки), в системологии (система,…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Захаров В. К. (профессор)

Где: Главное здание, ауд. 1315

Когда: Среда 15:10–16:40

Цель изучения курса – формирование у обучающихся современного педагогического мышления. Педагогическое мышление рассматривается как владение определенным набором схем, позволяющим в конкретных условиях строить адекватное педагогическое действие. Задачи дисциплины и средства их решения. Ввести обучающихся в круг современных проблем, сдерживающих развитие педагогической науки и педагогической практики и актуализировать для них предлагаемые подходы к их решению. Сформировать представление о педагогическом мышлении как оперировании социотехническими схемами. Оснастить мышление слушателей рядом наиболее употребительных рабочих схем, позволяющих решать типовые проблемы, возникающие в педагогической деятельности и достигать социально значимых целей образовательной практики.

Результаты: владение сх…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Боровских А. В. (профессор)

Где: Главное здание, ауд. 1408

Когда: Среда 15:10–16:40

Курс по искусственному интеллекту  Теория вероятностей является одним из основных разделов математики, она изучает в абстрактной форме закономерности, которыми обладают случайные события массового характера. Теория вероятностей применяется в физике, химии, биологии, медицине, экономике, военном деле, разнообразных технических дисциплинах, теория вероятностей также является одной из фундаментальных основ искусственного интеллекта.Возникновение теории вероятностей как науки относится к середине XVII века и связано с именами Паскаля, Ферма и Гюйгенса, хотя задачи, связанные с азартными играми, возникли и рассматривались еще раньше.

В XVIII веке Бернулли и Муавр доказали первые предельные теоремы, с именем Пуассона также связаны пуассоновское распределение и пуассоновский процесс, с именем Гаусса – нормальная случайная величина…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Кондратенко А. Е.

Где: Главное здание, ауд. 1624

Когда: Среда 15:10–16:40

Катастрофы – это резкие изменения в процессах различной природы, происходящие в них при непрерывном изменении параметров системы.Основная цель курса – рассказать студентам различных специальностей об основных идеях и достижениях математической теории катастроф, иллюстрируя их разнообразными примерами, дать представление о её применениях в различных науках.Изложение материала будет основано на анализе примеров процессов и явлений различной природы, где методы и достижения теории катастроф позволили получить новые интересные результаты.

Материалы
Программа курса
Вопросы к зачету

Курс читают
Богаевский И. А. (доцент)

Где: Главное здание, ауд. 1208

Когда: Среда 15:10–16:40

Курс знакомит с профессиональным консалтингом в области управления предприятиями. В центре рассмотрения находится современная крупная компания. Анализируется широкий спектр технологий консалтинга, приемы и методы проектной работы. Объем курса: 12 лекций + разработки бизнес-кейсов (факультативно). Цель курса:Продемонстрировать тесную связь прикладной математики, теоретической информатики и экономики предприятий в создании интегрированных систем управления реальным бизнесом.Оценить потенциал применения искусственного интеллекта в управлении предприятими.Ознакомить с основами производства, работой предприятий различных отраслей и видов деятельности, с подходами к анализу и моделированию производственной деятельности;Ознакомить с основами экономики предприятия, дать краткое ведение в бухга.

..

Материалы
Программа курса
Вопросы к зачету

Курс читают
Зеликин Н. В. (научный сотрудник)

Где: Главное здание, ауд. 1610

Когда: Среда 15:10–16:40

Как известно, компьютерное моделирование природных пластовых систем используется для прогнозирования разработки месторождений углеводородов и мониторинга их эксплуатации. Создаются различные гидродинамические симуляторы нового поколения, способные моделировать сложнейшие задачи. В основе этих программ лежат результаты фундаментальных исследований в гидродинамике и новейшие достижения в компьютерных технологиях. Моделирование нефтяных и газовых месторождений – одна из сложнейших наукоёмких задач, для решения которой требуется широкий диапазон знаний: физика растворов, термодинамика, подземная гидродинамика, вычислительная математика и компьютерные технологии.

В курсе лекций рассматриваются актуальные проблемы, которые входят в приоритетные направления развития науки и техники Российской…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Колдоба Е. В. (

доцент)

Где: Главное здание, ауд. 1224

Когда: Среда 15:10–16:40

Настоящий курс создан по инициативе компании Postgres Professional – вендора СУБД PostgreSQL в России на основе учебного пособия «PostgreSQL. Основы языка SQL», написанного Н.П. Моргуновым. Учебный материал излагается в расчете на использование системы управления базами данных PostgreSQL. Этот курс может быть полезен широкому кругу студентов и специалистов, желающих ознакомиться с основами языка SQL в среде системы управления базами данных PostgreSQL.Курс начинается с разработки простых запросов на языке SQL, а в конце рассмотрены такие конструкции как общие табличные выражения, агрегатные и оконные функции, тип данных JSON, фактически обеспечивающий возможность применения PostgreSQL в качестве noSQL-системы.

Учебные примеры используют демонстрационную базу данных «Авиаперевозки», содержим…

Материалы
Программа курса
Вопросы к зачету
PostgreSQL Основы языка SQL.pdf
Вводная лекция.pdf
Запись всех занятий есть на сайте postgrespro.ru.pdf
Инструкция по подготовке к изучению SQL.pdf
Список практических заданий.pdf

Таблицы и диаграмма базы данных ClientRental.pdf

Курс читают
Барашков И. С.

Где: 2 учебный корпус, ауд. П-6

Когда: Среда 15:10–16:40

Курс по искусственному интеллекту  Настоящий курс посвящён важнейшему современному источнику знаний о мире — энциклопедии «Википедия».Цель настоящего курса — формирование у слушателей знаний о принципах функционирования Википедии и основах технологий, лежащих в её основе. В ходе курса слушатели должны приобрести умения определять достоверность и авторитетность источников энциклопедической информации, возможность использования материалов с учётом авторско-правовых ограничений, осуществлять взаимодействие в рамках массовых сетевых сотрудничеств.

В курсе рассматривается история создания Википедии, этапы её развития, основные характеристики и значение в современном мире. Те, кто привык пользоваться Википедией как информационным ресурсом, смогут узнать, благодаря чему её статьи отличаются актуальностью и достоверностью. Раскрываю…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Гуляев А. В.
Раевский Е. Н.
Гуляев Д. А.

Где: 2 учебный корпус, ауд. П-8а

Когда: Среда 15:10–16:40

Курс посвящен квантовой теории сложных систем — интенсивно развивающейся междисциплинарной области знаний. Квантовая теория, возникшая как удивительно стройное объяснение парадоксов микромира, включает в себя классическую физику; ее практические применения окружают нас повсюду — это вся микроэлектроника, компьютеры, смартфоны, лазеры. На рубеже веков, 20-30 лет назад, возник удивительный проект квантового компьютера, который претендует на предсказательное моделирование сложных систем, вплоть до поведения живых существ. В курсе будет рассказано об основных тезисах квантовой теории с минимумом математического аппарата, о современном состоянии проекта квантового компьютера и о его приложениях, уже работающих в настоящее время, таких как квантовая криптография, телепортация, и новые математиче…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Ожигов Ю. И. (профессор)

Где: 2 учебный корпус, ауд. П-8

Когда: Среда 17:00–18:30

Курс по искусственному интеллекту  В рамках курса рассматриваются задачи и проблемы в междисциплинарной области искусственного интеллекта, возникавшие и исследовавшиеся на разных этапах ее развития, и подходы к их решению. Одной из центральных проблем, изучаемых в рамках курса, является формальное представление знаний разного вида, в том числе экспертных. Обзор современных методов машинного обучения дается с точки зрения их применения в различных научных и практических задачах.Курс рассчитан на тех, кто ничего не знает об искусственном интеллекте или имеет о нем очень приблизительное представление. Никакого программирования и математики не будет. Будет понятно, а иногда интересно и увлекательно. Приходите, если хотите, чтобы искусственный интеллект перестал казаться непонятным волшебством.Для получения зачета нужно посетить…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Баева Н. В.
Груздева Н. В.

Где: 2 учебный корпус, ауд. П-14

Когда: Среда 15:10–16:40

Курс по искусственному интеллекту  В ходе освоения курса слушатели получат знания о системах Гибридного Интеллекта (синонимы/ близкие понятия: Augmented Intelligence, Human-Centered Intelligence, Collaborative Intelligence), их возможностях и ограничениях, условиях применимости и сценариях использования. Формулируются и обсуждаются отличия систем автономного интеллекта (General AI, Human-Like AI) и гибридного интеллекта, дается представление об основных компонентах архитектуры таких систем. Изучаются необходимые понятия математических основ гибридного интеллекта, на основе которых дается решение базовых проблем разработки таких систем. Обсуждаются сценарии использования систем гибридного интеллекта, приводятся соответствующие им примеры.Никаких предварительных знаний не требуется.Методика проведения МФК «Гибридный интеллект…

Материалы
 Программа курса
Вопросы к зачету

Курс читают
Рыжов А. П.

Где: 2 учебный корпус, ауд. 510

Когда: Среда 17:00–18:30

В исторической ретроспективе раскрыты мотивы возникновения и способы решения задачи защиты информации. Раскрываются взаимосвязи коммерции, военных и разведывательных операций, а также методов создания защищённых информационных каналов в разных странах. Выделены результаты и преимущества, полученные за счёт использования и вскрытия защищённых каналов связи. Изложены математические основанияработы криптографических протоколов….

Материалы
Программа курса
Вопросы к зачету МФК Черепнев М.А..docx

Курс читают
Черепнев М. А.

Где: 2 учебный корпус, ауд. 510

Когда: Среда 15:10–16:40

Курс «Управление проектами» разработан таким образом, чтобы предоставить возможность молодым людям, еще не имеющим опыта проектной работы, получить теоретические знания и попробовать сотрудничать с другими слушателями и преподавателем в различных проектных ролях. Курс дает представление о психологических особенностях проектной команды. Подробно рассматриваются темы, связанные с управлением рисками. В ходе обучения даются практические рекомендации по эффективному участию в проектах и руководству проектными командами. Деловая игра позволит почувствовать практическую сторону управленческой деятельности, может быть основана на примере, выбранном студентами – слушателями курса.Цель настоящего курса — дать студентам базовые знания в области управления проектами.Курс предусматривает освоение осно…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Зива С. В.

Где: 2 учебный корпус, ауд. П-8

Когда: Среда 15:10–16:40

Курс по искусственному интеллекту  Информационная инженерия – дисциплина, занимающаяся созданием, распространением, анализом и использованием информации, данных и знаний в системах. Компоненты информационной инженерии относятся ко многим областям науки и технологий, таким как информатика, искусственный интеллект, теория управления, обработка сигналов, теория информации, робототехника, телекоммуникации, вычислительная техника и электротехника. Четвёртая промышленная революция принесла массовое внедрение киберфизических систем во все сферы жизни, включая интернет вещей. Всё это новое, располагаясь в цифровом сетевом пространстве, вынуждает нас к погружению в цифровую среду и адаптации в ней. Цифровая среда обладает новыми свойствами: трансграничностью и скоростью распространения информации, стремящейся к скорости мысли, а так…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Гуляев А. В.
Раевский Е. Н.

Где: 2 учебный корпус, ауд. П-8а

Когда: Среда 17:00–18:30

Курс по искусственному интеллекту  Цель настоящего курса – познакомить слушателей с основными аспектами международной информационной безопасности, исходя из подходов Российской Федерации в этой сфере. Актуальность рассмотрения данной проблематики обусловлена тем, что решение вопросов обеспечения информационной безопасности носит междисциплинарный характер, и находится на пересечении как естественных и технических, так и гуманитарных наук. Одной из важнейших задач, без решения которой чрезвычайно сложно обеспечить должный уровень информационной безопасности, это налаживание взаимодействия между учеными, техническими специалистами и лицами, принимающими решения.Во время занятий предполагается, начав с рассмотрения процессов, сопровождавших возникновение и развитие информационно-коммуникационных технологий, постепенно охватить…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Шаряпов Р. А.
Карасев П. А.

Где: 2 учебный корпус, ауд. П-5

Когда: Среда 15:10–16:40

В лекционном курсе «Физические основы медицинских технологий» рассматриваются основные направления развития современного медицинского оборудования и биомедицинских технологий. В рамках курса студенты знакомятся с новыми подходами и направлениями развития современного медицинского оборудования, основными блоками, математическим методами обработки и восстановления изображений, а также с открывающимися принципиально новыми возможностями в рамках современного развития технологий МРТ, ПЭТ томографов и мн. др. Основное внимание уделяется современному оборудованию, используемому в диагностических целях; физическим основам современных медицинских приборов, их устройству и принципам действия, а также знакомству с современными биомедицинскими технологиями, включая новые/разрабатываемые методы ди…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Панченко В. Я. (зав.кафедрой)
Пирогов Ю. А. (профессор)
Чувилин Д. Ю. (профессор)
Пантелеев М. А. (профессор)
Шкуринов А. П. (доцент)
Осминкина Л. А.
Гапочка М. Г. (доцент)
Ларичев А. В. (доцент)
Ирошников Н. Г. (доцент)
Бутылин А. А. (доцент)
Берловская Е. Е. (старший научный сотрудник)

Где: Корпус физического факультета, ауд. ЦФА

Когда: Среда 17:00–18:30

Целью курса «Рентгеновская астрофизика: гипотезы и открытия» является помощь студентам в формировании мировоззрения об окружающем нас мире на основе рентгеновского излучения из космоса. Ведь именно рентгеновское излучение доходит до землян из глубокого космоса в силу его высокой проникающей способности. Поэтому оно несет нам информацию о ранних стадиях эволюции Вселенной, позволяет проверить гипотезу Большого Взрыва, формирования звезд и звездных систем. Далее рассматривается ряд недавних открытий в области рентгеновской астрономии, которые перевернули взгляд на современную картину мира. Это и астрофизические струи со сверхвысокими скоростями, соединяющие черные дыры с областями звездообразования, и неожиданное обнаружение пульсаций от ультраярких рентгеновских объектов. Особое внимание в …

Материалы
Программа курса
Вопросы к зачету

Курс читают
Сейфина Е. В.

Где: Корпус физического факультета, ауд. 5-27

Когда: Среда 15:10–16:40

Курс по искусственному интеллекту  Компьютерное зрение, распознавание речи, «понимание» текста и многие другие формы узкоспециализированного искусственного интеллекта (ANI — artificial narrow intelligence) сегодня являются частью повседневной жизни. В основе этих технологий лежит машинное обучение, которое используется для построения алгоритмов, которые могут обучаться. В настоящее время одним из самых перспективных методов машинного обучения считается глубокое обучение (нейронные сети). За последние несколько лет глубокое обучение нашло применение практически во всех областях науки: от биологии и физики до лингвистики и философии.Этот 12-недельный курс даст студентам высокоуровневый обзор современных методов искусственного интеллекта и их применения в различных научных областях. Демонстрации и викторины помогут студентам р…

Материалы
Программа курса
Вопросы к зачету

Курс читают
Елизаров С. Г.
Запуниди С. А.

Где: Корпус физического факультета, ауд. ЦФА

Когда: Среда 15:10–16:40

Курс по искусственному интеллекту  Термин «искусственный интеллект» (далее – ИИ) известен почти каждому современному человеку. Технологии машинного перевода текстов на иностранные языки, распознавания речи, узнавания владельца смартфона по отпечатку пальца или лицу прочно вошли в нашу жизнь. Активно ведутся перспективные разработки в области беспилотного транспорта, робототехники и др., а также систем «сильного» ИИ, которые бы могли самостоятельно обучаться решению широкого круга новых задач, не ограниченных одной областью или направлением.В курсе рассматриваются основные идеи, на которых строятся технологии ИИ от «интеллектуальных» языков программирования до глубоких свёрточных искусственных нейронных сетей. Даётся обзор методов ИИ, прежде всего, математических. Рассматривается как история ИИ, так и современные достижения …

Курс читают
Грязнов А. Ю.

Где: Корпус физического факультета, ауд. СФА

Когда: Среда 17:00–18:30

Западноевропейская научная революция XVI–XVII вв. по праву считается одним из величайших событий в истории человечества. В ходе этой революции были заложены основы естествознания нового типа, достижения которого за несколько веков радикально изменили жизнь людей. Как оказалась возможной эта революция? Можно ли ее свести к тому, что ученые, отбросив догмы и предрассудки, обратились к изучению природы? Чем изучение закономерностей природных процессов отличается от познания законов природы? Почему создатели новой науки считали, что для познания законов природы необходимо усовершенствовать человеческое мышление? Каким образом ученым удалось добиться поддержки общества и ряда властных структур и почему они при этом поссорились с католической церковью? Какую роль ученые сыграли в решении важнейш…

Материалы
Программа курса
Вопросы к зачету
МФК. Менцин. Обращение к студентам 2022.pdf
Менцин. МФК_лекция_1.pdf
Менцин. МФК_Лекция_2.pdf
Менцин. МФК_лекция_3.pdf
Менцин. МФК_лекция_4доп.pdf
Менцин. МФК_лекция_5.pdf
Менцин. МФК. Лекция 6 _дополн.pdf
Менцин. МФК_лекция_7.pdf
Менцин. МФК_лекция_8.pdf
Шкловский_Бруно 1.pdf
Шкловский_Бруно 2.pdf
Менцин. МФК_лекция_10. pdf
Постоянный Планк 1.pdf
Постоянный Планк 2.pdf
Отрицательные рыбы Дирака.pdf
Менцин. МФК_лекция_11.pdf
Менцин. МФК_лекция_12.pdf
Кондрашева Д.И.pdf
МФК. Гарвей.pdf
Менцин. МФК_лекция_9.pdf
Менцин. МФК_лекция_13.pdf
Менцин. МФК_лекция_14.pdf
Менцин. МФК_лекция_15.pdf
Менцин. МФК_лекция_16.pdf

Курс читают
Менцин Ю. Л.

Где: Корпус физического факультета, ауд. 5-18

Когда: Среда 15:10–16:40

Гистограммы и графики распределения в Python / Хабр

Построение графика одной переменной кажется простой задачей. Но насколько это просто в действительности — эффективно отобразить данные со всего одним измерением? Долгое время я обходился стандартной гистограммой, которая показывает расположение значений, разброс и форму распределения данных (нормальное, скошенное, двухпиковое и др). Но недавно я столкнулся со случаем, когда гистограмма не помогла. И тогда понял, что настало время узнать больше о построении графиков. Я нашёл в сети отличную бесплатную книгу о визуализации данных и попробовал некоторые методы. Я решил, что (и мне, и другим людям) будет полезно, если я поделюсь этими знаниями и составлю руководство по построению на Python гистограмм и их крайне полезной альтернативы — графиков распределения плотности (density plots). Подробности — к старту нашего курса по анализу данных.

Я подробно рассмотрю применение гистограмм и графиков распределения в Python при помощи библиотек matplotlib и seaborn. На протяжении всего руководства исследуем набор реальных данных, потому что богатство доступных в сети материалов не даёт права отказываться от них! Покажем данные NYCflights13 с более чем 300000 наблюдений за авиарейсами из Нью-Йорка в 2013 году. Сосредоточимся на отображении одной переменной — задержки прибытия рейсов в минутах. Весь код этой статьи — в Jupyter Notebook на GitHub.

Перед построением графика всегда полезно изучить данные. Считаем данные во фрейм данных pandas и отобразим первые 10 строк:

import pandas as pd
# Read in data and examine first 10 rows
flights = pd.read_csv('data/formatted_flights.csv')
flights.head(10)

Задержки рейсов указаны в минутах. Отрицательные значения означают, что самолёт совершил посадку с опережением графика (они часто его опережают в те самые дни, когда мы никуда не летим!) Всего у нас более 300000 рейсов. Наименьшая задержка составляет минус шестьдесят минут, наибольшая — сто двадцать минут. В другом столбце — названия авиалиний для сравнения.


Разумно начать изучение данных с построения гистограммы. При построении гистограммы переменная делится на бины, точки данных подсчитываются в каждом бине, эти бины откладываются по оси x. По оси y откладывается число объектов. Здесь бины отражают диапазон времени задержки рейса, а по y откладывается число рейсов, попавшее в этот интервал. Важнейший параметр гистограммы — ширина бина (binwidth). Всегда стоит попробовать разную ширину и выбрать самую подходящую.

В Python базовую гистограмму может построить или matplotlib, или seaborn. В приведённом ниже коде показаны вызовы функций в обеих библиотеках, которые создают эквивалентные графики. При вызове функции plot мы указываем ширину бина, выраженную в числе бинов. Для этого графика я использую бины длиной 5 минут, что означает, что количество бинов будет равно диапазону данных (от -60 до 120 минут), делённому на ширину бина, 5 минут (bins = int(180/5)).

# Import the libraries
import matplotlib.pyplot as plt
import seaborn as sns
# matplotlib histogram
plt.hist(flights['arr_delay'], color = 'blue', edgecolor = 'black',
         bins = int(180/5))
# seaborn histogram
sns.distplot(flights['arr_delay'], hist=True, kde=False, 
             bins=int(180/5), color = 'blue',
             hist_kws={'edgecolor':'black'})
# Add labels
plt.title('Histogram of Arrival Delays')
plt.xlabel('Delay (min)')
plt.ylabel('Flights')

Для базовых гистограмм я использовал бы код matplotlib, поскольку он проще. Но в нашем примере для создания разных распределений мы воспользуемся функцией seaborn distplot. Она хорошо подходит для знакомства с разными вариантами.

Почему я взял за ширину бина 5 минут? Чтобы найти оптимальное значение, нужно попробовать разные варианты! Ниже я привожу код для создания такого же графика в matplotlib с различными значениями ширины бина. В конечном счёте нет верного или неверного ответа на вопрос о его ширине. Я выбрал 5 минут, потому что считаю, что это значение лучше всего отражает распределение.

# Show 4 different binwidths
for i, binwidth in enumerate([1, 5, 10, 15]):
    # Set up the plot
    ax = plt.subplot(2, 2, i + 1)
    # Draw the plot
    ax.hist(flights['arr_delay'], bins = int(180/binwidth),
             color = 'blue', edgecolor = 'black')
    # Title and labels
    ax.set_title('Histogram with Binwidth = %d' % binwidth, size = 30)
    ax.set_xlabel('Delay (min)', size = 22)
    ax.set_ylabel('Flights', size= 22)
plt.tight_layout()
plt. show()

Ширина бина существенно влияет на вид графика. Слишком узкие бины загромождают его, а слишком широкие скрывают нюансы данных. Matplotlib выбирает оптимальную ширину бина автоматически, однако я предпочитаю выбирать значение вручную, перебирая варианты. Поскольку здесь нет ни единственно верного, ни заведомо неправильного выбора, попробуйте разные варианты и посмотрите, какой из них лучше всего подходит к вашему набору данных.


Гистограммы отлично подходят для начала исследования одной переменной, взятой из одной категории. Тем не менее, когда мы хотим сравнить распределения одной переменной по нескольким категориям, гистограммы не всегда удобны для восприятия. Например, если мы хотим сравнить распределения задержек прибытия рейсов разных авиалиний, построение гистограмм на одном графике плохо подходит для этой цели:

(Заметим, что ось y нормализована с учётом различий в количестве рейсов разных авиалиний. Для этого мы используем аргумент norm_hist = True при вызове функции sns. distplot).

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


Вариант 1. Сравнительные гистограммы (Side-by-Side Histograms)

Вместо наложения гистограмм друг на друга мы можем расположить их рядом. Для этого создадим списки (list) задержек рейсов по авиалиниям, а затем передадим вызываемой функции plt.hist список таких списков. Разным авиалиниям мы присвоим разные цвета (color) и наименования (name), чтобы их проще было отличить друг от друга. Всё это, начиная с создания списков, делает вот такой код:

# Make a separate list for each airline
x1 = list(flights[flights['name'] == 'United Air Lines Inc.']['arr_delay'])
x2 = list(flights[flights['name'] == 'JetBlue Airways']['arr_delay'])
x3 = list(flights[flights['name'] == 'ExpressJet Airlines Inc.']['arr_delay'])
x4 = list(flights[flights['name'] == 'Delta Air Lines Inc.']['arr_delay'])
x5 = list(flights[flights['name'] == 'American Airlines Inc. ']['arr_delay'])
# Assign colors for each airline and the names
colors = ['#E69F00', '#56B4E9', '#F0E442', '#009E73', '#D55E00']
names = ['United Air Lines Inc.', 'JetBlue Airways', 'ExpressJet Airlines Inc.'',
         'Delta Air Lines Inc.', 'American Airlines Inc.']
# Make the histogram using a list of lists
# Normalize the flights and assign colors and names
plt.hist([x1, x2, x3, x4, x5], bins = int(180/15), normed=True,
         color = colors, label=names)
# Plot formatting
plt.legend()
plt.xlabel('Delay (min)')
plt.ylabel('Normalized Flights')
plt.title('Side-by-Side Histogram with Multiple Airlines')

По умолчанию при передаче списка списков matplotlib размещает столбцы вплотную. В данном случае я изменил ширину бина до 15 минут, чтобы не перегружать график. Но даже с такой модификацией этот график неэффективен. Слишком много информации нужно обрабатывать одновременно, положение столбцов не совпадает с их метками, и сравнить распределения данных по авиалиниям всё равно сложно. Построение графика предполагает простоту интерпретации зрителем. Нам это не удалось! Давайте рассмотрим второй вариант решения.


Вариант 2. Столбчатые графики (Stacked Bars)

Вместо построения столбцов данных рядом мы можем расположить их друг над другом при помощи параметра stacked = True при вызове гистограммы:

# Stacked histogram with multiple airlines
plt.hist([x1, x2, x3, x4, x5], bins = int(180/15), stacked=True,
         normed=True, color = colors, label=names)

Этот вариант ничуть не лучше! В каждом бине представлены доли всех авиалиний, однако сравнить их всё ещё невозможно. Вот например, у кого больше доля в бине от -15 до 0 минут: у United Air Lines или же у JetBlue Airlines? Я этого пока не знаю и аудитория тоже. И вообще, я не фанат столбчатых диаграмм. Они обычно трудны для понимания. (Полезными они могут быть лишь в отдельных случаях, например при визуализации соотношений). Ни один из этих гистограммных графиков не приблизил нас к решению. Настало время попробовать графики распределения.


Для начала — что это за графики? График распределения можно назвать непрерывным сглаженным аналогом гистограммы. Самый распространённый вариант построения такого графика — ядерная оценка плотности. В этом методе для каждой точки данных строится непрерывная кривая — ядро. Все эти кривые складываются вместе, чтобы получить единую гладкую оценку плотности. Чаще всего используется гауссово ядро (которое даёт колоколообразную кривую Гаусса в каждой точке данных). Если вы, как и я, находите это описание немного запутанным, взгляните на следующий график:

Ядерная оценка плотности (Источник)

Каждый чёрный вертикальный штрих у оси x представляет точку данных. Отдельные ядра (в данном случае — гауссовы) построены над каждой точкой красными пунктирными линиями. Их суммирование даёт общий график распределения, показанный сплошной синей линией.

По оси x здесь, как и на гистограмме, откладывается значение переменной. Но что показывает ось y? Ось y на графике плотности — это функция плотности вероятности для ядерной оценки плотности. Нужно помнить, что это именно плотность вероятности, а не сама вероятность. Разница между ними заключается в том, что плотность вероятности — это вероятность на единицу по оси x. Для преобразования этих данных в обычную вероятность нам нужно найти площадь под кривой для определённого интервала на оси x. Несколько смущает то, что поскольку это плотность вероятности, а не вероятность, ось y может принимать значения больше единицы. Единственное требование к графику плотности — чтобы общая площадь под кривой интегрировалась в единицу. Я привык рассматривать ось y на графике распределения как величину, применимую только для относительных сравнений между категориями.


Графики распределения в Seaborn

При построении графиков распределения в seaborn можно использовать функцию distplot или kdeplot. Я снова использую distplot, ведь он строит несколько распределений одним вызовом функции. Например, можно построить график распределения задержек всех рейсов поверх соответствующей гистограммы:

# Density Plot and Histogram of all arrival delays
sns.distplot(flights['arr_delay'], hist=True, kde=True, 
             bins=int(180/5), color = 'darkblue', 
             hist_kws={'edgecolor':'black'},
             kde_kws={'linewidth': 4})

График распределения и гистограмма, построенные при помощи seaborn

Кривая — график распределения, который, по сути, является сглаженным аналогом гистограммы. По оси y откладывается плотность. Гистограмма по умолчанию нормализована. Поэтому её масштаб по оси y соответствует масштабу графика распределения.

У графика распределения есть величина, аналогичная ширине бина в гистограмме. Её называют шириной полосы пропускания (bandwidth). Эта величина позволяет изменить отдельные ядра и значительно влияет на общий вид графика. Библиотека построения графиков (plotting library) позволяет выбрать ширину полосы пропускания (по умолчанию используется «оценка по Скотту» (scott)). В отличие от гистограмм здесь я обычно полагаюсь на значение по умолчанию. Тем не менее ничто не мешает нам попробовать разную ширину полосы и выбрать оптимальную. Значение по умолчанию на этом графике, ‘scott’, действительно выглядит как наилучший вариант.

График распределения плотностей, показывающий различные полосы пропускания

Заметим, что с увеличением полосы пропускания распределение становится более сглаженным. Мы также видим, что, несмотря на ограничение данных от -60 до 120 минут, график плотности выходит за эти пределы. Это одна из возможных проблем графика плотности. Поскольку мы строим распределение в каждой точке данных, генерируемые данные могут выходить за рамки исходного диапазона. Таким образом, мы получаем на оси x нереалистичные значения, которых не было в исходном наборе данных! Мы также можем изменить ядро, что, в свою очередь, изменит распределение в каждой точке. Тем не менее в большинстве случаев ядро Гаусса по умолчанию и стандартная оценка полосы пропускания работают хорошо.


Вариант 3. График распределения

Теперь мы знаем, что представляет собой график распределения плотностей. Посмотрим, поможет ли он визуализировать задержки рейсов разных авиалиний. Чтобы показать эти распределения на одном графике, мы можем перебрать все авиалинии, каждый раз вызывая distplot. При этом мы присвоим параметру kde (kernel density estimate, ядерная оценка плотности) значение True, а параметру hist (гистограмма) — значение False. Код для построения графика распределения для множества авиалиний приведён ниже:

# List of five airlines to plot
airlines = ['United Air Lines Inc.', 'JetBlue Airways', 'ExpressJet Airlines Inc.'',
         'Delta Air Lines Inc.', 'American Airlines Inc.']
# Iterate through the five airlines
for airline in airlines:
    # Subset to the airline
    subset = flights[flights['name'] == airline]
    # Draw the density plot
    sns.distplot(subset['arr_delay'], hist = False, kde = True,
                 kde_kws = {'linewidth': 3},
                 label = airline)
# Plot formatting
plt. legend(prop={'size': 16}, title = 'Airline')
plt.title('Density Plot with Multiple Airlines')
plt.xlabel('Delay (min)')
plt.ylabel('Density')

Наконец-то мы нашли эффективное решение! Этот график в меньшей степени загромождён, что позволяет проводить сравнения. Получив желанный график, мы можем сделать вывод. Рейсы всех этих авиалиний задерживаются почти одинаково: нет в жизни счастья! Но в нашем наборе данных есть и другие авиалинии, и мы можем построить немного другой график, который покажет ещё один дополнительный параметр графиков распределения плотности — затенение графика (shading).


Графики распределения с затенением (Shaded Density Plots)

Заполнение графика распределения плотностей позволяет нам различать перекрывающиеся распределения. Этот подход не всегда оправдан, но он может подчеркнуть разницу распределений. Чтобы затенять графики плотности, мы передаём shade = True в аргументе kde_kws при вызове функции distplot.

sns.distplot(subset['arr_delay'], hist = False, kde = True,
                 kde_kws = {'shade': True, 'linewidth': 3}, 
                  label = airline)

Затенять или не затенять — вот в чём вопрос… И ответ на него зависит от решаемой задачи! В нашем случае затенение не лишено смысла, поскольку помогает нам рассмотреть оба графика в области их перекрытия. Наконец, мы получили полезную информацию: рейсы Alaska Airlines показывают тенденцию к опережению графика чаще, чем United Airlines. Теперь вы знаете, чьи рейсы выбирать!


Штрих-диаграммы (Rug Plots)

Если вы хотите увидеть каждое значение в распределении, а не только сглаженный график плотности, вам также пригодится штрих-диаграмма.


В русском языке термин “штрих-диаграмма” обычно используется для графиков, которые строят при расшифровке рентгенограмм. Однако, по сути, там тот же принцип построения: штрихи проставляются вдоль оси абсцисс. Термин же “ковровая диаграмма”, более близкий к англоязычной формулировке, в русском языке означает совершенно другой график в трёхмерном пространстве.

Она показывает каждую точку на оси x и визуализирует все исходные значения. Преимущество использования distplot в seaborn — возможность добавления штрих-диаграммы при вызове rug = True с одним параметром (и небольшим форматированием).

# Subset to Alaska Airlines
subset = flights[flights['name'] == 'Alaska Airlines Inc.']
# Density Plot with Rug Plot
sns.distplot(subset['arr_delay'], hist = False, kde = True, rug = True,
             color = 'darkblue', 
             kde_kws={'linewidth': 3},
             rug_kws={'color': 'black'})
# Plot formatting
plt.title('Density Plot with Rug Plot for Alaska Airlines')
plt.xlabel('Delay (min)')
plt.ylabel('Density')

Если точек данных много, штрих-диаграмма становится слишком сложной, однако она полезна в некоторых проектах, так как позволяет увидеть каждую точку данных. Штрих-диаграмма также наглядно показывает, как график распределения «создаёт» данные там, где их нет. Это связано с распределением ядерной оценки плотности в каждой точке данных. Это распределение может выходить за рамки начального диапазона данных, создавая впечатление, что некоторые рейсы Alaska Airlines прибывают и раньше и позже, чем в действительности. Нужно помнить об этой иллюзии и информировать о ней аудиторию!


Смею надеяться, что в этом посте я перечислил набор полезных для вас вариантов визуализации значений одной переменной для одной и более категорий. Мы могли бы построить и другие одномерные («однопеременные») графики: эмпирические графики кумулятивной плотности (empirical cumulative density plots) и графики квантиль-квантиль (quantile-quantile plots). Однако в этой статье остановимся на гистограммах и графиках распределения (со штрих-диаграммами!). Если даже эти варианты кажутся вам слишком сложными, не отчаивайтесь. После некоторой практики вам станет проще сделать правильный выбор. Если потребуется, вы всегда можете обратиться за помощью. Более того, часто оптимального выбора не существует, а «верное» решение зависит и от личных предпочтений, и от цели визуализации данных.

Оставить комментарий