Как стать автором
Обновить
7
1
Александр @sawabear_a

Пользователь

Отправить сообщение

Привет, вы нашли корреляции и благодаря им можете построить модель для предсказания просмотров статьи, например.

Но в статье не выявлены причины такого количества просмотров. Очевидно, что тэги, длина статьи и длина заголовка при мусорном контенте совершенно не работают. Анализ стоило проводить в разрезе популярный/не популярный автор - кажется, что вы бы обнаружили, что правила, работающие для популярных авторов, совершенно не работают для других.

Дело не в том, что у не популярных будет просмотров меньше в любом случае (так как у них нет своей аудитории), а в том, что выявленные корреляции не работают в принципе, если статья не получила охваты.

Хотелось бы код в скрытые блоки. И добавить к блокам объяснение

Круто, спасибо)

Не увидел (пропустил) где эффект от внедрения автомл? Как изменится диаграмма распределения времени ДС по трем типам задач?

И как оценили это распределение на имеющихся графиках? Это экспертная оценка?

Привет) сетка на графиках очень дискуссионная тема - зачастую считается, что ей лучше пренебречь... Графики в данной статье визуализируют тренды, диапазоны метрик, периоды и не призваны дать быструю оценку значений в конкретной точке) Давай посмотрим как они будут выглядеть с сеткой:

Блок кода
plt.figure(figsize=(10,5), dpi=300) # Изменим размер подложки графика и качество

sns.lineplot(data=df_predict, x='month', y='metrics1', hue='year', palette=own_palette, hue_order=df_predict.year.unique()[::-1]) # Отрисуем график

x_unique = df_predict.month.unique()
plt.xticks(ticks=x_unique, fontsize=6) # Изменим подписи делений оси абсцисс
plt.xlim(x_unique.min(), x_unique.max()) # Ограничим ось абсцисс
plt.xlabel('Месяц', fontsize=10) # Изменим подпись оси абсцисс

y_ticks, y_label = plt.yticks() # Получим индексы и подписи оси ординат
plt.yticks(ticks=y_ticks, labels=['{:.0f}'.format(i) for i in y_ticks/10**3], fontsize=8) # Изменим подписи делений оси ординат
plt.ylim(4*10**4, 13*10**4) # Ограничим ось ординат
plt.ylabel('Метрика №1, тыс.шт.', fontsize=12) # Изменим подпись оси ординат

plt.title('Годовое изменение метрики №1 в период 2006-2011 годов', fontsize=16) # Изменим название графика
plt.legend(title='Год', loc='upper right', fontsize=8) # Укажем название и положение легенды и порядок категорий
plt.tight_layout() # Растянем график на всю подложку
plt.grid(True) # Отобразим сетку

Блок кода
plt.figure(figsize=(10,5), dpi=300) # Изменим размер подложки графика и качество

sns.scatterplot(
    data=df_predict, x='metrics2', y='metrics1', hue='year', hue_order=df_predict.year.unique()[::-1], palette=own_palette,
    size='metrics3', sizes=(10, 150),
) # Отрисуем график

x_ticks, x_label = plt.xticks() # Получим индексы и подписи оси ординат
plt.xticks(ticks=x_ticks, labels=['{:.1f}'.format(i) for i in x_ticks/10**6], fontsize=6) # Изменим подписи делений оси абсцисс
plt.xlim(0.1*10**6, 1*10**6) # Ограничим ось абсцисс
plt.xlabel('Метрика №2, млн.шт.', fontsize=10) # Изменим подпись оси абсцисс

y_ticks, y_label = plt.yticks() # Получим индексы и подписи оси ординат
plt.yticks(ticks=y_ticks, labels=['{:.0f}'.format(i) for i in y_ticks/10**3], fontsize=8) # Изменим подписи делений оси ординат
plt.ylim(4*10**4, 13*10**4) # Ограничим ось ординат
plt.ylabel('Метрика №1, тыс.шт.', fontsize=12) # Изменим подпись оси ординат

plt.title('Зависимость метрики №1 от метрики №2', fontsize=16) # Изменим название графика
legend_handles, legend_labels = plt.gca().get_legend_handles_labels() # Получим индексы и подписи оси ординат
# Изменим подписи легенды
legend_labels[0] = 'Год'
legend_labels[7] = 'Метрика №3, млн.шт.'
legend_labels[8:] = ['{:.0f}'.format(float(l)*100) for l in legend_labels[8:]]
plt.legend(legend_handles, legend_labels, loc='lower right', fontsize=8) # Укажем название и положение легенды и порядок категорий
plt.tight_layout() # Растянем график на всю подложку
plt.grid(True) # Отобразим сетку

Я согласен, что так проще и быстрее оценить значение в точке, но вопрос в том, что нужно ли нам это? В любом случае всё зависит от твоего вкуса и запроса заказчика)

Дополнительно хочу показать, как можно акцентировать внимание на некоторых значениях, которые могут нести инсайты)

Блок кода
plt.figure(figsize=(10,5), dpi=300) # Изменим размер подложки графика и качество

sns.lineplot(data=df_predict, x='month', y='metrics1', hue='year', palette=own_palette, hue_order=df_predict.year.unique()[::-1]) # Отрисуем график
plt.axvline(8, 0, 1, color='black', alpha=0.5, dashes=(5, 5))

x_unique = df_predict.month.unique()
plt.xticks(ticks=x_unique, fontsize=6) # Изменим подписи делений оси абсцисс
plt.xlim(x_unique.min(), x_unique.max()) # Ограничим ось абсцисс
plt.xlabel('Месяц', fontsize=10) # Изменим подпись оси абсцисс

y_ticks, y_label = plt.yticks() # Получим индексы и подписи оси ординат
plt.yticks(ticks=y_ticks, labels=['{:.0f}'.format(i) for i in y_ticks/10**3], fontsize=8) # Изменим подписи делений оси ординат
plt.ylim(4*10**4, 13*10**4) # Ограничим ось ординат
plt.ylabel('Метрика №1, тыс.шт.', fontsize=12) # Изменим подпись оси ординат

plt.title('Годовое изменение метрики №1 в период 2006-2011 годов', fontsize=16) # Изменим название графика
plt.legend(title='Год', loc='upper right', fontsize=8) # Укажем название и положение легенды и порядок категорий
plt.tight_layout() # Растянем график на всю подложку

plt.savefig(f'../plot_combine_advanced_line.jpeg') # Сохраним график

Например, здесь мы хотим сказать, что практически внутри каждого года пиковое значение метрики №1 пришлось на восьмой месяц, а затем происходило резкое снижение... Поэтому мы на 2011 год спрогнозировали пик в этом же месяце, хотя год назад пик был в июле)

Привет, твоя мысль про важность шрифта/кегля на графике звучит как отличная тема для статьи)

Многие аспекты в визуализации это очень субъективные вещи и в конечном итоге важно восприятие конечного заказчика. Если он лучше воспринимает (условно) крупный кегль, цветные подписи осей, столбчатые диаграммы - важно к этому прислушаться)

Возможно, подписи оси абсцисс можно было бы сделать крупнее.. Учту замечание для будущих статей)

Информация

В рейтинге
1 176-й
Откуда
Кемерово, Кемеровская обл., Россия
Дата рождения
Зарегистрирован
Активность