Архив метки: результат

Двухэтажные название колонок

После комплексной группировки таблицы pandas Pynhon dataframe командой groupby напрмер применив такую строку

# сколько заказов у каждого покупателя
agg_func_count = {'order_id': ['count'],
                    'sum_product': [ 'sum']}
count_orders_customer = df.groupby('customer_id')['order_id', 'sum_product'].agg(agg_func_count).reset_index()

Получаем двухэтажное название колонок в итоговой таблице.

Ещё они называются иерархические индексы

Пример dataframe с двухэтажными колонками

Выглядит это очень красиво. Но при попытке обратиться к колонке по названию, возникает сложность.

Что же делать?

Трансформировать иерархические названия столбцов pandas

Вот непонятная, но эффективная строка для этого

count_orders_customer.columns = ['_'.join(col).rstrip('_') for col in count_orders_customer.columns.values]

И получим результат сглаживания

Не земетили подвох?
Статья понравилась?

Как переименовать подписи осей к графику Python Plot

Часто в прикладных задачах машинного обучения, данные из понятных человеку словесных, переводятся намеренно в более понятный для компьютера числовой формат.

И тогда простые значения типа “женат”, “в разводе”, “холост”, превращаются в безликие “1”, “2”, “3”.

Для задач обучения моделей машинного интеллекта и последующего прогнозирования это – как раз то, что нужно.

Но вот после получение результатов, их надо представить заказчикам. А заказчики – это обычные люди. Им намного органичнее видеть значения в первоначальном, символьном, виде.

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

...
ax = plt.subplot(1,3,j)
ax.set_xticks([0, 1], labels=['остался', 'ушел'])
...
plt.show()
Статья понравилась?

Как вывести на печать матрицу графиков Python

