В задаче категоризации методом 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 получается примерно вот это:
Сегодня закончил последнюю теоретическую часть в программе обучения Анализ данных на Яндекс.Практикуме.
Эта часть далась мне нелегко. Было очень много непонятных слов и действий.
Но, зато, очень интересно. Ведь это были Начала машинного обучения.
Нам рассказали и на практике показали, как устроено обучение машинного моделирования на основе накопленных данных для прогнозирования результатов будущих периодов.
Например
Есть фитнес-центр. Администраторы этого предприятия ведут учёт того, как клиенты его посещают.
Как часто приходят
Посещают ли дополнительные группы
Покупают ли индивидуальные консультации
Живут или работают рядом
Когда заканчивается срок действия абонемента
И … когда перестали пользоваться услугами компании.
Аналитик данных:
проводит подготовку собранной статистики методами pandas на python
выбирает методы прогнозирования из библиотеки sklearn
обучает компьютер методом scaler.fit
выбирает самый точный алгоритм прогнозирования по результату сравнения параметров оценки точности предсказания из sklearn.metrics
помогает настроить систему, которая на основе новых данных за месяц, строит прогноз оттока
Администрация:
На основе полученного прогноза активно стимулирует клиентов из рисковой группы. Чтобы они не бросали занятия )))