October 25, 2022

Отличный способ визуализации простых структур Python

Качественный анализ не считается законченным без понятной визуализации. Начинающие исследователи данных часто сталкиваются с проблемой красивого отображения результатов работы. Однако есть простой совет, который поможет в большинстве ситуаций - сведите вопрос к тому, что знаете. Например, все умеют работать с датафреймами, так почему не визуализировать результаты в нем? Последний сам позаботится о том, чтобы данные были представлены в табличном виде. Ниже приведу примеры непривычного, но удобного способа отображения распространенных отчетных структур дата-аналитика.
Напомню, что списки можно задать в виде колонок, инициализировав датафрейм словарем:

import pandas as pd

df = pd.DataFrame({'список1':[1,2,3,4,5], 'список2':[6,7,8,9,10]})
df

Если же вы хотите отобразить словари, перечислите их в списке:

pd.DataFrame([{'col1':'one', 'col2':'two'}, {'col1':'three', 'col2':'four'}])

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

from sklearn.datasets import make_classification
from sklearn.tree import DecisionTreeClassifier
import numpy as np
from sklearn.model_selection import cross_validate

X, y = make_classification(n_samples=10000, n_features=5, n_informative=2, 
                           n_redundant=0, class_sep = 2, random_state=0, shuffle=True, 
                           flip_y=0.3, n_clusters_per_class=2)

pd.DataFrame(cross_validate(DecisionTreeClassifier(), X, y, scoring=['f1', 'accuracy']))

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

from sklearn.model_selection import RandomizedSearchCV

rs = RandomizedSearchCV(DecisionTreeClassifier(), {'max_depth':range(1,20)}, 
                        n_iter=5, scoring='f1')
rs.fit(X,y)

pd.DataFrame(rs.cv_results_)

Сравните с отображением без датафрейма:

rs.cv_results_

Сложно определить, что к чему... Поэтому чаще пользуйтесь датафреймами для визуализации простых структур Python.