Вы подписаны на Машинное обучение доступно
Отлично! завершите оплату для полного доступа к Машинное обучение доступно
Снова приветствуем Вас! Вы успешно авторизовались
Успех! Аккаунт активирован, и Вы имеете полный доступ к контенту.
Статистика (Statistics)

Статистика (Statistics)

in
  1. Определение Википедии:
Статистика – это отрасль знаний, наука, в которой излагаются общие вопросы сбора, измерения, мониторинга, анализа массовых статистических (количественных или качественных) данных и их сравнение; изучение количественной стороны массовых общественных явлений в числовой форме.

2. Статистическая метрика. Пример использования: "У нас есть 50 независимых значений, и мы хотим вычислить одну-единственную статистику – среднее значение".

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

Для начала установим специальную библиотеку pandas-profiling:

!pip install pandas-profiling

Затем импортируем несколько вспомогательных библиотек:

import pandas as pd # Вычитывание файла датасета
import pandas_profiling # Составление статистического профиля датасета

Импортируем данные и посмотрим, c каким многообразием бесшовно работает метод describe():

# Разрешите скачивать файл с помощью 'dl=1' после вопросительного знака-разделителя
df = pd.read_csv('https://www.dropbox.com/s/m47eybsrwi4y9zv/hour.csv?dl=1')
df.describe()

Обратите внимание: столбцы состоят из целых чисел (Integer – season), Вещественных чисел (Real Number – temp), бинарной категориальной переменной (workingday) и из Временных рядов (Time Series – dteday).

Вычислим основные показатели описательной статистики с помощью этого метода. Мы получим классический набор статистик Выборки (Sample) – Количество уникальных значений (Count), Среднее (Mean), Стандартное отклонение (Standard Deviation), Минимум (Minimum), Квантили (Quantile) .25 (25%), .5 (50%), .75 (75%), Максимум (Maximum).

Запустим профайлер Pandas, передав Датасет (Dataset) в качестве аргумента функции ProfileReport(). Вручную запрашивать такие данные, как объем выборки, количество признаков (Number of variables), пропусков (Missing cells) и проч. теперь нет необходимости, и Ваши драгоценные умственные ресурсы теперь можно направить на Разведочный анализ данных (EDA).

pandas_profiling.ProfileReport(df)

В разделе "Предупреждения" ('Warnings') Вы найдете переменные с высокой Корреляцией (Correlation); некоторые из них можно в дальнейшем исключить при обучении модели, Мощностью (Cardinality) и проч. Во вкладке "Репродукция" ('Reproduction') – сводку профайлинга (дата начала и окончания, длительность, версию pandas-profiling).

Профайлер пробегается и по каждой переменной: к примеру, для temp (Нормализованная температура в градусах Цельсия) мы проверяем:

  • Нормальность распределения с помощью графика слева. Это необходимо, чтобы в дальнейшем использовать параметрический алгоритм при обучении модели.
  • Индикация пропусков (Missing) – важный шаг при подготовке датасета: обнаружив и правильно заполнив пустующие ячейки, Вы "спасете" ценные неполные данные от удаления и в конечном итоге улучшите предсказательную способность модели.
  • Вероятно, параметр "Бесконечность" ('Infinite'), рассчитываемый только для вещественных чисел, отыскивает сильно выделяющиеся значения, которыми в некоторых источниках принято обозначать пропуски.
  • Среднее значение (Mean)
  • Минимум (Minimum)
  • Максимум (Maximum)
  • Количество нулей (Zeros). Нулями также порой обозначают пропуски.
  • Размер памяти (Memory size). Для больших датасетов метрика учитывается, поскольку влияет на скорость обучения модели.

Следующий интересный раздел – "Корреляции" ('Correlations'). В Машинном обучении принято использовать пять ее типов – r (коэффициент корреляции Пирсона), p (к. к. Спирмана), τ ("тау", к. к. Кендалла), φk ("фи-ка", к. фи-корреляции), φc ("фи-Крамер", к. к. Крамера). Чем ярче (краснее / синее) ячейка, тем сильнее выражена корреляция. Диагональные ячейки игнорируются, поскольку являются результатом расчета коэффициента между переменной и ее копией.

Эти и многие другие статистики Вы с легкостью можете получить с помощью замечательной библиотеки pandas-profiling. Теперь Вы знаете, в чем разница между "статистикой" и "статистиками".

Ноутбук с кодом, не требующим дополнительной настройки в Jupyter Lab 2.1.5, можно скачать по ссылке.

Фото: @jeremybishop