Eda что это в программировании

Содержание

Что такое событийная архитектура

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

1. Что такое событийная архитектура

Шаблон управляемой событиями архитектуры (событийная архитектура, event-driven architecture, EDA) — это популярный шаблон распределенной асинхронной архитектуры, используемый для создания масштабируемых приложений. EDA состоит из разделенных одноцелевых компонентов, которые асинхронно получают и обрабатывают события.

2. Пример

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


Пример событийной архитектуры для сайта электронной коммерции. (1) — Продюсеры событий; (2) — Начальные события; (3) — Маршрутизаторы событий; (4) — События обработки; (5) — Потребители событий.

3. Компоненты

Управляемые событиями архитектуры включают пять ключевых компонентов: продюсеры (производитель) событий, начальные события и события обработки, маршрутизаторы событий и потребители событий. Продюсер публикует начальное событие в маршрутизаторе, который фильтрует и передает событие обработки потребителям. Сервисы продюсера и потребителя разделены, что позволяет масштабировать, обновлять и развертывать их независимо.

3.1 Продюсеры мероприятий

В этом примере производители событий представлены eCommerce сайтом, мобильным приложением и торговым терминалом. В принципе, все, что регистрирует факт и представляет факт как сообщение о событии, может быть продюсером.

3.2 События

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

События могут содержать либо состояние (приобретенный товар, его цена и адрес доставки), либо события могут быть идентификаторами (уведомление о том, что заказ был отправлен).

Событие обычно состоит из двух частей: 1) заголовок события включает такую ​​информацию, как имя события, отметка времени и тип события; 2) тело события предоставляет подробную информацию об обнаруженном изменении состояния.

3.3 Каналы

И начальные, и события обработки доставляются по каналам событий.

Первоначальные каналы событий могут быть TCP/IP-соединением или файлом (XML, JSON, электронная почта и т.д). Одновременно можно открыть несколько исходных каналов событий. Они читаются асинхронно, что позволяет обрабатывать события почти в реальном времени. События хранятся в очереди, ожидая последующей обработки маршрутизатором событий.

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

3.4 Маршрутизатор событий

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

Маршрутизатор событий также может запускать ряд утверждений. Например, если событие, которое поступает в механизм обработки событий, является идентификатором продукта, запас которого на складе ограничен, это может вызвать такие реакции, как «Заказать продукт» и «Уведомить персонал».

Важно отметить, что маршрутизатор событий не выполняет бизнес-логику, необходимую для обработки исходного события — он распределяет соответствующие инструкции (= события обработки) среди потребителей событий.

3.5 Потребители событий

В этом примере потребители событий представлены управленческой базой данных, финансовой системой и отделом по работе с клиентами.

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

4. Анализ шаблона

4.1 Масштабируемость: высокая

Каждый потребитель событий может масштабироваться отдельно, что обеспечивает точную масштабируемость.

4.2 Сложность разработки: высокая

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

4.3 Производительность: высокая

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

4.4 Тестируемость: низкая

Хотя индивидуальное юнит-тестирование не слишком сложно, для генерации событий требуется какой-то специализированный клиент или инструмент тестирования. Тестирование также осложняется асинхронным характером этого шаблона.

4.5 Модифицируемость: высокая

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

5. Событийная архитектура: примеры использования

5.1 Репликация данных между аккаунтами и регионами

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

5.2 Разветвление и параллельная обработка

Если у вас много систем, которые должны работать в ответ на событие, вы можете использовать архитектуру, управляемую событиями, для разветвления события без необходимости писать собственный для отправки каждому потребителю. Маршрутизатор отправит событие в системы, каждая из которых может обрабатывать событие параллельно с разными целями.

5.3 Мониторинг состояния ресурсов и оповещение

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

5.4 Интеграция гетерогенных систем

