April 16, 2022
Визуализация без наложений
Рассмотрим простой способ визуализации зависимости двух переменных, когда точек на графике слишком много и они накладываются друг на друга, что значительно осложняет интерпретацию результатов. Для демонстрации используем набор данных о стоимости калифорнийской недвижимости:
from sklearn.datasets import fetch_california_housing df, y = fetch_california_housing(return_X_y=True, as_frame=True) df['price'] = y df.head()
Отобразим связь между медианным доходом и ценой:
df.plot(kind='scatter', x = 'MedInc', y='price', figsize=(20,7))
В целом тенденция прослеживается, однако график "перенасыщенный". Самое простое - разбить одну из величин на группы и смотреть среднее/медианное значение другой для каждой группы:
df['MedInc_gr'] = (df['MedInc']/1).round() df.groupby('MedInc_gr')['price'].median().plot(figsize=(20,7))
Кроме округления для разбиения можно использовать функции qcut, cut библиотеки Pandas:
import pandas as pd df['MedInc_gr'] = pd.cut(df['MedInc'],10) df.groupby('MedInc_gr')['price'].median().plot(figsize=(20,7))