Архив метки: sklearn

Как вывести на печать матрицу графиков 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
Статья понравилась?

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

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

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

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

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

Например

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

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

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

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

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

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

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

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

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