Если у вас есть системы, работающие в разных стеках, вы можете использовать управляемую событиями архитектуру для обмена информацией между ними без прямой связи. Маршрутизатор событий устанавливает косвенное обращение и взаимодействие между системами, поэтому они могут обмениваться сообщениями и данными, оставаясь при этом независимыми.

Источник

Исследовательский анализ данных: практическое руководство и шаблон для структурированных данных

Дата публикации Sep 24, 2019

Очень часто труднее всего рисовать не на рисунке, а на чистом белом листе бумаги.

Точно так же и для науки о данных можно задаться вопросом, с чего начать после получения набора данных. Здесь на помощь приходит исследовательский анализ данных (EDA).

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

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

Где находится EDA в процессе обработки данных

Прежде чем мы углубимся в EDA, важно сначала понять, как EDA вписывается в весь процесс обработки данных.

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

Поэтому мы можем понять цели EDA как таковые:

Чтобы получить понимание данных и найти подсказки из данных,

Чтобы лучше проиллюстрировать концепцию EDA, мы будем использоватьРоссманн магазин продаж «train.csv» данные из Kaggle, Учитывая, что задача состоит в прогнозировании продаж в магазине, наши цели EDA заключаются в следующем:

Общее описание EDA

Наш шаблон кода должен выполнить следующие шаги:

Необходимые зависимости как таковые:

Предварительная обработка данных

Для начала, мы читаем в нашем наборе данных и генерируем простой предварительный просмотр и статистику наших данных.

Вывод показывает, что у нас есть около 1 миллиона записей с 9 столбцами. Нет нулевых значений, но некоторые типы данных столбцов должны быть изменены. Как мы увидим позже, правильная установка типов данных может помочь нам в наших процессах обработки данных. В двух словах, существует три распространенных типа данных (категориальный, числовой и дата-время), и у нас есть разные процедуры EDA для каждого из них.

В нашей предварительной обработке мы изменили типы данных следующим образом:

Наше EDA начинается

После настройки типов данных мы готовы начать веселье (например, EDA).

Чтобы создать вечеринку, нам просто нужно скопировать, вставить и запуститьшаблон кодакоторый содержит различные функции, а затем запустить функциюEDAкоторый принимает в качестве входных данных фрейм данных Pandas.

Давайте теперь рассмотрим основные части результатов, чтобы понять, как использовать наши результаты EDA.

Пропущенные значения и дублированные записи

В нашем случае нет записи с пропущенными значениями.

Однако в случае пропуска значений код сгенерирует диаграмму, аналогичную приведенной ниже. Обратите внимание на пробелы подПользовательский ИДа такжеОписание; это недостающие значения. Таким образом, одним взглядом, мы можем узнать степень проблемы с отсутствующими ценностями.

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

В нашем случае также нет дублирующихся записей, на которые код будет указывать напрямую, печатая вывод «Не найдено дублированных записей»

В случае дублированных записей в выходных данных будет показано количество дублированных записей и предварительный просмотр этих записей.

Код для проверки дублированных записей:

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

Для справки о том, как обрабатывать пропущенные значения, вы можете обратиться к этомустатьяпоДжун Ву,

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

Категориальные данные EDA

Использование продаж в магазине Rossmann, например, столбецрекламныйуказывает, проводит ли магазин акцию в этот день. Подсчетрекламныйего уникальные значения показывают, что рекламные акции проводятся довольно часто, занимая около 40% (388 080/1 017 209) дней магазина. Это может означать, чторекламныйявляется важной особенностью в прогнозировании продаж.

Функция, генерирующая EDA для категориальных данных:categorical_eda,

Числовые данные EDA

Для числовых данных наш подход EDA заключается в следующем:

До запускаEDAфункция, мы создали новый столбецave_salesразделивПродажинаКлиенты, так что мы можем проанализировать средние продажи на одного покупателя за день в магазине.

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

Некоторые из пунктов, которые мы можем извлечь из результатов, включают:

