Menu
CoddyTech

Диаграммы размаха

Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 24 из 64.

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

11 точек, показывающих продолжительность выпусков подкаста, и рядом диаграмма размаха: прямоугольник от Q1, 39, до Q3, 47.5, разделённый линией медианы на отметке 43; нижний ус до 32 и верхний ус до 52, а отдельная точка на отметке 75 обозначена как выброс

ax.boxplot рисует его:

episodes = np.array([41, 36, 49, 43, 32, 46, 75, 40, 52, 38, 44])
fig, ax = plt.subplots()
ax.boxplot(episodes)
plt.show()

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

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

challenge icon

Задание

Средне

Семья записывала чтение в течение двух недель в файл reading.csv: в нём был один столбец с количеством минут для каждого человека. Программа считывает имя, а начальный код настраивает диаграмму.

  1. Постройте коробчатую диаграмму по столбцу этого человека.
  2. Выведите медиану и границы коробки — Q1 и Q3, округлив каждое значение до 2 знаков после запятой, как показано ниже.

Для Сэма, другого читателя, программа выводит:

Typical day: 97.5 minutes
Middle half: 90.5 to 108.75 minutes

и строит эту диаграмму (затем Coddy опишет вашу):

Коробчатая диаграмма с заголовком Reading: Sam и подписью Minutes сбоку: коробка примерно от 90 до 109, линия медианы около 98, «усы» от 87 до 128 и точки-выбросы на отметках 61 и 205

Попробуйте сами

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

reading = pd.read_csv("reading.csv")
name = input()
# Не изменяйте строки ниже
fig, ax = plt.subplots()
ax.set_title(f"Reading: {name}")
ax.set_ylabel("Minutes")

# Напишите свой код ниже
quiz iconПроверьте себя

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

Все уроки раздела Статистика для машинного обучения

Потренируйтесь самостоятельно: Онлайн-компилятор Python