В задаче категоризации методом KMeans огромное количество графиков.
Вот способ вывести их в сетке 4 х Х.
(Количество окошек в строке можете изменять сами ,грамотно заменяя цифру 4 на нужную Вам.

Вывод графиков в сетке я уже не один раз делал.

На в этом задаче машинного обучения это особенно пригодилось.

Вообще, задача категоризации относится к задачам машинного обучения “без учителя”.

Это означает то ,что мы заранее не знаем, какой получится результат.

Сколько и какие категории в выборке данных сформируются.

# импорт библиотек и общие настройки
import pandas as pd
import seaborn as sns
import math
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
import itertools


# отключаем некритичные уведомления
import warnings
warnings.filterwarnings('ignore')
# показывать до 40ка колонок
pd.set_option('display.max.columns', 40)
# установка формата вывода на дисплей численных значений
pd.options.display.float_format = '{:,.2f}'.format

# чтение данных
try:
    # Yandex path
    data = pd.read_csv('/datasets/gym_churn.csv')
except:
        # local path !! в кавычках укажите свой путь к файлу !!!
        data = pd.read_csv(r"C:\Users\eddyd\Downloads\Praktikum\Datas_Eleventh_Project\gym_churn.csv")


# убираем колонку с признаком **оттока**
data_clusters = data.drop(columns=['Churn'])

# создаём объект класса scaler (нормализатор)
scaler = StandardScaler()
# обучаем нормализатор и преобразуем набор данных
x_sc = scaler.fit_transform(data_clusters)

# задаём число кластеров, равное 5, и фиксируем значение random_state для воспроизводимости результата
km = KMeans(n_clusters=5, random_state=0) 
labels = km.fit_predict(x_sc) # применяем алгоритм к данным и формируем вектор кластеров

# сохраняем метки кластера в поле нашего датасета
data_clusters['cluster_km'] = labels

# setup size plot
sns.set(rc = {'figure.figsize':(20,5)})
plt.rcParams.update({'font.size': 12})

# список колонок
col_pairs = list(itertools.combinations(data_clusters.drop('cluster_km', axis=1).columns, 2))

# количество графиков
qty_plots = len(col_pairs)

# получим количество строк в сетке, разделив все на 4 c округлением ВВЕРХ
qty_str = math.ceil(qty_plots / 4 )

# строим qty_plots графиков по 4 в ряд 

col=0 # порядковый номер колонки (для графика)
for i in range(qty_str): # строки в матрице графиков
    # проверим, не достигли ли мы окончания списка колонок
    # если col  НЕ больше qty_plots то идём в цикл
    # если больше то выходим
    if col <= (qty_plots-1):
        for j in [1,2, 3, 4]:
             # если col  НЕ больше qty_plots то идём в цикл
             # если больше то выходим
            if col <= (qty_plots-1):
                # определяем колонку
                pair = col_pairs[col]
           
                # первый график в строке
                plt.subplot(1,4,j)
                sns.scatterplot(
                    data_clusters[pair[0]], data_clusters[pair[1]], hue=data_clusters['cluster_km'], palette='Paired'
                );
                plt.title('{} vs {}'.format(pair[0], pair[1]))
                #переход к следующей платформе для следующего графика
                col += 1
                # закрываем цикл построения строки
      
    plt.show()
        # переход к следующей колонке для следующего графика

В результате выполнения этой программе на языке Python получается примерно вот это:

Сетка графиков Python
Статья понравилась?

Новые ветра в продюсировании

После начала того, что началось 24-го февраля, во ВКонтакте появилось много свежей аудитории.

Продюсерам, которые работали по продвижению во ВКонтакте до начала событий, казалось, что теперь у них настали жирные времена. Появилось много заказчиков на продвижение в контакте, появилась новая обширная аудитория, и теперь всё будет прекрасно.

Но не тут то было!
Большинство наработанных методик по продвижению экспертов во ВКонтакте “поломалось”. ТО, что работало прежде, перестало приносить результаты в виде конечного эффекта – продаж услуг.

Мои учителя в продвижении начали искать новые инструменты и методики продвижения во ВКонтакте. Лёша Гога увлёкся вертикальным видео. Андрей Миляев двигал супермаркет услуг по продвижению. Александр Давыдов вообще растворился в Черногории.

Но… Что-то не срабатывало… Раскрутка вк поломалась…

Новость недели

Продвижение в социальных сетях в новых реалиях.

Андрей прислал мне приглашение в новую, свежую, эффективную систему по продвижению в современных условиях.

Ветер дует из США.

Методика уже опробована, но ещё не потеряла своей новизны и взрывной эффективности.

Кто со мной?

Я, как вы знаете, сейчас усердно учусь (Анализ данных), поэтому сам своим продвижением как мастера волшебных наук, не могу заниматься.

Приглашаю каждого в мои продюсеры! Созвонимся, поговорим, и начнём двигаться к большим и честным заработкам!

Как связаться со мной:

Все варианты указаны на странице Контакты

Мои ресурсы во ВКонтакте

https://vk.com/eddydewrussia

https://vk.com/insomnia_away

https://vk.com/silanavsegda

https://vk.com/sila7chakr

вк мьюзик

Статья понравилась?

Скоро скоро уж финал…

Сегодня закончил последнюю теоретическую часть в программе обучения Анализ данных на Яндекс.Практикуме.

Эта часть далась мне нелегко. Было очень много непонятных слов и действий.

Но, зато, очень интересно. Ведь это были Начала машинного обучения.

Нам рассказали и на практике показали, как устроено обучение машинного моделирования на основе накопленных данных для прогнозирования результатов будущих периодов.

Например

Есть фитнес-центр. Администраторы этого предприятия ведут учёт того, как клиенты его посещают.

  • Как часто приходят
  • Посещают ли дополнительные группы
  • Покупают ли индивидуальные консультации
  • Живут или работают рядом
  • Когда заканчивается срок действия абонемента
  • И … когда перестали пользоваться услугами компании.

Аналитик данных:

  • проводит подготовку собранной статистики методами pandas на python
  • выбирает методы прогнозирования из библиотеки sklearn
  • обучает компьютер методом scaler.fit
  • выбирает самый точный алгоритм прогнозирования по результату сравнения параметров оценки точности предсказания из sklearn.metrics
  • помогает настроить систему, которая на основе новых данных за месяц, строит прогноз оттока

Администрация:

  • На основе полученного прогноза активно стимулирует клиентов из рисковой группы. Чтобы они не бросали занятия )))

Так решаем главную задачу:

Удержание клиентов

Photo by Clay Banks on Unsplash
Статья понравилась?