Структура данных
Содержание
Структура данных¶
Широкие и длинные таблицы¶
Одни и те же данные можно структурировать по-разному.
Как? Зависит от задачи..
Широкие таблицы¶
По колонкам - варианты одного фактора, по строчкам - варианты второго фактора. Если нужен третий фактор - повторяем всю табличку.
удобны для внесения данных
соответствуют итоговому рисунку, где сопоставляются изменения средних от двух факторов
Длинные таблицы¶
Набор данных преобразуется в виде матрицы размером [n_samples, n_features]
:
n_samples: Количество объектов (образцов, samples). Образцом может быть документ, изображение, звуко- или видеозапись, одно измерение прибора, обследование одного пациента, один образец живой ткани или что-то, что можно описать фиксированным набором количественных характеристик.
n_features: Количество характеристик (показателей, признаков, отличительных черт, features), которые могут быть использованы для количественного описания объекта. Количественные характеристики - это те, которые выражают числами с плавающей запятой. Значения типа категорий или да/нет также приводят к числовому выражению.
Готовая для анализа таблица (Tidy Table)¶
Это таблица длинного формата:
Каждая переменная формирует колонку.
Каждое наблюдение формирует строку.
Каждый тип наблюдений формирует таблицу.
Дополнительные требования:
Нет пропусков, ошибочных значений.
Сбалансированное количество наблюдений с альтернативными значениями факторов.
Наблюдения в строках логически упорядочены.
Визуализация отношений между характеристиками¶
В библиотеках pandas
и seaborn
включены инструменты для визуализации соотношений между разными характеристиками набора данных.
sns.pairplot()
позволяет попарно сопоставить значения нескольких показатели между собой, при этом раскрасить точки разными цветами по категориальному признаку.
sns.set_style('ticks')
D = sns.load_dataset('iris')
sns.pairplot(D, hue="species", height=2.5);
Если представить все измерения в ряд, и соединить параллельные координаты линиями, то объекты, входящие в кластер, выглядят ближе к друг другу.
from pandas.plotting import parallel_coordinates
parallel_coordinates(D, 'species');
Кривые Эндрюса (Andrews curves) позволяют представить многомерные данные в виде большого числа кривых, которые синтезируются как сигналы, восстановленные из разложения Фурье, спектральные коэффициенты которого берутся из данных. При окраске этих кривых в разные цвета можно визуализировать кластеризацию данных.
from pandas.plotting import andrews_curves
andrews_curves(D, 'species');
RadViz - еще один алгоритм для визуализации многомерных данных, основанный на метафоре минимизации натяжения струн. Если измерения представить как опорные точки на плоскости, а отдельные объекты как разноцветные шарики, соединенные с опорными точками резиночками, жесткость которых пропорциональна числовым значениям в данных измерениях, то на рисунке образцы будут отображены в позициях равновесия.
from pandas.plotting import radviz
radviz(D, 'species');
Подобные нестандартные представления данных помогают выдвинуть гипотезу о структуре данных, которую уже можно проверить стандартными статистическими методами.
См.также
Когда у вас есть готовая таблица, и вы еще не знаете, какой анализ уместнее провести, поможет графическое исследование данных (Data exploration, разведка данных).
Откройте приложение Data Voyager
Выберите набор данных Iris
Перетащите название колонки species на поле
colour
(цвет), а одну из колонок размера - на полеx
.
Vega - это декларативный формат для создания и публикации визуализаций. Визуализации в Vega описываются в формате JSON, из которых создаются интерактивные представления в HTML5 Canvas или SVG.
Ссылки