Боксы также подтверждают, что есть / есть выбросы сПродажиболее 40000 илиКлиентыболее 7000 Поэтому мы можем провести проверку, чтобы убедиться, что это ошибка или были другие особые обстоятельства, приводящие к исключительным цифрам.

Мы также нанесли графики для каждого числового значения на скрипку по категориям, чтобы выяснить, например, влияниерекламныйнаПродажи,

Из приведенного выше сюжета для скрипки мы можем сделать вывод, что в дни продвижения по продажам продажи обычно увеличиваются, что видно из более широких участков сюжета для скрипки. Широкий участок участка около 0Продажидлярекламный= 0, вероятно, из-за закрытых магазинов. ЗапускEDAфункция снова позже после удаления записей соткрыто= 0 показывает, что широкого сечения вблизи 0 больше нет, что подтверждает нашу гипотезу.

Последний вывод для числовых данных EDA представляет собой график распределения парных соединений.

Чтобы генерировать дальнейшие идеи, мы запустили функциюnumeric_edaи добавил параметрОттенок = «DayOfWeek», Это позволяет нам раскрасить наш попарный график по каждому дню недели.

ВключаяДень неделиНа графике мы заметили, что воскресные ave_sales (обозначенные розовым цветом) относительно более постоянны, чем в другие дни. Следовательно, это то, что может быть дополнительно исследовано и рассмотрено как предиктор.

Временной ряд ЭДА

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

Для удобства анализа наш код автоматически суммирует числовые данные по дням, месяцам и годам, прежде чем строить графики. Это достигается благодаряМетод повторной выборки Pandas,

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

На дневном графике мы видим, что к концу декабря 2013 года есть выбросы. Это также отражается на месячном графике.

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

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

Если вы пропустилиссылка на шаблон кодавот и снова.

И наконец, обратите внимание, что в зависимости от постановки задачи по науке о данных, вы можете выполнить дополнительные шаги EDA. Тем не менее, шаблон кода должен быть в состоянии покрыть базовую EDA и быстро освоить

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

Источник

Разведочный анализ данных (EDA), ч. 1

Разведочный анализ данных (Exploratory Data Analysis) – предварительное исследование Датасета (Dataset) с целью определения его основных характеристик, взаимосвязей между признаками, а также сужения набора методов, используемых для создания Модели (Model) Машинного обучения (Machine Learning).

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

Теперь стало немного понятнее, почему менеджеры по продажам, звонящие из банков, ведут себя так странно? Они располагают именно таким набором данных о Вас.

Довольно увесистый датасет для восприятия, особенно если учесть, что записей в нем – более 40 тысяч. Однако приступим! Для начала импортируем датасет и посмотрим на «шапку». Параметр ‘sep’ используется, чтобы указать на нестандартный разделитель, в данном случае – точку с запятой, которая используется в Apple Numbers.

Итак, нам предстоит пройти несколько этапов разведочного анализа, и среди них будут взаимоисключающие, потому его придется импортировать несколько раз.

Удаление дубликатов

Дублирующие записи не только искажают статистические показатели датасета, но и снижают качество обучения модели, потому удалим полные дублирующие вхождения. Для начала уточним, сколько записей в датасете с помощью свойства Pandas.DataFrame.shape :

Удалим дублирующие записи с помощью Pandas.drop_duplicates() и обновим данные о размере данных:

Pandas нашел и удалил 12 дубликатов. Хоть число и небольшое, все же качество данные мы повысили.

Обработка пропусков

Стоит помнить, что в случае, если пропусков у признака слишком много (более 70%), такой признак удаляют. Проверим, насколько полны наши признаки: метод isnull() пройдется по каждой ячейке каждого столбца и определит, кто пуст, а кто нет, составив датафрейм такого же размера, состоящий из True / False. Метод mean() суммирует все значения True, определит концентрацию пропусков в каждом столбце. На 100 мы умножаем, чтобы получить значение в процентах:

Среди всех признаков слишком много пропусков оказалось в переменной ‘День’:

Возраст 0.000000
Работа 0.801438
Семейный статус 0.194288
Образование 4.201477
Кредитный дефолт 0.000000
Ипотека 0.000000
Займ 0.000000
Контакт 0.000000
Месяц 0.000000
День недели 0.000000
Длительность 0.000000
Кампания 0.000000
День 96.320672
Предыдущий контакт 0.000000
Доходность 0.000000
Колебание уровня безработицы 0.000000
Индекс потребительских цен 0.000000
Индекс потребительской уверенности 0.000000
Европейская межбанковская ставка 0.000000
Количество сотрудников в компании 0.000000
y 0.000000
dtype: float64

Таким образом, переменная подлежит удалению с помощью drop():

Существует несколько способов обозначить пропуски, и зачастую создатели датасета не описывают данные в достаточной мере, и определять, как обозначены пропуски, приходится вручную. Из встреченных доселе обозначений приведу следующие:

Встроенные методы Pandas позволяют с легкостью справиться с первыми двумя разновидностями таких пробелов. Разберемся для начала с категориальными переменными, объединив их в один вектор. Список получится совсем уж нелогичный, но это не столь важно в данной ситуации: мы лишь ищем способы обозначения пропуска.

Из общего списка уникальных значений этих переменных пропуски обозначаются словом «Неизвестно». Для числовых переменных пропуски – число 999 или пустая ячейка.

Процесс обработки пропусков, к счастью, можно сократить с помощью sklearn.impute.SimpleImputer . Мы выбираем все категориальные переменные и применяем стратегию «[вставить вместо пропуска] самое распространенное значение»:

Такой код можно сократить еще с помощью Пайплайнов (Pipeline), однако здесь обработаем каждую переменную построчно.

Признаки, принадлежащие к булевому типу данных, обрабатываются алгоритмом тем же образом. Целевую переменную Y мы не обрабатываем (если в этом столбце есть пропуски, такие строки стоит удалить):

Подобным образом заполняются пустоты в числовых переменных, только стратегия теперь – «вставить среднее значение».

Метод isnull() пробегается по каждой ячейке каждого признака и определяет, пустая ли ячейка, возвращая True / False. Метод mean()

Обнаружение аномалий

Самый легкий способ обнаружить выбросы – визуальный. Мы построим разновидность графика «ящик с усами» для одной из числовых переменных – «Возраст»:

Скучковавшиеся окружности в верхней части изображения – и есть аномалии, и от них, как правило, избавляются с помощью квантилей:

Во второй части статьи о разведочном анализе Вы узнаете про:

Ноутбук, не требующий дополнительной настройки на момент написания статьи, можно скачать здесь.

Источник

Исследовательский анализ данных с помощью Python: данные медицинского назначения

Дата публикации Jul 5, 2019

Введение

Давайте посмотрим на значение, которое скрыто за этим термином.

Что такое EDA

Исследовательский анализ данных(EDA) представляет собой набор подходов, который включает в себя одномерные, двумерные и многомерные методы визуализации, уменьшение размерности, кластерный анализ.

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

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

Во время исследования вы должны смотреть на свои данные с максимально возможногодьявол всегда в деталях,

Какие методы EDA используются

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

мотивация

Шаг 1. Определите ваши цели

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

Сегодня мы будем работать сМедицинское назначение не показываетнабор данных, который содержит информацию о назначениях пациентов.

Запись каждого пациента характеризуется следующими особенностями:

Мы стремимся понятьЗачемлюди, которые получают инструкции по лечению, не появляются в следующий раз. Другими словами, что является фактором, способствующим пропущенным встречам?

Но это долгосрочная цель. Прежде чем копать глубже, мы должны попытаться ответить на следующие вопросы:

Подготовьте ваше рабочее пространство

В этом уроке мы попробуем визуализировать данные в Python. Я предполагаю, что вы знаете, как работать с базовыми библиотеками Python. Давайте импортируем те, которые нам понадобятся для работы с данными:

Мы будем использоватьPlotlyв качестве основной библиотеки графиков. Это пакет Python с открытым исходным кодом, который расширяет функциональность d3.js и stack.gl и предлагает сложные графики, которые могут удовлетворить требования любого проекта. Будучи высокоуровневым, с Plotly удобнее работать, и по этой причине я предпочитаю его matplotlib.

Мы будем использовать его в автономном режиме, чтобы не создавать учетные записи и ограничиваться попытками построения графиков.

Чтение данных

После того, как вы загрузили данные из Kaggle, следующим шагом будет создание DataFrame для панд на основе данных CSV. Вотруководствочто позволит вам комфортно работать с пандами

Давайте удалим некоторые столбцы, которые нам не нужны, чтобы ускорить обработку данных:

Профилирование данных

Перед очисткой данных давайте проверим качество данных и типы данных каждого столбца.

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

использование head() метод для отображения первых пяти строк кадра данных:

У нас 110527 записей и 12 функций.

Очистка и подготовка данных

После того как вы проверилитипы данныхиз функций, вы, возможно, заметили, что функции `ScheduledDay` и` AppointmentDay` имеют тип данных `object`.

Чтобы упростить работу с датами, давайтепреобразовать тип«ScheduledDay» и «AppointmentDay» дляdatetime64 [нс], Это необходимо для получения доступа к полезным методам и атрибутам.

Для этого передайте список имен столбцов, которые следует рассматривать как столбцы даты, параметру `parse_dates` метода` read_csv`. Таким образом, они будут отформатированы в удобочитаемом виде:

Кроме того, рекомендуется преобразовать строковые типы данных в категориальные, поскольку этот тип данных помогает сэкономить немного памяти, уменьшив размер информационного кадра. Использование в памяти категориальных переменных пропорционально количеству категорий + длина данных.

Кроме того, в большинстве статистических библиотек Python категориальный столбец будет считаться категориальной переменной.

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

Уточните названия столбцов

Возможно, вы заметили, что наши функции содержат ошибки ввода.

Давайте переименуем имена столбцов с ошибками:

Теперь, когда наш набор данных аккуратен и точен, давайте перейдем к расширению набора данных новыми функциями.

Характеристика инженерного

Аналогичным образом добавьте функции «Месяц», «Час»:

Работа с пропущенными значениями

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

В качестве альтернативы, если вы хотите проверить отдельный столбец на наличие нулевых значений, вы можете сделать это следующим образом:

Тем не менее, каковы стратегии для устранения пропущенных значений?

Анализируя существующие методы и подходы, я пришел к выводу, что наиболее популярными стратегиями работы с недостающими данными являются:

Изучение набора данных

После того, как вы очистили данные, пришло время более тщательно их проверить.

Выполните следующие шаги:

Печать данных

Лучшие графики длявизуализация пропорцийэто круговые диаграммы, кольцевые диаграммы, древовидные карты, области с накоплением и гистограммы. Давайте использовать круговую диаграмму:

Ясно, что не явились только 20,2% пациентов, а 79,8% присутствовали в день назначения.

участок с усамилучше всего справляется с этой задачей:

С помощью этого интерактивного графика вы можете видеть, что средний квартиль данных (медиана) является37,

Это означает, что 50% пациентов моложе 37 лет, а остальные 50% старше 37 лет.

Верхний квартильозначает, что 75% значений возраста падают ниже55,Нижний квартильозначает, что 25% возрастных значений падают ниже18,

Диапазон значений возраста от нижнего до верхнего квартиля называетсямежквартильный размах, Из сюжета можно сделать вывод, что 50% пациентов в возрасте от 18 до 55 лет

Если вы посмотрите набакенбарды, Вы будете находить наибольшее значение (исключая выбросы), которое102,

Для этого мы можем использовать тот же график, но он сгруппирован по столбцу «Присутствие».

Источник

Операционные системы и программное обеспечение