Рост количества пользователей информационной системы (далее ИС), как правило, приводит к усложнению ролевой модели и модели предоставления прав (далее Модели) в ИС. Для обеспечения управляемости ИС, при росте количества пользователей, требуется регулярно анализировать и оптимизировать Модели. Для анализа существующих Моделей в ИС предлагается:
- Кластеризировать данные Моделей;
- Провести бизнес/системный анализ Моделей с учетом данных кластеризации.
Кластеризация блоьших Моделей имеет ряд условий:
- Требуется кластеризировать большое количество объектов и признаков. Количество объектов может достигать сотен тысяч и более, а признаков до несколько десятков и даже сотен.
- Как правило, заранее не известно количество, размер и плотность кластеров.
- Требуется обеспечение масштабируемости алгоритма кластеризации и его воспроизводимость.
При наличии подобных условий основной выбор — это методы кластеризации DBSCAN, OPTICS и HDBSCAN. Вот ключевые решения и компромиссы:
| Алгоритм | Основной принцип | Плюсы для данного случая | Минусы / Сложности | Масштабируемость |
|---|---|---|---|---|
| HDBSCAN | Иерархия + плотность. Автоматически определяет устойчивые кластеры разной плотности. | Лучший баланс. Не требует eps, находит кластеры разной плотности и сложной формы, помечает шум. | Вне sklearn (pip install hdbscan). Чувствителен к гиперпараметру min_cluster_size. | Хорошая. Использует эффективные структуры данных (Ball Tree). |
| OPTICS | Расширенный DBSCAN. Строит достижимости, что позволяет извлекать кластеры на разных уровнях eps. | Не требует фиксированного eps, выявляет иерархию, менее чувствителен к параметрам, чем DBSCAN. Медленнее DBSCAN. | Извлечение кластеров (extract_dbscan) — дополнительный шаг. | Средняя. Лучше, чем матрица расстояний, но может быть медленным на сотнях тысяч точек. |
| DBSCAN | Кластеризация по плотности. Кластеризует точки в радиусе eps с min_samples соседями. | Прост в понимании, эффективно находит кластеры сложной формы и шум. | Критично зависит от eps, плохо работает с кластерами разной плотности. | Хорошая при использовании algorithm='kd_tree'/'ball_tree'. |
Для получения более полного представления о кластерах Моделей предлагается их последовательно кластеризовать всеми тремя методами и для каждого объекта Модели присвоить результаты каждой кластеризации. В целях этого кластерного анализа совместно с DeepSeek был разработан код генерации ролевой модели и модели предоставления разрешений в Tessa.
Загрузка библиотек¶
# Загрузка библиотек
import pandas as pd
import numpy as np
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.neighbors import NearestNeighbors
from sklearn.cluster import DBSCAN
from sklearn.cluster import OPTICS
from sklearn.cluster import HDBSCAN
from sklearn.metrics import silhouette_score, silhouette_samples
import matplotlib.pyplot as plt
Загрузка и предобработка данных Моделей¶
# Загрузка и подготовка данных
data = pd.read_csv('df_permission.csv', encoding='utf-8-sig', sep=',')
print('Анализ данных:')
print(f'Размер: {data.shape}')
data.head(3)
Анализ данных: Размер: (3660, 30)
| Unnamed: 0 | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | Подписка на уведомления | Расширенные настройки прав доступа | Создание шаблона и копирование | Пропуск этапов | Редактирование своих сообщений | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
| 1 | 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
| 2 | 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
3 rows × 30 columns
# Преобразование параметров в строки и заполнение пропусков
data = data.astype(str).fillna('Unknown')
# Удаление не нужных полей
data = data.drop(['Unnamed: 0'], axis=1)
# Удаление полных дубликатов объектов
data = data.drop_duplicates()
print(data.info())
print()
display(data.describe())
print()
data.head(5)
<class 'pandas.core.frame.DataFrame'> Index: 3636 entries, 0 to 3659 Data columns (total 29 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Название роли 3636 non-null object 1 Тип роли 3636 non-null object 2 Скрытая роль 3636 non-null object 3 Тип карточки 3636 non-null object 4 Состояние карточки 3636 non-null object 5 Создание карточки 3636 non-null object 6 Чтение карточки 3636 non-null object 7 Редактирование карточки 3636 non-null object 8 Удаление карточки 3636 non-null object 9 Добавление файлов 3636 non-null object 10 Редактирование всех файлов 3636 non-null object 11 Удаление всех файлов 3636 non-null object 12 Редактирование собственных файлов 3636 non-null object 13 Удаление собственных файлов 3636 non-null object 14 Инициация типового процесса отправки задач 3636 non-null object 15 Ручное редактирование номера 3636 non-null object 16 Редактирование маршрута 3636 non-null object 17 Полный пересчет маршрута 3636 non-null object 18 Права супермодератора 3636 non-null object 19 Подписка на уведомления 3636 non-null object 20 Расширенные настройки прав доступа 3636 non-null object 21 Создание шаблона и копирование 3636 non-null object 22 Пропуск этапов 3636 non-null object 23 Редактирование своих сообщений 3636 non-null object 24 Редактирование всех сообщений 3636 non-null object 25 Добавление обсуждений 3636 non-null object 26 Чтение обсуждений 3636 non-null object 27 Чтение и отправка сообщений 3636 non-null object 28 Название правила доступа 3636 non-null object dtypes: object(29) memory usage: 852.2+ KB None
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Подписка на уведомления | Расширенные настройки прав доступа | Создание шаблона и копирование | Пропуск этапов | Редактирование своих сообщений | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | … | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 | 3636 |
| unique | 299 | 3 | 1 | 5 | 4 | 2 | 1 | 2 | 2 | 2 | … | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1098 |
| top | Пономарёв Феликс | Сотрудник | 0 | Счет | Проект | 1 | 1 | 1 | 0 | 1 | … | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | Правило доступа 1 |
| freq | 40 | 3504 | 3636 | 884 | 909 | 2325 | 3636 | 2298 | 2648 | 2737 | … | 2869 | 2976 | 2216 | 2976 | 2747 | 2976 | 2750 | 2837 | 2801 | 660 |
4 rows × 29 columns
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Подписка на уведомления | Расширенные настройки прав доступа | Создание шаблона и копирование | Пропуск этапов | Редактирование своих сообщений | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | Правило доступа 1 |
5 rows × 29 columns
# Перенос названий правил доступа в отдельный датафрейм
# (названия правил имеют сильную корреляцию с другими параметрами датафрейма
# и потому не подходят для кластеризации,
# но они понадобятся для анализа результатов кластеризации)
access_rules_names = data['Название правила доступа']
data = data.drop(['Название правила доступа'], axis=1)
access_rules_names
0 Правило доступа 1
1 Правило доступа 1
2 Правило доступа 1
3 Правило доступа 1
4 Правило доступа 1
...
3655 Правило доступа 198
3656 Правило доступа 1096
3657 Правило доступа 1097
3658 Правило доступа 1085
3659 Правило доступа 1098
Name: Название правила доступа, Length: 3636, dtype: object
# Анализ уникальных значений
print("Уникальные значения по полям:")
for col in data.columns:
unique_count = data[col].nunique()
print(f"{col}: {unique_count} уникальных значений")
Уникальные значения по полям: Название роли: 299 уникальных значений Тип роли: 3 уникальных значений Скрытая роль: 1 уникальных значений Тип карточки: 5 уникальных значений Состояние карточки: 4 уникальных значений Создание карточки: 2 уникальных значений Чтение карточки: 1 уникальных значений Редактирование карточки: 2 уникальных значений Удаление карточки: 2 уникальных значений Добавление файлов: 2 уникальных значений Редактирование всех файлов: 2 уникальных значений Удаление всех файлов: 2 уникальных значений Редактирование собственных файлов: 2 уникальных значений Удаление собственных файлов: 2 уникальных значений Инициация типового процесса отправки задач: 2 уникальных значений Ручное редактирование номера: 2 уникальных значений Редактирование маршрута: 2 уникальных значений Полный пересчет маршрута: 2 уникальных значений Права супермодератора: 2 уникальных значений Подписка на уведомления: 2 уникальных значений Расширенные настройки прав доступа: 2 уникальных значений Создание шаблона и копирование: 2 уникальных значений Пропуск этапов: 2 уникальных значений Редактирование своих сообщений: 2 уникальных значений Редактирование всех сообщений: 2 уникальных значений Добавление обсуждений: 2 уникальных значений Чтение обсуждений: 2 уникальных значений Чтение и отправка сообщений: 2 уникальных значений
# Упрощенное кодирование категориальных признаков
def simple_category_encoding(data):
"""Упрощенное кодирование категориальных признаков"""
encoded_data = pd.DataFrame()
for col in data.columns:
unique_count = data[col].nunique()
if unique_count <= 20:
# One-Hot для малого количества категорий
dummies = pd.get_dummies(data[col], prefix=col)
encoded_data = pd.concat([encoded_data, dummies], axis=1)
else:
# Frequency encoding для большого количества категорий
freq_map = data[col].value_counts().to_dict()
encoded_data[col] = data[col].map(freq_map)
return encoded_data
print("Кодирование признаков...")
encoded_data = simple_category_encoding(data)
print(f"После кодирования: {encoded_data.shape} признаков")
encoded_data.head(5)
Кодирование признаков... После кодирования: (3636, 59) признаков
| Название роли | Тип роли_Подразделение | Тип роли_Сотрудник | Тип роли_Статическая роль | Скрытая роль_0 | Тип карточки_Входящий документ | Тип карточки_Договор | Тип карточки_Приказ | Тип карточки_Служебная записка | Тип карточки_Счет | … | Редактирование своих сообщений_0 | Редактирование своих сообщений_1 | Редактирование всех сообщений_0 | Редактирование всех сообщений_1 | Добавление обсуждений_0 | Добавление обсуждений_1 | Чтение обсуждений_0 | Чтение обсуждений_1 | Чтение и отправка сообщений_0 | Чтение и отправка сообщений_1 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 20 | False | True | False | True | True | False | False | False | False | … | False | True | False | True | False | True | False | True | False | True |
| 1 | 20 | False | True | False | True | True | False | False | False | False | … | False | True | False | True | False | True | False | True | False | True |
| 2 | 20 | False | True | False | True | True | False | False | False | False | … | False | True | False | True | False | True | False | True | False | True |
| 3 | 20 | False | True | False | True | True | False | False | False | False | … | False | True | False | True | False | True | False | True | False | True |
| 4 | 20 | False | True | False | True | False | True | False | False | False | … | False | True | False | True | False | True | False | True | False | True |
5 rows × 59 columns
# Стандартизация
scaler = StandardScaler()
scaled_data = scaler.fit_transform(encoded_data)
print('Размерность:', scaled_data.shape)
scaled_data
Размерность: (3636, 59)
array([[ 0.80267925, -0.15748875, 0.19409079, ..., 0.53069344,
-0.54599251, 0.54599251],
[ 0.80267925, -0.15748875, 0.19409079, ..., 0.53069344,
-0.54599251, 0.54599251],
[ 0.80267925, -0.15748875, 0.19409079, ..., 0.53069344,
-0.54599251, 0.54599251],
...,
[-0.38759063, -0.15748875, -5.15222811, ..., -1.88432703,
-0.54599251, 0.54599251],
[-0.38759063, -0.15748875, -5.15222811, ..., -1.88432703,
1.83152696, -1.83152696],
[-0.38759063, -0.15748875, -5.15222811, ..., 0.53069344,
1.83152696, -1.83152696]])
# Уменьшение размерности с проверкой
if scaled_data.shape[1] > 2:
# Используем PCA только если много признаков
pca = PCA(n_components=0.9) # 90% дисперсии
reduced_data = pca.fit_transform(scaled_data)
print(f"После PCA: {reduced_data.shape[1]} компонент")
else:
reduced_data = scaled_data
print("PCA не применен - мало признаков")
print('Размерность:', reduced_data.shape)
print('\nДатафрейм с данными, подготовленными для кластеризации:')
reduced_data
После PCA: 17 компонент Размерность: (3636, 17) Датафрейм с данными, подготовленными для кластеризации:
array([[-9.01883469, 2.21850583, -0.65854494, ..., 0.29387112,
0.20138332, 0.03117451],
[-8.99514652, 2.21790498, -0.81912591, ..., 0.21132868,
-0.04247336, -0.13333986],
[-8.98967894, 2.22733372, -0.90812384, ..., 0.3322579 ,
0.21707028, -0.18044825],
...,
[ 3.18425168, 1.2345865 , 1.51444939, ..., -5.720002 ,
2.24013807, -1.98814608],
[ 4.0832284 , 2.18274416, 1.30946337, ..., 0.42637971,
4.19786682, -0.9158341 ],
[ 4.54773648, 2.49253984, 0.02754473, ..., -1.79574579,
2.62008557, 3.06808926]])
Подбор параметров кластеризации¶
Далее представлена сводная таблица оптимальных значений базовых параметров кластеризации разными методами для 300000 объектов с 40 признакакми. Такое количество объектов и признаков могут быть впоолне характерны для ИС Tessa с несколькими тысячами активных пользователей.
| Параметр | Описание | Предлагаемый метод расчёта | Обоснование |
|---|---|---|---|
min_cluster_size |
Минимальное число точек, необходимое для формирования кластера | round(0.0001 * n_samples) |
Для формирования кластера требуется не менее 0.01% всех точек |
min_samples |
Минимальное число соседей в окрестности точки, чтобы она считалась «базовой» | max(2*n_features, 0.0001*n_samples, k_elbow) |
Учитывает размерность, минимальный значимый кластер и статистику локтя |
xi |
Параметр, регулирующий «чувствительность» при выделении кластеров на графике достижимости в OPTICS | Анализ std(log(k_distances))/mean(log(k_distances)) |
Адаптируется к вариативности плотностей в данных |
eps |
Максимальное расстояние между двумя точками, при котором они считаются соседними в DBSCAN) | np.min([standard_method, std_near_mean, eps_inflection, eps_adaptive]) |
Минимальное значение из четырех методов: 1. Анализ квантилей и выбросов; 2. Анализ стандартного отклонения от среднего; 3. Поиск точки перегиба в распределении; 4. Адаптивный порог на основе статистики |
max_eps |
Максимальный радиус поиска соседей в OPTICS (аналог eps в DBSCAN) |
np.percentile(k_distances, 99) |
Покрывает 99% случаев, ускоряя вычисления |
algorithm |
Эффективная структура данных для больших наборов в OPTICS | 'ball_tree' при n_features > 20 |
Оптимален для многомерных данных (>20 признаков) |
leaf_size |
Размер листа для ball_tree в OPTICS |
min(1000, sqrt(n_samples)*n_features/20) |
Баланс между точностью и потреблением памяти |
cluster_method |
Метод извлечения кластеров из графика достижимости в OPTICS | 'xi' обязателен для кластеров разной плотности |
Единственный метод, находящий кластеры разной плотности |
# Автоматический подбор параметров кластеризации
def clusterization_parameters(reduced_data):
# Определение размерности датафрейма с данными,
# подоготовленными для анализа,
# с целью автоматического подбора ключевых параметров
n_samples, n_features = reduced_data.shape
# Параметр min_cluster_size
min_cluster_size = max(2, round(0.0001 * n_samples))
# Параметр min_samples (компромиссное значение)
min_samples = max(2 * n_features, # не менее двух количеств всех признаков
int(0.0001 * n_samples), # не менее сотой процента от количества всех объектов
2) # эмпирический минимум
# Параметр xi
# Анализ плотностей для определения xi
nbrs = NearestNeighbors(n_neighbors=min_samples)
nbrs.fit(reduced_data)
distances, _ = nbrs.kneighbors(reduced_data)
k_distances = distances[:, -1]
log_distances = np.log(k_distances + 1e-10)
density_variation = np.std(log_distances) / np.mean(log_distances)
# Автоподбор xi
if density_variation > 0.7:
xi = 0.12
elif density_variation > 0.4:
xi = 0.08
else:
xi = 0.05
# Параметр eps
# Метод 1: Анализ квантилей и выбросов
# (наиболее устойчив к выбросам и подходит к любому распределению)
Q1 = np.percentile(k_distances, 25)
Q3 = np.percentile(k_distances, 75)
IQR = Q3 - Q1
standard_method = Q3 + 1.5 * IQR
# Метод 2: Анализ стандартного отклонения от среднего
# (наименее устойчив к выбросам, подходит только к стандартному распределению)
std_near_mean = np.mean(k_distances) + 1.5 * np.std(k_distances)
# Метод 3: Поиск точки перегиба в распределении
# (колено в распределении)
sorted_distances = np.sort(k_distances)
gradients = np.gradient(sorted_distances)
# Находим точку максимального изменения градиента
# (вторая производная)
inflection_idx = np.argmax(np.abs(np.gradient(gradients)))
eps_inflection = sorted_distances[inflection_idx]
# Метод 4: Адаптивный порог на основе статистики
eps_adaptive = np.percentile(k_distances, 85) # 85-й перцентиль
# Комбинированный подход
eps_candidates = [
standard_method, # Метод 1: Анализ квантилей и выбросов
std_near_mean, # Метод 2: Анализ стандартного отклонения от среднего
eps_inflection, # Метод 3: Поиск точки перегиба в распределении
eps_adaptive # Метод 4: Адаптивный порог на основе статистики
]
# Выбираем наиболее стабильное значение
#eps = np.median(eps_candidates) # Рискованный вариант
eps = np.min(eps_candidates) # Консервативный вариант (учитывает все подходы)
# Параметр max_eps (99-й перцентиль)
max_eps = np.percentile(k_distances, 99)
# Параметр leaf_size
leaf_size = min(1000, int(np.sqrt(n_samples) * n_features / 20))
return min_cluster_size, min_samples, xi, eps, max_eps, leaf_size
min_cluster_size, min_samples, xi, eps, max_eps, leaf_size = clusterization_parameters(reduced_data)
print("=== АВТОМАТИЧЕСКИ ПОДОБРАННЫЕ ПАРАМЕТРЫ КЛАСТЕРИЗАЦИИ ===")
print(f"min_cluster_size: {min_cluster_size}")
print(f"min_samples: {min_samples}")
print(f"xi: {xi:.3f}")
print(f"eps: {eps:.4f}")
print(f"max_eps: {max_eps:.4f}")
print(f"leaf_size: {leaf_size}")
=== АВТОМАТИЧЕСКИ ПОДОБРАННЫЕ ПАРАМЕТРЫ КЛАСТЕРИЗАЦИИ === min_cluster_size: 2 min_samples: 34 xi: 0.050 eps: 1.1112 max_eps: 7.9428 leaf_size: 51
Кластеризация¶
# Создание нового датафрейма для хранения данных о кластеризации
data_with_clusters = data.copy()
data_with_clusters.head(5)
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Права супермодератора | Подписка на уведомления | Расширенные настройки прав доступа | Создание шаблона и копирование | Пропуск этапов | Редактирование своих сообщений | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
5 rows × 28 columns
# Сохранение результатов кластеризации в датафрейм
def writing_cluster_data(data_with_clusters, big_name, small_name):
# Присваивание объектам номеров кластеров
data_with_clusters[small_name+'_cluster'] = cluster_labels
# Дополнение данных объектов индивидуальными значениями метода силуэта
silhouette_vals = silhouette_samples(reduced_data, cluster_labels)
data_with_clusters[small_name+'_silhouette_vals'] = silhouette_vals
# Сохранение результатов кластеризации
data_with_clusters.to_excel('data_with_clusters.xlsx')
# Предварительный просмотр результатов кластерного анализа
print(f'Предварительный просмотр результатов кластерного анализа методом {big_name}:')
display(data_with_clusters.head(5))
# Вывод итоговой информации кластеризации
def clusterization_results(data_with_clusters, big_name, small_name):
total_count = data_with_clusters[small_name+'_cluster'].count()
print(f"=== ИТОГИ кластеризации методом {big_name} ===")
print(f"Число кластеров: {data_with_clusters[small_name+'_cluster'].max()+1} (средняя силуэтная оценка {data_with_clusters[small_name+'_silhouette_vals'].mean():.4f})")
print(f"Распределение по кластерам:")
for n in range(data_with_clusters[small_name+'_cluster'].max()+1):
count = data_with_clusters[data_with_clusters[small_name+'_cluster'] == n][small_name+'_cluster'].count()
silhouette_avg = data_with_clusters[data_with_clusters[small_name+'_cluster'] == n][small_name+'_silhouette_vals'].mean()
print(f" Кластер {n}: {count} объектов ({count/total_count:.1%}, средняя силуэтная оценка {silhouette_avg:.4f})")
print(f"Шум: {np.sum(cluster_labels == -1)} объектов ({np.sum(cluster_labels == -1)/len(cluster_labels)*100:.1f}%)")
Кластеризация методом HDBSCAN¶
# Кластеризация методом HDBSCAN.
# Желательно опробовать метод без дополнительных параметров,
# т.к. он хорош даже "из коробки"
clusterer = HDBSCAN(copy=False, # обязательный параметр
min_cluster_size=min_cluster_size, # основной параметр
metric='euclidean',
cluster_selection_method='eom')
cluster_labels = clusterer.fit_predict(reduced_data)
# Сохранение результатов кластеризации HDBSCAN в датафрейм
writing_cluster_data(data_with_clusters, 'HDBSCAN', 'hdbscan')
Предварительный просмотр результатов кластерного анализа методом HDBSCAN:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Расширенные настройки прав доступа | Создание шаблона и копирование | Пропуск этапов | Редактирование своих сообщений | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 16 | 0.999999 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 6 | 1.000000 |
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1.000000 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 38 | 1.000000 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 61 | 0.999999 |
5 rows × 30 columns
# Итоговая информация кластеризации методом HDBSCAN
clusterization_results(data_with_clusters, 'HDBSCAN', 'hdbscan')
=== ИТОГИ кластеризации методом HDBSCAN === Число кластеров: 539 (средняя силуэтная оценка 0.5749) Распределение по кластерам: Кластер 0: 2 объектов (0.1%, средняя силуэтная оценка 0.1459) Кластер 1: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 2: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 3: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 4: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 5: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 6: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 7: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 8: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 9: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 10: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 11: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 12: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 13: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 14: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 15: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 16: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 17: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 18: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 19: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 20: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 21: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 22: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 23: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 24: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 25: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 26: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 27: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 28: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 29: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 30: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 31: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 32: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 33: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 34: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 35: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 36: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 37: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 38: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 39: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 40: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 41: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 42: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 43: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 44: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 45: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 46: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 47: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 48: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 49: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 50: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 51: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 52: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 53: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 54: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 55: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 56: 10 объектов (0.3%, средняя силуэтная оценка 0.8933) Кластер 57: 2 объектов (0.1%, средняя силуэтная оценка 0.3233) Кластер 58: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 59: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 60: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 61: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 62: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 63: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 64: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 65: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 66: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 67: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 68: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 69: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 70: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 71: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 72: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 73: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 74: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 75: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 76: 65 объектов (1.8%, средняя силуэтная оценка 1.0000) Кластер 77: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 78: 2 объектов (0.1%, средняя силуэтная оценка 0.2878) Кластер 79: 4 объектов (0.1%, средняя силуэтная оценка 0.2138) Кластер 80: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 81: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 82: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 83: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 84: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 85: 23 объектов (0.6%, средняя силуэтная оценка 1.0000) Кластер 86: 2 объектов (0.1%, средняя силуэтная оценка 0.5833) Кластер 87: 8 объектов (0.2%, средняя силуэтная оценка 1.0000) Кластер 88: 2 объектов (0.1%, средняя силуэтная оценка 0.3430) Кластер 89: 2 объектов (0.1%, средняя силуэтная оценка 0.3490) Кластер 90: 2 объектов (0.1%, средняя силуэтная оценка 0.1722) Кластер 91: 4 объектов (0.1%, средняя силуэтная оценка 0.0243) Кластер 92: 2 объектов (0.1%, средняя силуэтная оценка 0.3717) Кластер 93: 2 объектов (0.1%, средняя силуэтная оценка 0.4118) Кластер 94: 2 объектов (0.1%, средняя силуэтная оценка 0.1811) Кластер 95: 2 объектов (0.1%, средняя силуэтная оценка 0.1281) Кластер 96: 2 объектов (0.1%, средняя силуэтная оценка 0.3496) Кластер 97: 2 объектов (0.1%, средняя силуэтная оценка 0.2653) Кластер 98: 2 объектов (0.1%, средняя силуэтная оценка 0.2653) Кластер 99: 2 объектов (0.1%, средняя силуэтная оценка 0.2690) Кластер 100: 3 объектов (0.1%, средняя силуэтная оценка 0.2267) Кластер 101: 2 объектов (0.1%, средняя силуэтная оценка 0.2021) Кластер 102: 4 объектов (0.1%, средняя силуэтная оценка 0.1557) Кластер 103: 2 объектов (0.1%, средняя силуэтная оценка 0.3444) Кластер 104: 3 объектов (0.1%, средняя силуэтная оценка 0.1468) Кластер 105: 2 объектов (0.1%, средняя силуэтная оценка 0.1248) Кластер 106: 2 объектов (0.1%, средняя силуэтная оценка 0.2552) Кластер 107: 5 объектов (0.1%, средняя силуэтная оценка 0.2339) Кластер 108: 2 объектов (0.1%, средняя силуэтная оценка 0.2014) Кластер 109: 4 объектов (0.1%, средняя силуэтная оценка -0.0124) Кластер 110: 2 объектов (0.1%, средняя силуэтная оценка 0.0878) Кластер 111: 2 объектов (0.1%, средняя силуэтная оценка 0.4991) Кластер 112: 2 объектов (0.1%, средняя силуэтная оценка 0.5796) Кластер 113: 2 объектов (0.1%, средняя силуэтная оценка 0.1994) Кластер 114: 3 объектов (0.1%, средняя силуэтная оценка 0.1857) Кластер 115: 3 объектов (0.1%, средняя силуэтная оценка 0.2431) Кластер 116: 2 объектов (0.1%, средняя силуэтная оценка 0.1817) Кластер 117: 2 объектов (0.1%, средняя силуэтная оценка 0.1278) Кластер 118: 2 объектов (0.1%, средняя силуэтная оценка 0.4292) Кластер 119: 2 объектов (0.1%, средняя силуэтная оценка 0.1755) Кластер 120: 2 объектов (0.1%, средняя силуэтная оценка 0.2547) Кластер 121: 3 объектов (0.1%, средняя силуэтная оценка 0.1923) Кластер 122: 2 объектов (0.1%, средняя силуэтная оценка 1.0000) Кластер 123: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 124: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 125: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 126: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 127: 5 объектов (0.1%, средняя силуэтная оценка 0.0679) Кластер 128: 3 объектов (0.1%, средняя силуэтная оценка 0.3399) Кластер 129: 5 объектов (0.1%, средняя силуэтная оценка 0.0092) Кластер 130: 4 объектов (0.1%, средняя силуэтная оценка 0.3291) Кластер 131: 2 объектов (0.1%, средняя силуэтная оценка 0.2807) Кластер 132: 2 объектов (0.1%, средняя силуэтная оценка 1.0000) Кластер 133: 2 объектов (0.1%, средняя силуэтная оценка 0.3383) Кластер 134: 4 объектов (0.1%, средняя силуэтная оценка -0.0832) Кластер 135: 2 объектов (0.1%, средняя силуэтная оценка 0.1561) Кластер 136: 3 объектов (0.1%, средняя силуэтная оценка 0.0879) Кластер 137: 2 объектов (0.1%, средняя силуэтная оценка 0.3003) Кластер 138: 4 объектов (0.1%, средняя силуэтная оценка 0.1368) Кластер 139: 2 объектов (0.1%, средняя силуэтная оценка 0.1590) Кластер 140: 5 объектов (0.1%, средняя силуэтная оценка 0.1074) Кластер 141: 2 объектов (0.1%, средняя силуэтная оценка 0.4801) Кластер 142: 2 объектов (0.1%, средняя силуэтная оценка 0.3694) Кластер 143: 7 объектов (0.2%, средняя силуэтная оценка 0.0660) Кластер 144: 2 объектов (0.1%, средняя силуэтная оценка 0.1907) Кластер 145: 3 объектов (0.1%, средняя силуэтная оценка 0.1826) Кластер 146: 2 объектов (0.1%, средняя силуэтная оценка 0.2660) Кластер 147: 3 объектов (0.1%, средняя силуэтная оценка 0.4712) Кластер 148: 2 объектов (0.1%, средняя силуэтная оценка 0.3056) Кластер 149: 2 объектов (0.1%, средняя силуэтная оценка 0.4159) Кластер 150: 3 объектов (0.1%, средняя силуэтная оценка 0.2000) Кластер 151: 2 объектов (0.1%, средняя силуэтная оценка 0.1899) Кластер 152: 3 объектов (0.1%, средняя силуэтная оценка 0.5800) Кластер 153: 2 объектов (0.1%, средняя силуэтная оценка 0.3452) Кластер 154: 4 объектов (0.1%, средняя силуэтная оценка 0.1354) Кластер 155: 2 объектов (0.1%, средняя силуэтная оценка 0.1930) Кластер 156: 3 объектов (0.1%, средняя силуэтная оценка 0.1035) Кластер 157: 3 объектов (0.1%, средняя силуэтная оценка 0.1688) Кластер 158: 2 объектов (0.1%, средняя силуэтная оценка 0.9518) Кластер 159: 2 объектов (0.1%, средняя силуэтная оценка 1.0000) Кластер 160: 2 объектов (0.1%, средняя силуэтная оценка 0.2618) Кластер 161: 2 объектов (0.1%, средняя силуэтная оценка 0.3457) Кластер 162: 2 объектов (0.1%, средняя силуэтная оценка 0.4939) Кластер 163: 3 объектов (0.1%, средняя силуэтная оценка 0.1760) Кластер 164: 3 объектов (0.1%, средняя силуэтная оценка 0.3298) Кластер 165: 2 объектов (0.1%, средняя силуэтная оценка 0.3432) Кластер 166: 3 объектов (0.1%, средняя силуэтная оценка 0.2555) Кластер 167: 4 объектов (0.1%, средняя силуэтная оценка 0.0612) Кластер 168: 3 объектов (0.1%, средняя силуэтная оценка 0.2310) Кластер 169: 3 объектов (0.1%, средняя силуэтная оценка 0.1132) Кластер 170: 2 объектов (0.1%, средняя силуэтная оценка 0.1996) Кластер 171: 2 объектов (0.1%, средняя силуэтная оценка 0.0919) Кластер 172: 2 объектов (0.1%, средняя силуэтная оценка 0.6040) Кластер 173: 2 объектов (0.1%, средняя силуэтная оценка 0.4710) Кластер 174: 2 объектов (0.1%, средняя силуэтная оценка 0.2679) Кластер 175: 3 объектов (0.1%, средняя силуэтная оценка 0.1150) Кластер 176: 2 объектов (0.1%, средняя силуэтная оценка 0.1420) Кластер 177: 2 объектов (0.1%, средняя силуэтная оценка 0.6344) Кластер 178: 3 объектов (0.1%, средняя силуэтная оценка 0.1193) Кластер 179: 3 объектов (0.1%, средняя силуэтная оценка 0.4826) Кластер 180: 2 объектов (0.1%, средняя силуэтная оценка 0.2486) Кластер 181: 2 объектов (0.1%, средняя силуэтная оценка 0.1969) Кластер 182: 3 объектов (0.1%, средняя силуэтная оценка 0.3327) Кластер 183: 2 объектов (0.1%, средняя силуэтная оценка 0.1674) Кластер 184: 2 объектов (0.1%, средняя силуэтная оценка 0.2709) Кластер 185: 2 объектов (0.1%, средняя силуэтная оценка 0.5317) Кластер 186: 3 объектов (0.1%, средняя силуэтная оценка 0.1741) Кластер 187: 2 объектов (0.1%, средняя силуэтная оценка 0.1468) Кластер 188: 2 объектов (0.1%, средняя силуэтная оценка 0.4797) Кластер 189: 3 объектов (0.1%, средняя силуэтная оценка 0.2494) Кластер 190: 2 объектов (0.1%, средняя силуэтная оценка 0.2069) Кластер 191: 3 объектов (0.1%, средняя силуэтная оценка 0.1642) Кластер 192: 2 объектов (0.1%, средняя силуэтная оценка 0.2917) Кластер 193: 4 объектов (0.1%, средняя силуэтная оценка 0.1806) Кластер 194: 2 объектов (0.1%, средняя силуэтная оценка 0.2045) Кластер 195: 2 объектов (0.1%, средняя силуэтная оценка 0.1894) Кластер 196: 2 объектов (0.1%, средняя силуэтная оценка 0.1950) Кластер 197: 2 объектов (0.1%, средняя силуэтная оценка 0.2860) Кластер 198: 3 объектов (0.1%, средняя силуэтная оценка 0.1210) Кластер 199: 2 объектов (0.1%, средняя силуэтная оценка 0.1977) Кластер 200: 2 объектов (0.1%, средняя силуэтная оценка 0.5805) Кластер 201: 2 объектов (0.1%, средняя силуэтная оценка 0.4288) Кластер 202: 4 объектов (0.1%, средняя силуэтная оценка 0.1897) Кластер 203: 2 объектов (0.1%, средняя силуэтная оценка 0.9599) Кластер 204: 2 объектов (0.1%, средняя силуэтная оценка 0.1772) Кластер 205: 3 объектов (0.1%, средняя силуэтная оценка 0.2761) Кластер 206: 2 объектов (0.1%, средняя силуэтная оценка 0.2227) Кластер 207: 2 объектов (0.1%, средняя силуэтная оценка 0.4088) Кластер 208: 2 объектов (0.1%, средняя силуэтная оценка 0.2069) Кластер 209: 3 объектов (0.1%, средняя силуэтная оценка 0.3304) Кластер 210: 2 объектов (0.1%, средняя силуэтная оценка 0.2378) Кластер 211: 3 объектов (0.1%, средняя силуэтная оценка 0.1998) Кластер 212: 4 объектов (0.1%, средняя силуэтная оценка 0.1769) Кластер 213: 2 объектов (0.1%, средняя силуэтная оценка 0.5394) Кластер 214: 2 объектов (0.1%, средняя силуэтная оценка 0.1280) Кластер 215: 2 объектов (0.1%, средняя силуэтная оценка 0.9605) Кластер 216: 3 объектов (0.1%, средняя силуэтная оценка 0.1660) Кластер 217: 6 объектов (0.2%, средняя силуэтная оценка 0.0556) Кластер 218: 2 объектов (0.1%, средняя силуэтная оценка 0.1686) Кластер 219: 2 объектов (0.1%, средняя силуэтная оценка 0.4205) Кластер 220: 2 объектов (0.1%, средняя силуэтная оценка 0.2545) Кластер 221: 2 объектов (0.1%, средняя силуэтная оценка 0.2874) Кластер 222: 2 объектов (0.1%, средняя силуэтная оценка 0.2066) Кластер 223: 4 объектов (0.1%, средняя силуэтная оценка 0.0716) Кластер 224: 2 объектов (0.1%, средняя силуэтная оценка 0.4542) Кластер 225: 2 объектов (0.1%, средняя силуэтная оценка 0.3783) Кластер 226: 5 объектов (0.1%, средняя силуэтная оценка -0.0914) Кластер 227: 2 объектов (0.1%, средняя силуэтная оценка 0.2233) Кластер 228: 2 объектов (0.1%, средняя силуэтная оценка 0.1286) Кластер 229: 2 объектов (0.1%, средняя силуэтная оценка 0.9243) Кластер 230: 3 объектов (0.1%, средняя силуэтная оценка 0.2584) Кластер 231: 2 объектов (0.1%, средняя силуэтная оценка 0.2131) Кластер 232: 4 объектов (0.1%, средняя силуэтная оценка 0.1668) Кластер 233: 4 объектов (0.1%, средняя силуэтная оценка 0.1235) Кластер 234: 2 объектов (0.1%, средняя силуэтная оценка 0.3052) Кластер 235: 3 объектов (0.1%, средняя силуэтная оценка 0.1324) Кластер 236: 2 объектов (0.1%, средняя силуэтная оценка 0.2487) Кластер 237: 4 объектов (0.1%, средняя силуэтная оценка 0.1097) Кластер 238: 5 объектов (0.1%, средняя силуэтная оценка 0.0201) Кластер 239: 3 объектов (0.1%, средняя силуэтная оценка 0.4615) Кластер 240: 2 объектов (0.1%, средняя силуэтная оценка 0.2377) Кластер 241: 6 объектов (0.2%, средняя силуэтная оценка 0.0730) Кластер 242: 2 объектов (0.1%, средняя силуэтная оценка 0.1585) Кластер 243: 7 объектов (0.2%, средняя силуэтная оценка 0.0742) Кластер 244: 3 объектов (0.1%, средняя силуэтная оценка 0.3172) Кластер 245: 2 объектов (0.1%, средняя силуэтная оценка 0.2312) Кластер 246: 2 объектов (0.1%, средняя силуэтная оценка 0.5654) Кластер 247: 3 объектов (0.1%, средняя силуэтная оценка 0.0804) Кластер 248: 2 объектов (0.1%, средняя силуэтная оценка 0.1539) Кластер 249: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 250: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 251: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 252: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 253: 2 объектов (0.1%, средняя силуэтная оценка 0.3858) Кластер 254: 2 объектов (0.1%, средняя силуэтная оценка 0.3106) Кластер 255: 2 объектов (0.1%, средняя силуэтная оценка 0.9655) Кластер 256: 3 объектов (0.1%, средняя силуэтная оценка 0.1867) Кластер 257: 2 объектов (0.1%, средняя силуэтная оценка 0.4064) Кластер 258: 3 объектов (0.1%, средняя силуэтная оценка 0.1390) Кластер 259: 4 объектов (0.1%, средняя силуэтная оценка 0.2216) Кластер 260: 2 объектов (0.1%, средняя силуэтная оценка 0.9573) Кластер 261: 2 объектов (0.1%, средняя силуэтная оценка 0.2964) Кластер 262: 3 объектов (0.1%, средняя силуэтная оценка 0.1046) Кластер 263: 2 объектов (0.1%, средняя силуэтная оценка 0.1527) Кластер 264: 2 объектов (0.1%, средняя силуэтная оценка 0.3751) Кластер 265: 3 объектов (0.1%, средняя силуэтная оценка 0.1377) Кластер 266: 4 объектов (0.1%, средняя силуэтная оценка 0.0830) Кластер 267: 3 объектов (0.1%, средняя силуэтная оценка 0.1736) Кластер 268: 3 объектов (0.1%, средняя силуэтная оценка 0.2129) Кластер 269: 4 объектов (0.1%, средняя силуэтная оценка 0.2080) Кластер 270: 4 объектов (0.1%, средняя силуэтная оценка 0.1790) Кластер 271: 2 объектов (0.1%, средняя силуэтная оценка 0.9283) Кластер 272: 4 объектов (0.1%, средняя силуэтная оценка 0.5369) Кластер 273: 2 объектов (0.1%, средняя силуэтная оценка 0.5819) Кластер 274: 2 объектов (0.1%, средняя силуэтная оценка 0.2465) Кластер 275: 3 объектов (0.1%, средняя силуэтная оценка 0.1291) Кластер 276: 3 объектов (0.1%, средняя силуэтная оценка 0.1673) Кластер 277: 2 объектов (0.1%, средняя силуэтная оценка 0.1982) Кластер 278: 3 объектов (0.1%, средняя силуэтная оценка 0.0361) Кластер 279: 3 объектов (0.1%, средняя силуэтная оценка 0.2778) Кластер 280: 3 объектов (0.1%, средняя силуэтная оценка -0.0561) Кластер 281: 4 объектов (0.1%, средняя силуэтная оценка 0.2519) Кластер 282: 2 объектов (0.1%, средняя силуэтная оценка 0.9197) Кластер 283: 3 объектов (0.1%, средняя силуэтная оценка 0.2191) Кластер 284: 2 объектов (0.1%, средняя силуэтная оценка 0.3206) Кластер 285: 3 объектов (0.1%, средняя силуэтная оценка 0.4347) Кластер 286: 2 объектов (0.1%, средняя силуэтная оценка 0.1565) Кластер 287: 4 объектов (0.1%, средняя силуэтная оценка 0.0591) Кластер 288: 3 объектов (0.1%, средняя силуэтная оценка 0.1666) Кластер 289: 2 объектов (0.1%, средняя силуэтная оценка 0.1889) Кластер 290: 4 объектов (0.1%, средняя силуэтная оценка 0.1270) Кластер 291: 3 объектов (0.1%, средняя силуэтная оценка 0.2470) Кластер 292: 3 объектов (0.1%, средняя силуэтная оценка 0.2941) Кластер 293: 2 объектов (0.1%, средняя силуэтная оценка 0.2122) Кластер 294: 4 объектов (0.1%, средняя силуэтная оценка 0.2000) Кластер 295: 8 объектов (0.2%, средняя силуэтная оценка -0.1017) Кластер 296: 2 объектов (0.1%, средняя силуэтная оценка 0.1290) Кластер 297: 3 объектов (0.1%, средняя силуэтная оценка 0.6694) Кластер 298: 3 объектов (0.1%, средняя силуэтная оценка 0.2382) Кластер 299: 2 объектов (0.1%, средняя силуэтная оценка 0.4383) Кластер 300: 3 объектов (0.1%, средняя силуэтная оценка 0.1442) Кластер 301: 2 объектов (0.1%, средняя силуэтная оценка 0.2006) Кластер 302: 3 объектов (0.1%, средняя силуэтная оценка 0.2052) Кластер 303: 2 объектов (0.1%, средняя силуэтная оценка 0.4869) Кластер 304: 2 объектов (0.1%, средняя силуэтная оценка 0.3154) Кластер 305: 6 объектов (0.2%, средняя силуэтная оценка 0.0869) Кластер 306: 2 объектов (0.1%, средняя силуэтная оценка 0.9212) Кластер 307: 2 объектов (0.1%, средняя силуэтная оценка 0.2571) Кластер 308: 4 объектов (0.1%, средняя силуэтная оценка 0.2202) Кластер 309: 2 объектов (0.1%, средняя силуэтная оценка 0.3876) Кластер 310: 5 объектов (0.1%, средняя силуэтная оценка 0.0784) Кластер 311: 3 объектов (0.1%, средняя силуэтная оценка 0.2188) Кластер 312: 2 объектов (0.1%, средняя силуэтная оценка 0.6119) Кластер 313: 3 объектов (0.1%, средняя силуэтная оценка 0.2324) Кластер 314: 2 объектов (0.1%, средняя силуэтная оценка 0.5579) Кластер 315: 4 объектов (0.1%, средняя силуэтная оценка 0.1454) Кластер 316: 2 объектов (0.1%, средняя силуэтная оценка 0.2913) Кластер 317: 5 объектов (0.1%, средняя силуэтная оценка 0.2293) Кластер 318: 8 объектов (0.2%, средняя силуэтная оценка 0.0063) Кластер 319: 4 объектов (0.1%, средняя силуэтная оценка 0.0570) Кластер 320: 3 объектов (0.1%, средняя силуэтная оценка 0.1900) Кластер 321: 8 объектов (0.2%, средняя силуэтная оценка -0.0741) Кластер 322: 2 объектов (0.1%, средняя силуэтная оценка 0.1944) Кластер 323: 3 объектов (0.1%, средняя силуэтная оценка 0.2316) Кластер 324: 2 объектов (0.1%, средняя силуэтная оценка 0.2864) Кластер 325: 5 объектов (0.1%, средняя силуэтная оценка -0.0116) Кластер 326: 3 объектов (0.1%, средняя силуэтная оценка 0.2602) Кластер 327: 4 объектов (0.1%, средняя силуэтная оценка 0.0904) Кластер 328: 2 объектов (0.1%, средняя силуэтная оценка 0.2568) Кластер 329: 2 объектов (0.1%, средняя силуэтная оценка 0.4131) Кластер 330: 3 объектов (0.1%, средняя силуэтная оценка 0.3382) Кластер 331: 2 объектов (0.1%, средняя силуэтная оценка 0.3072) Кластер 332: 3 объектов (0.1%, средняя силуэтная оценка 0.1593) Кластер 333: 2 объектов (0.1%, средняя силуэтная оценка 0.3055) Кластер 334: 3 объектов (0.1%, средняя силуэтная оценка 0.1781) Кластер 335: 2 объектов (0.1%, средняя силуэтная оценка 0.5382) Кластер 336: 2 объектов (0.1%, средняя силуэтная оценка 0.3956) Кластер 337: 3 объектов (0.1%, средняя силуэтная оценка 0.2866) Кластер 338: 2 объектов (0.1%, средняя силуэтная оценка 0.3553) Кластер 339: 6 объектов (0.2%, средняя силуэтная оценка 0.0958) Кластер 340: 2 объектов (0.1%, средняя силуэтная оценка 0.1389) Кластер 341: 3 объектов (0.1%, средняя силуэтная оценка 0.0941) Кластер 342: 2 объектов (0.1%, средняя силуэтная оценка 0.2077) Кластер 343: 7 объектов (0.2%, средняя силуэтная оценка -0.0127) Кластер 344: 2 объектов (0.1%, средняя силуэтная оценка 0.2375) Кластер 345: 5 объектов (0.1%, средняя силуэтная оценка 0.0799) Кластер 346: 2 объектов (0.1%, средняя силуэтная оценка 0.9607) Кластер 347: 2 объектов (0.1%, средняя силуэтная оценка 0.4775) Кластер 348: 4 объектов (0.1%, средняя силуэтная оценка 0.0846) Кластер 349: 2 объектов (0.1%, средняя силуэтная оценка 0.3660) Кластер 350: 4 объектов (0.1%, средняя силуэтная оценка 0.1625) Кластер 351: 2 объектов (0.1%, средняя силуэтная оценка 0.1596) Кластер 352: 2 объектов (0.1%, средняя силуэтная оценка 0.2671) Кластер 353: 2 объектов (0.1%, средняя силуэтная оценка 0.1467) Кластер 354: 2 объектов (0.1%, средняя силуэтная оценка 0.3370) Кластер 355: 2 объектов (0.1%, средняя силуэтная оценка 0.3659) Кластер 356: 4 объектов (0.1%, средняя силуэтная оценка 0.1209) Кластер 357: 2 объектов (0.1%, средняя силуэтная оценка 0.2526) Кластер 358: 4 объектов (0.1%, средняя силуэтная оценка 0.3669) Кластер 359: 2 объектов (0.1%, средняя силуэтная оценка 0.2996) Кластер 360: 3 объектов (0.1%, средняя силуэтная оценка 0.2279) Кластер 361: 2 объектов (0.1%, средняя силуэтная оценка 0.0881) Кластер 362: 2 объектов (0.1%, средняя силуэтная оценка 0.3316) Кластер 363: 2 объектов (0.1%, средняя силуэтная оценка 0.2798) Кластер 364: 5 объектов (0.1%, средняя силуэтная оценка -0.0228) Кластер 365: 2 объектов (0.1%, средняя силуэтная оценка 0.3277) Кластер 366: 5 объектов (0.1%, средняя силуэтная оценка 0.1191) Кластер 367: 4 объектов (0.1%, средняя силуэтная оценка 0.2949) Кластер 368: 5 объектов (0.1%, средняя силуэтная оценка 0.1752) Кластер 369: 3 объектов (0.1%, средняя силуэтная оценка 0.0725) Кластер 370: 4 объектов (0.1%, средняя силуэтная оценка 0.1863) Кластер 371: 2 объектов (0.1%, средняя силуэтная оценка 0.1621) Кластер 372: 3 объектов (0.1%, средняя силуэтная оценка 0.2542) Кластер 373: 3 объектов (0.1%, средняя силуэтная оценка 0.5777) Кластер 374: 3 объектов (0.1%, средняя силуэтная оценка 0.2547) Кластер 375: 2 объектов (0.1%, средняя силуэтная оценка 0.3444) Кластер 376: 4 объектов (0.1%, средняя силуэтная оценка 0.1114) Кластер 377: 6 объектов (0.2%, средняя силуэтная оценка 0.0494) Кластер 378: 5 объектов (0.1%, средняя силуэтная оценка 0.8625) Кластер 379: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 380: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 381: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 382: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 383: 6 объектов (0.2%, средняя силуэтная оценка 0.0323) Кластер 384: 3 объектов (0.1%, средняя силуэтная оценка 0.3088) Кластер 385: 5 объектов (0.1%, средняя силуэтная оценка 0.1361) Кластер 386: 2 объектов (0.1%, средняя силуэтная оценка 0.4911) Кластер 387: 2 объектов (0.1%, средняя силуэтная оценка 0.4206) Кластер 388: 2 объектов (0.1%, средняя силуэтная оценка 0.2481) Кластер 389: 5 объектов (0.1%, средняя силуэтная оценка 0.8460) Кластер 390: 5 объектов (0.1%, средняя силуэтная оценка 0.8600) Кластер 391: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 392: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 393: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 394: 19 объектов (0.5%, средняя силуэтная оценка 1.0000) Кластер 395: 2 объектов (0.1%, средняя силуэтная оценка 0.1883) Кластер 396: 4 объектов (0.1%, средняя силуэтная оценка 0.0133) Кластер 397: 4 объектов (0.1%, средняя силуэтная оценка 0.1785) Кластер 398: 5 объектов (0.1%, средняя силуэтная оценка 0.8460) Кластер 399: 5 объектов (0.1%, средняя силуэтная оценка 0.8388) Кластер 400: 5 объектов (0.1%, средняя силуэтная оценка 0.8379) Кластер 401: 5 объектов (0.1%, средняя силуэтная оценка 0.8569) Кластер 402: 5 объектов (0.1%, средняя силуэтная оценка 0.8379) Кластер 403: 5 объектов (0.1%, средняя силуэтная оценка 0.8388) Кластер 404: 5 объектов (0.1%, средняя силуэтная оценка 0.8460) Кластер 405: 5 объектов (0.1%, средняя силуэтная оценка 0.8518) Кластер 406: 6 объектов (0.2%, средняя силуэтная оценка 0.6107) Кластер 407: 3 объектов (0.1%, средняя силуэтная оценка 0.2518) Кластер 408: 2 объектов (0.1%, средняя силуэтная оценка 0.3418) Кластер 409: 5 объектов (0.1%, средняя силуэтная оценка 0.8432) Кластер 410: 5 объектов (0.1%, средняя силуэтная оценка 0.8442) Кластер 411: 5 объектов (0.1%, средняя силуэтная оценка 0.8388) Кластер 412: 5 объектов (0.1%, средняя силуэтная оценка 0.8379) Кластер 413: 2 объектов (0.1%, средняя силуэтная оценка 0.2576) Кластер 414: 5 объектов (0.1%, средняя силуэтная оценка 0.8388) Кластер 415: 5 объектов (0.1%, средняя силуэтная оценка 0.8379) Кластер 416: 5 объектов (0.1%, средняя силуэтная оценка 0.8379) Кластер 417: 5 объектов (0.1%, средняя силуэтная оценка 0.8388) Кластер 418: 2 объектов (0.1%, средняя силуэтная оценка 0.3782) Кластер 419: 4 объектов (0.1%, средняя силуэтная оценка -0.0353) Кластер 420: 8 объектов (0.2%, средняя силуэтная оценка -0.0202) Кластер 421: 2 объектов (0.1%, средняя силуэтная оценка 0.9624) Кластер 422: 4 объектов (0.1%, средняя силуэтная оценка 0.2734) Кластер 423: 3 объектов (0.1%, средняя силуэтная оценка 0.1981) Кластер 424: 2 объектов (0.1%, средняя силуэтная оценка 1.0000) Кластер 425: 2 объектов (0.1%, средняя силуэтная оценка 0.1595) Кластер 426: 4 объектов (0.1%, средняя силуэтная оценка 0.1874) Кластер 427: 2 объектов (0.1%, средняя силуэтная оценка 0.1488) Кластер 428: 4 объектов (0.1%, средняя силуэтная оценка 0.1463) Кластер 429: 2 объектов (0.1%, средняя силуэтная оценка 0.2961) Кластер 430: 2 объектов (0.1%, средняя силуэтная оценка 0.2808) Кластер 431: 2 объектов (0.1%, средняя силуэтная оценка 0.1797) Кластер 432: 3 объектов (0.1%, средняя силуэтная оценка 0.3450) Кластер 433: 3 объектов (0.1%, средняя силуэтная оценка 0.2851) Кластер 434: 2 объектов (0.1%, средняя силуэтная оценка 0.3055) Кластер 435: 5 объектов (0.1%, средняя силуэтная оценка 0.3382) Кластер 436: 3 объектов (0.1%, средняя силуэтная оценка 0.1918) Кластер 437: 5 объектов (0.1%, средняя силуэтная оценка 0.0915) Кластер 438: 2 объектов (0.1%, средняя силуэтная оценка 0.3062) Кластер 439: 4 объектов (0.1%, средняя силуэтная оценка 0.2125) Кластер 440: 3 объектов (0.1%, средняя силуэтная оценка 0.4824) Кластер 441: 3 объектов (0.1%, средняя силуэтная оценка 0.1636) Кластер 442: 2 объектов (0.1%, средняя силуэтная оценка 0.2916) Кластер 443: 4 объектов (0.1%, средняя силуэтная оценка 0.2725) Кластер 444: 4 объектов (0.1%, средняя силуэтная оценка 0.1535) Кластер 445: 3 объектов (0.1%, средняя силуэтная оценка 0.2869) Кластер 446: 2 объектов (0.1%, средняя силуэтная оценка 0.1664) Кластер 447: 2 объектов (0.1%, средняя силуэтная оценка 0.5541) Кластер 448: 2 объектов (0.1%, средняя силуэтная оценка 0.3952) Кластер 449: 2 объектов (0.1%, средняя силуэтная оценка 0.5152) Кластер 450: 3 объектов (0.1%, средняя силуэтная оценка 0.3077) Кластер 451: 2 объектов (0.1%, средняя силуэтная оценка 0.5243) Кластер 452: 2 объектов (0.1%, средняя силуэтная оценка 0.2131) Кластер 453: 2 объектов (0.1%, средняя силуэтная оценка 0.2477) Кластер 454: 2 объектов (0.1%, средняя силуэтная оценка 0.3870) Кластер 455: 3 объектов (0.1%, средняя силуэтная оценка 0.1074) Кластер 456: 8 объектов (0.2%, средняя силуэтная оценка 0.1187) Кластер 457: 4 объектов (0.1%, средняя силуэтная оценка 0.0194) Кластер 458: 2 объектов (0.1%, средняя силуэтная оценка 0.4623) Кластер 459: 4 объектов (0.1%, средняя силуэтная оценка 0.2754) Кластер 460: 2 объектов (0.1%, средняя силуэтная оценка 0.4471) Кластер 461: 2 объектов (0.1%, средняя силуэтная оценка 0.2888) Кластер 462: 4 объектов (0.1%, средняя силуэтная оценка 0.2757) Кластер 463: 3 объектов (0.1%, средняя силуэтная оценка 0.1104) Кластер 464: 2 объектов (0.1%, средняя силуэтная оценка 1.0000) Кластер 465: 3 объектов (0.1%, средняя силуэтная оценка 0.1429) Кластер 466: 2 объектов (0.1%, средняя силуэтная оценка 0.1556) Кластер 467: 5 объектов (0.1%, средняя силуэтная оценка 0.1183) Кластер 468: 3 объектов (0.1%, средняя силуэтная оценка 0.2273) Кластер 469: 2 объектов (0.1%, средняя силуэтная оценка 0.3082) Кластер 470: 5 объектов (0.1%, средняя силуэтная оценка 0.2276) Кластер 471: 2 объектов (0.1%, средняя силуэтная оценка 0.2331) Кластер 472: 2 объектов (0.1%, средняя силуэтная оценка 0.1837) Кластер 473: 2 объектов (0.1%, средняя силуэтная оценка 0.3028) Кластер 474: 4 объектов (0.1%, средняя силуэтная оценка 0.2536) Кластер 475: 2 объектов (0.1%, средняя силуэтная оценка 0.2410) Кластер 476: 2 объектов (0.1%, средняя силуэтная оценка 0.1483) Кластер 477: 2 объектов (0.1%, средняя силуэтная оценка 0.2518) Кластер 478: 3 объектов (0.1%, средняя силуэтная оценка 0.2661) Кластер 479: 3 объектов (0.1%, средняя силуэтная оценка 0.1009) Кластер 480: 3 объектов (0.1%, средняя силуэтная оценка 0.3004) Кластер 481: 3 объектов (0.1%, средняя силуэтная оценка 0.2380) Кластер 482: 4 объектов (0.1%, средняя силуэтная оценка 0.0590) Кластер 483: 3 объектов (0.1%, средняя силуэтная оценка 0.1562) Кластер 484: 2 объектов (0.1%, средняя силуэтная оценка 0.2895) Кластер 485: 3 объектов (0.1%, средняя силуэтная оценка 0.4179) Кластер 486: 3 объектов (0.1%, средняя силуэтная оценка 0.1433) Кластер 487: 4 объектов (0.1%, средняя силуэтная оценка 0.0681) Кластер 488: 2 объектов (0.1%, средняя силуэтная оценка 0.1868) Кластер 489: 3 объектов (0.1%, средняя силуэтная оценка 0.0682) Кластер 490: 2 объектов (0.1%, средняя силуэтная оценка 0.4404) Кластер 491: 4 объектов (0.1%, средняя силуэтная оценка 0.0297) Кластер 492: 2 объектов (0.1%, средняя силуэтная оценка 0.6361) Кластер 493: 2 объектов (0.1%, средняя силуэтная оценка 0.1883) Кластер 494: 3 объектов (0.1%, средняя силуэтная оценка 0.1272) Кластер 495: 3 объектов (0.1%, средняя силуэтная оценка 0.0292) Кластер 496: 2 объектов (0.1%, средняя силуэтная оценка 1.0000) Кластер 497: 3 объектов (0.1%, средняя силуэтная оценка 0.2660) Кластер 498: 2 объектов (0.1%, средняя силуэтная оценка 0.3465) Кластер 499: 2 объектов (0.1%, средняя силуэтная оценка 0.2300) Кластер 500: 4 объектов (0.1%, средняя силуэтная оценка 0.0261) Кластер 501: 4 объектов (0.1%, средняя силуэтная оценка 0.2488) Кластер 502: 3 объектов (0.1%, средняя силуэтная оценка 0.1614) Кластер 503: 2 объектов (0.1%, средняя силуэтная оценка 0.4735) Кластер 504: 4 объектов (0.1%, средняя силуэтная оценка 0.0142) Кластер 505: 2 объектов (0.1%, средняя силуэтная оценка 0.3791) Кластер 506: 2 объектов (0.1%, средняя силуэтная оценка 0.3609) Кластер 507: 4 объектов (0.1%, средняя силуэтная оценка 0.1655) Кластер 508: 2 объектов (0.1%, средняя силуэтная оценка 0.1212) Кластер 509: 2 объектов (0.1%, средняя силуэтная оценка 0.3562) Кластер 510: 2 объектов (0.1%, средняя силуэтная оценка 0.2525) Кластер 511: 2 объектов (0.1%, средняя силуэтная оценка 0.4004) Кластер 512: 2 объектов (0.1%, средняя силуэтная оценка 0.3060) Кластер 513: 2 объектов (0.1%, средняя силуэтная оценка 0.3404) Кластер 514: 4 объектов (0.1%, средняя силуэтная оценка 0.0517) Кластер 515: 3 объектов (0.1%, средняя силуэтная оценка 0.0884) Кластер 516: 2 объектов (0.1%, средняя силуэтная оценка 0.2128) Кластер 517: 2 объектов (0.1%, средняя силуэтная оценка 0.9155) Кластер 518: 5 объектов (0.1%, средняя силуэтная оценка 0.2204) Кластер 519: 2 объектов (0.1%, средняя силуэтная оценка 0.1746) Кластер 520: 2 объектов (0.1%, средняя силуэтная оценка 0.3254) Кластер 521: 2 объектов (0.1%, средняя силуэтная оценка 0.1966) Кластер 522: 3 объектов (0.1%, средняя силуэтная оценка 0.2291) Кластер 523: 2 объектов (0.1%, средняя силуэтная оценка 0.2287) Кластер 524: 4 объектов (0.1%, средняя силуэтная оценка 0.2542) Кластер 525: 3 объектов (0.1%, средняя силуэтная оценка 0.1469) Кластер 526: 2 объектов (0.1%, средняя силуэтная оценка 0.3332) Кластер 527: 3 объектов (0.1%, средняя силуэтная оценка 0.1572) Кластер 528: 5 объектов (0.1%, средняя силуэтная оценка 0.2226) Кластер 529: 2 объектов (0.1%, средняя силуэтная оценка 0.3521) Кластер 530: 3 объектов (0.1%, средняя силуэтная оценка 0.1997) Кластер 531: 2 объектов (0.1%, средняя силуэтная оценка 0.2312) Кластер 532: 2 объектов (0.1%, средняя силуэтная оценка 0.3170) Кластер 533: 4 объектов (0.1%, средняя силуэтная оценка 0.1946) Кластер 534: 2 объектов (0.1%, средняя силуэтная оценка 0.3829) Кластер 535: 2 объектов (0.1%, средняя силуэтная оценка 0.1609) Кластер 536: 3 объектов (0.1%, средняя силуэтная оценка 0.2343) Кластер 537: 3 объектов (0.1%, средняя силуэтная оценка 0.2287) Кластер 538: 2 объектов (0.1%, средняя силуэтная оценка 0.3362) Шум: 399 объектов (11.0%)
Кластеризация методом OPTICS¶
# Кластеризация методом OPTICS.
# Желательно опробовать метод без дополнительных параметров,
# т.к. он хорош даже "из коробки"
optics_full = OPTICS(
min_samples=min_samples,
max_eps=max_eps, #max_eps, #np.inf,
min_cluster_size=min_cluster_size, # Можно уменьшить для большего числа кластеров
metric='euclidean',
cluster_method='xi',
xi=xi,
algorithm='ball_tree',
n_jobs=-1,
leaf_size=leaf_size
)
# Обучение на полных данных (может занять время)
optics_full.fit(reduced_data)
cluster_labels = optics_full.labels_
C:\Users\featu\anaconda3\Lib\site-packages\sklearn\cluster\_optics.py:1084: RuntimeWarning: divide by zero encountered in divide ratio = reachability_plot[:-1] / reachability_plot[1:]
# Сохранение результатов кластеризации OPTICS в датафрейм
writing_cluster_data(data_with_clusters, 'OPTICS', 'optics')
Предварительный просмотр результатов кластерного анализа методом OPTICS:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Пропуск этапов | Редактирование своих сообщений | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 16 | 0.999999 | 0 | 0.183154 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 6 | 1.000000 | 0 | 0.233769 |
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 3 | 1.000000 | 2 | 0.444444 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 38 | 1.000000 | 0 | 0.242934 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1 | 1 | 61 | 0.999999 | 0 | 0.087865 |
5 rows × 32 columns
# Итоговая информация кластеризации методом OPTICS
clusterization_results(data_with_clusters, 'OPTICS', 'optics')
=== ИТОГИ кластеризации методом OPTICS === Число кластеров: 20 (средняя силуэтная оценка 0.3073) Распределение по кластерам: Кластер 0: 396 объектов (10.9%, средняя силуэтная оценка 0.1448) Кластер 1: 99 объектов (2.7%, средняя силуэтная оценка 0.5051) Кластер 2: 132 объектов (3.6%, средняя силуэтная оценка 0.4449) Кластер 3: 68 объектов (1.9%, средняя силуэтная оценка 0.9559) Кластер 4: 68 объектов (1.9%, средняя силуэтная оценка 0.9561) Кластер 5: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 6: 69 объектов (1.9%, средняя силуэтная оценка 0.9267) Кластер 7: 68 объектов (1.9%, средняя силуэтная оценка 0.9485) Кластер 8: 69 объектов (1.9%, средняя силуэтная оценка 0.9243) Кластер 9: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 10: 48 объектов (1.3%, средняя силуэтная оценка 1.0000) Кластер 11: 102 объектов (2.8%, средняя силуэтная оценка 0.5970) Кластер 12: 94 объектов (2.6%, средняя силуэтная оценка 0.9302) Кластер 13: 94 объектов (2.6%, средняя силуэтная оценка 0.9301) Кластер 14: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 15: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 16: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 17: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 18: 94 объектов (2.6%, средняя силуэтная оценка 0.9301) Кластер 19: 94 объектов (2.6%, средняя силуэтная оценка 0.9302) Шум: 1669 объектов (45.9%)
Кластеризация методом DBSCAN¶
# Кластеризация методом DBSCAN.
# Желательно опробовать метод без дополнительных параметров,
# т.к. он хорош даже "из коробки"
dbscan = DBSCAN(eps=eps,
min_samples=min_samples)
cluster_labels = dbscan.fit_predict(reduced_data)
# Сохранение результатов кластеризации DBSCAN в датафрейм
writing_cluster_data(data_with_clusters, 'DBSCAN', 'dbscan')
Предварительный просмотр результатов кластерного анализа методом DBSCAN:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Редактирование всех сообщений | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 16 | 0.999999 | 0 | 0.183154 | -1 | -0.101404 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 6 | 1.000000 | 0 | 0.233769 | -1 | -0.052445 |
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 3 | 1.000000 | 2 | 0.444444 | -1 | -0.055650 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 38 | 1.000000 | 0 | 0.242934 | -1 | -0.055441 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 61 | 0.999999 | 0 | 0.087865 | -1 | -0.150827 |
5 rows × 34 columns
# Итоговая информация кластеризации методом DBSCAN
clusterization_results(data_with_clusters, 'DBSCAN', 'dbscan')
=== ИТОГИ кластеризации методом DBSCAN === Число кластеров: 16 (средняя силуэтная оценка 0.2243) Распределение по кластерам: Кластер 0: 68 объектов (1.9%, средняя силуэтная оценка 0.9559) Кластер 1: 68 объектов (1.9%, средняя силуэтная оценка 0.9559) Кластер 2: 68 объектов (1.9%, средняя силуэтная оценка 0.9483) Кластер 3: 68 объектов (1.9%, средняя силуэтная оценка 0.9482) Кластер 4: 68 объектов (1.9%, средняя силуэтная оценка 0.9561) Кластер 5: 68 объектов (1.9%, средняя силуэтная оценка 0.9561) Кластер 6: 68 объектов (1.9%, средняя силуэтная оценка 0.9483) Кластер 7: 68 объектов (1.9%, средняя силуэтная оценка 0.9482) Кластер 8: 94 объектов (2.6%, средняя силуэтная оценка 0.9301) Кластер 9: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 10: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 11: 94 объектов (2.6%, средняя силуэтная оценка 0.9301) Кластер 12: 94 объектов (2.6%, средняя силуэтная оценка 0.9302) Кластер 13: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 14: 94 объектов (2.6%, средняя силуэтная оценка 0.9257) Кластер 15: 94 объектов (2.6%, средняя силуэтная оценка 0.9302) Шум: 2340 объектов (64.4%)
Анализ кластеров¶
# Добавление названия правил доступа для анализа кластеров
data_with_clusters['Название правила доступа'] = access_rules_names
# Детальный анализ параметров кластеров
def analyzing_cluster_parameters(data_with_clusters, cluster_labels, silhouette_vals, minimum_cluster_share):
''' Анализ параметров кластеров '''
# data_with_clusters - датафрейм с указанием принадлежности к кластерам
# cluster_labels - поле с нумерацией кластеров
# silhouette_vals - поле силуэтной оценки
# minimum_cluster_share - минимальная доля категории внутри кластера для ее учета
if len(data_with_clusters) > 0:
print(f'Детальный анализ кластеров с отображением значений параметров, которые характерны для {minimum_cluster_share*100}% объектов кластера:\n')
# Анализируем распределение по самым информативным признакам
# Выбираем признаки с разумным количеством категорий
analysis_cols = []
for col in data_with_clusters.columns:
if 2 <= data_with_clusters[col].nunique() <= 50: # признаки с разумным количеством категорий
analysis_cols.append(col)
if len(analysis_cols) >= 30: # максимальное количество информативных признаков
break
if not analysis_cols:
# Если не нашли подходящие, берем первые 3 с наименьшим количеством категорий
col_stats = [(col, data_with_clusters[col].nunique()) for col in data_with_clusters.columns]
col_stats.sort(key=lambda x: x[1])
analysis_cols = [col for col, count in col_stats[:3]]
for cluster_num in range(max(data_with_clusters[cluster_labels])+1): #clusters_nums:
if cluster_num > 3: break # для уменьшения вывода на тесте
cluster_data = data_with_clusters[data_with_clusters[cluster_labels] == cluster_num]
print(f"\n\n--- Кластер {cluster_num} ({len(cluster_data)} объектов, {len(cluster_data)/len(data_with_clusters):.1%}) ---")
print('\nСилуэтная оценка качества объектов кластера:')
display(pd.DataFrame({'Min':[data_with_clusters.loc[data_with_clusters[cluster_labels] == cluster_num, silhouette_vals].min()],
'Mean':[data_with_clusters.loc[data_with_clusters[cluster_labels] == cluster_num, silhouette_vals].mean()],
'Median':[data_with_clusters.loc[data_with_clusters[cluster_labels] == cluster_num, silhouette_vals].median()],
'Max':[data_with_clusters.loc[data_with_clusters[cluster_labels] == cluster_num, silhouette_vals].max()]}).round(3))
col = []
value = []
count = []
percentage = []
for c in analysis_cols:
top_value = cluster_data[c].value_counts().head(1)
if len(top_value) > 0:
col.append(c)
value.append(top_value.index[0])
count.append(top_value.values[0])
percentage.append(count[-1] / len(cluster_data))
print('\nКлючевые параметры, характеризующие кластер:')
display_claster = pd.DataFrame({'Параметр':col, 'Модальное значение':value, 'Количество':count, 'Доля в кластере':percentage})
display(display_claster[display_claster['Доля в кластере'] > minimum_cluster_share])
print('\nПримеры объектов кластера:')
display(data_with_clusters[data_with_clusters[cluster_labels] == cluster_num].head(5))
else:
print('Объекты кластеров не обнаружены.')
# Табличное представление параметров кластеров
optics_cluster_parameters = data_with_clusters[data_with_clusters[cluster_labels] >= 0].groupby([cluster_labels]).agg(lambda x: x.mode().iloc[0]).reset_index()
optics_cluster_parameters['cluster_size'] = data_with_clusters.groupby([cluster_labels]).size()
optics_cluster_parameters['percentage_cluster_size'] = optics_cluster_parameters['cluster_size'] / len(data_with_clusters)
optics_cluster_parameters = optics_cluster_parameters.drop(silhouette_vals, axis=1)
optics_cluster_parameters['silhouette_vals_min'] = data_with_clusters.groupby([cluster_labels])[silhouette_vals].min()
optics_cluster_parameters['silhouette_vals_mean'] = data_with_clusters.groupby([cluster_labels])[silhouette_vals].mean()
optics_cluster_parameters['silhouette_vals_median'] = data_with_clusters.groupby([cluster_labels])[silhouette_vals].median()
optics_cluster_parameters['silhouette_vals_max'] = data_with_clusters.groupby([cluster_labels])[silhouette_vals].max()
# Сохранение полученного табличного представления ключевых параметров кластеров
optics_cluster_parameters.to_excel(cluster_labels+'_parameters.xlsx')
print('Табличное представление медианных значений ключевых параметров кластеров:')
display(optics_cluster_parameters)
Анализ кластеров HDBSCAN¶
analyzing_cluster_parameters(data_with_clusters, 'hdbscan_cluster', 'hdbscan_silhouette_vals', .75)
Детальный анализ кластеров с отображением значений параметров, которые характерны для 75.0% объектов кластера: --- Кластер 0 (2 объектов, 0.1%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.143 | 0.146 | 0.146 | 0.148 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Статическая роль | 2 | 1.0 |
| 2 | Состояние карточки | Утвержден | 2 | 1.0 |
| 3 | Создание карточки | 1 | 2 | 1.0 |
| 4 | Редактирование карточки | 1 | 2 | 1.0 |
| 5 | Удаление карточки | 0 | 2 | 1.0 |
| 6 | Добавление файлов | 0 | 2 | 1.0 |
| 7 | Редактирование всех файлов | 0 | 2 | 1.0 |
| 8 | Удаление всех файлов | 0 | 2 | 1.0 |
| 10 | Удаление собственных файлов | 0 | 2 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 2 | 1.0 |
| 12 | Ручное редактирование номера | 0 | 2 | 1.0 |
| 13 | Редактирование маршрута | 0 | 2 | 1.0 |
| 14 | Полный пересчет маршрута | 0 | 2 | 1.0 |
| 15 | Права супермодератора | 0 | 2 | 1.0 |
| 16 | Подписка на уведомления | 0 | 2 | 1.0 |
| 17 | Расширенные настройки прав доступа | 0 | 2 | 1.0 |
| 18 | Создание шаблона и копирование | 0 | 2 | 1.0 |
| 19 | Пропуск этапов | 0 | 2 | 1.0 |
| 21 | Редактирование всех сообщений | 0 | 2 | 1.0 |
| 22 | Добавление обсуждений | 0 | 2 | 1.0 |
| 23 | Чтение обсуждений | 0 | 2 | 1.0 |
| 25 | optics_cluster | -1 | 2 | 1.0 |
| 26 | dbscan_cluster | -1 | 2 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 3650 | Контролер качества | Статическая роль | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 0 | 0 | … | 0 | 0 | 0 | 0 | 0.143375 | -1 | 0.081340 | -1 | -0.028474 | Правило доступа 637 |
| 3654 | Контролер качества | Статическая роль | 0 | Счет | Утвержден | 1 | 1 | 1 | 0 | 0 | … | 0 | 0 | 1 | 0 | 0.148337 | -1 | 0.037981 | -1 | -0.034827 | Правило доступа 1095 |
2 rows × 35 columns
--- Кластер 1 (23 объектов, 0.6%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 1.0 | 1.0 | 1.0 | 1.0 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 23 | 1.0 |
| 1 | Тип карточки | Служебная записка | 23 | 1.0 |
| 2 | Состояние карточки | Утвержден | 23 | 1.0 |
| 3 | Создание карточки | 1 | 23 | 1.0 |
| 4 | Редактирование карточки | 1 | 23 | 1.0 |
| 5 | Удаление карточки | 1 | 23 | 1.0 |
| 6 | Добавление файлов | 1 | 23 | 1.0 |
| 7 | Редактирование всех файлов | 1 | 23 | 1.0 |
| 8 | Удаление всех файлов | 1 | 23 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 23 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 23 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 23 | 1.0 |
| 12 | Ручное редактирование номера | 1 | 23 | 1.0 |
| 13 | Редактирование маршрута | 1 | 23 | 1.0 |
| 14 | Полный пересчет маршрута | 1 | 23 | 1.0 |
| 15 | Права супермодератора | 1 | 23 | 1.0 |
| 16 | Подписка на уведомления | 1 | 23 | 1.0 |
| 17 | Расширенные настройки прав доступа | 1 | 23 | 1.0 |
| 18 | Создание шаблона и копирование | 1 | 23 | 1.0 |
| 19 | Пропуск этапов | 1 | 23 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 23 | 1.0 |
| 21 | Редактирование всех сообщений | 1 | 23 | 1.0 |
| 22 | Добавление обсуждений | 1 | 23 | 1.0 |
| 23 | Чтение обсуждений | 1 | 23 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 23 | 1.0 |
| 25 | optics_cluster | -1 | 23 | 1.0 |
| 26 | dbscan_cluster | -1 | 23 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 14 | Королёв Леонид | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.0 | -1 | -0.78855 | -1 | -0.056687 | Правило доступа 1 |
| 34 | Козлов Глеб | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.0 | -1 | -0.78855 | -1 | -0.056687 | Правило доступа 1 |
| 74 | Сорокин Феликс | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.0 | -1 | -0.78855 | -1 | -0.056687 | Правило доступа 1 |
| 94 | Беляев Натан | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.0 | -1 | -0.78855 | -1 | -0.056687 | Правило доступа 1 |
| 114 | Яковлев Лев | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.0 | -1 | -0.78855 | -1 | -0.056687 | Правило доступа 1 |
5 rows × 35 columns
--- Кластер 2 (23 объектов, 0.6%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 1.0 | 1.0 | 1.0 | 1.0 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 23 | 1.0 |
| 1 | Тип карточки | Служебная записка | 23 | 1.0 |
| 2 | Состояние карточки | На согласовании | 23 | 1.0 |
| 3 | Создание карточки | 1 | 23 | 1.0 |
| 4 | Редактирование карточки | 1 | 23 | 1.0 |
| 5 | Удаление карточки | 1 | 23 | 1.0 |
| 6 | Добавление файлов | 1 | 23 | 1.0 |
| 7 | Редактирование всех файлов | 1 | 23 | 1.0 |
| 8 | Удаление всех файлов | 1 | 23 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 23 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 23 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 23 | 1.0 |
| 12 | Ручное редактирование номера | 1 | 23 | 1.0 |
| 13 | Редактирование маршрута | 1 | 23 | 1.0 |
| 14 | Полный пересчет маршрута | 1 | 23 | 1.0 |
| 15 | Права супермодератора | 1 | 23 | 1.0 |
| 16 | Подписка на уведомления | 1 | 23 | 1.0 |
| 17 | Расширенные настройки прав доступа | 1 | 23 | 1.0 |
| 18 | Создание шаблона и копирование | 1 | 23 | 1.0 |
| 19 | Пропуск этапов | 1 | 23 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 23 | 1.0 |
| 21 | Редактирование всех сообщений | 1 | 23 | 1.0 |
| 22 | Добавление обсуждений | 1 | 23 | 1.0 |
| 23 | Чтение обсуждений | 1 | 23 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 23 | 1.0 |
| 25 | optics_cluster | 1 | 23 | 1.0 |
| 26 | dbscan_cluster | -1 | 23 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 13 | Королёв Леонид | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
| 33 | Козлов Глеб | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
| 73 | Сорокин Феликс | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
| 93 | Беляев Натан | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
| 113 | Яковлев Лев | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
5 rows × 35 columns
--- Кластер 3 (23 объектов, 0.6%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 1.0 | 1.0 | 1.0 | 1.0 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 23 | 1.0 |
| 1 | Тип карточки | Входящий документ | 23 | 1.0 |
| 2 | Состояние карточки | Утвержден | 23 | 1.0 |
| 3 | Создание карточки | 1 | 23 | 1.0 |
| 4 | Редактирование карточки | 1 | 23 | 1.0 |
| 5 | Удаление карточки | 1 | 23 | 1.0 |
| 6 | Добавление файлов | 1 | 23 | 1.0 |
| 7 | Редактирование всех файлов | 1 | 23 | 1.0 |
| 8 | Удаление всех файлов | 1 | 23 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 23 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 23 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 23 | 1.0 |
| 12 | Ручное редактирование номера | 1 | 23 | 1.0 |
| 13 | Редактирование маршрута | 1 | 23 | 1.0 |
| 14 | Полный пересчет маршрута | 1 | 23 | 1.0 |
| 15 | Права супермодератора | 1 | 23 | 1.0 |
| 16 | Подписка на уведомления | 1 | 23 | 1.0 |
| 17 | Расширенные настройки прав доступа | 1 | 23 | 1.0 |
| 18 | Создание шаблона и копирование | 1 | 23 | 1.0 |
| 19 | Пропуск этапов | 1 | 23 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 23 | 1.0 |
| 21 | Редактирование всех сообщений | 1 | 23 | 1.0 |
| 22 | Добавление обсуждений | 1 | 23 | 1.0 |
| 23 | Чтение обсуждений | 1 | 23 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 23 | 1.0 |
| 25 | optics_cluster | 2 | 23 | 1.0 |
| 26 | dbscan_cluster | -1 | 23 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.0 | 2 | 0.444444 | -1 | -0.05565 | Правило доступа 1 |
| 22 | Козлов Глеб | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.0 | 2 | 0.444444 | -1 | -0.05565 | Правило доступа 1 |
| 62 | Сорокин Феликс | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.0 | 2 | 0.444444 | -1 | -0.05565 | Правило доступа 1 |
| 82 | Беляев Натан | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.0 | 2 | 0.444444 | -1 | -0.05565 | Правило доступа 1 |
| 102 | Яковлев Лев | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.0 | 2 | 0.444444 | -1 | -0.05565 | Правило доступа 1 |
5 rows × 35 columns
Табличное представление медианных значений ключевых параметров кластеров:
| hdbscan_cluster | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | cluster_size | percentage_cluster_size | silhouette_vals_min | silhouette_vals_mean | silhouette_vals_median | silhouette_vals_max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | Контролер качества | Статическая роль | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 0 | … | 0.037981 | -1 | -0.034827 | Правило доступа 1095 | 2 | 0.000550 | 0.143375 | 0.145856 | 0.145856 | 0.148337 |
| 1 | 1 | Беляев Арис | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | … | -0.788550 | -1 | -0.056687 | Правило доступа 1 | 23 | 0.006326 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 2 | 2 | Беляев Арис | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | … | 0.497225 | -1 | -0.053856 | Правило доступа 1 | 23 | 0.006326 | 0.999999 | 0.999999 | 0.999999 | 0.999999 |
| 3 | 3 | Беляев Арис | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | … | 0.444444 | -1 | -0.055650 | Правило доступа 1 | 23 | 0.006326 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 4 | 4 | Андреев Оскар | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | … | -0.789951 | -1 | -0.037997 | Правило доступа 1 | 2 | 0.000550 | 0.500000 | 0.583333 | 0.583333 | 0.666667 |
| … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 534 | 534 | Петров Нил | Сотрудник | 0 | Договор | Утвержден | 0 | 1 | 0 | 0 | … | -0.033375 | -1 | -0.096939 | Правило доступа 121 | 2 | 0.000550 | 0.382291 | 0.382857 | 0.382857 | 0.383423 |
| 535 | 535 | Ильин Арис | Сотрудник | 0 | Договор | Утвержден | 0 | 1 | 0 | 0 | … | -0.011795 | -1 | -0.142930 | Правило доступа 108 | 2 | 0.000550 | 0.140035 | 0.160927 | 0.160927 | 0.181819 |
| 536 | 536 | Григорьев Левон | Сотрудник | 0 | Договор | Архив | 1 | 1 | 1 | 0 | … | 0.050776 | -1 | -0.038680 | Правило доступа 452 | 3 | 0.000825 | 0.168668 | 0.234316 | 0.224961 | 0.309318 |
| 537 | 537 | Богданов Борис | Сотрудник | 0 | Договор | Утвержден | 0 | 1 | 0 | 0 | … | -0.041385 | -1 | -0.216522 | Правило доступа 308 | 3 | 0.000825 | 0.008456 | 0.228710 | 0.300333 | 0.377342 |
| 538 | 538 | Кузьмин Дарий | Сотрудник | 0 | Приказ | Утвержден | 0 | 1 | 0 | 0 | … | -0.223840 | -1 | -0.351294 | Правило доступа 767 | 2 | 0.000550 | 0.309510 | 0.336204 | 0.336204 | 0.362898 |
539 rows × 40 columns
Анализ кластеров OPTICS¶
analyzing_cluster_parameters(data_with_clusters, 'optics_cluster', 'optics_silhouette_vals', .75)
Детальный анализ кластеров с отображением значений параметров, которые характерны для 75.0% объектов кластера: --- Кластер 0 (396 объектов, 10.9%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.076 | 0.145 | 0.122 | 0.243 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 396 | 1.0 |
| 3 | Создание карточки | 1 | 396 | 1.0 |
| 4 | Редактирование карточки | 1 | 396 | 1.0 |
| 5 | Удаление карточки | 1 | 396 | 1.0 |
| 6 | Добавление файлов | 1 | 396 | 1.0 |
| 7 | Редактирование всех файлов | 1 | 396 | 1.0 |
| 8 | Удаление всех файлов | 1 | 396 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 396 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 396 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 396 | 1.0 |
| 12 | Ручное редактирование номера | 1 | 396 | 1.0 |
| 13 | Редактирование маршрута | 1 | 396 | 1.0 |
| 14 | Полный пересчет маршрута | 1 | 396 | 1.0 |
| 15 | Права супермодератора | 1 | 396 | 1.0 |
| 16 | Подписка на уведомления | 1 | 396 | 1.0 |
| 17 | Расширенные настройки прав доступа | 1 | 396 | 1.0 |
| 18 | Создание шаблона и копирование | 1 | 396 | 1.0 |
| 19 | Пропуск этапов | 1 | 396 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 396 | 1.0 |
| 21 | Редактирование всех сообщений | 1 | 396 | 1.0 |
| 22 | Добавление обсуждений | 1 | 396 | 1.0 |
| 23 | Чтение обсуждений | 1 | 396 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 396 | 1.0 |
| 25 | optics_cluster | 0 | 396 | 1.0 |
| 26 | dbscan_cluster | -1 | 396 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 16 | 0.999999 | 0 | 0.183154 | -1 | -0.101404 | Правило доступа 1 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 6 | 1.000000 | 0 | 0.233769 | -1 | -0.052445 | Правило доступа 1 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 38 | 1.000000 | 0 | 0.242934 | -1 | -0.055441 | Правило доступа 1 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 61 | 0.999999 | 0 | 0.087865 | -1 | -0.150827 | Правило доступа 1 |
| 5 | Королёв Леонид | Сотрудник | 0 | Договор | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 39 | 1.000000 | 0 | 0.102039 | -1 | -0.099046 | Правило доступа 1 |
5 rows × 35 columns
--- Кластер 1 (99 объектов, 2.7%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.435 | 0.505 | 0.512 | 0.525 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 99 | 1.0 |
| 1 | Тип карточки | Служебная записка | 99 | 1.0 |
| 3 | Создание карточки | 1 | 99 | 1.0 |
| 4 | Редактирование карточки | 1 | 99 | 1.0 |
| 5 | Удаление карточки | 1 | 99 | 1.0 |
| 6 | Добавление файлов | 1 | 99 | 1.0 |
| 7 | Редактирование всех файлов | 1 | 99 | 1.0 |
| 8 | Удаление всех файлов | 1 | 99 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 99 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 99 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 99 | 1.0 |
| 12 | Ручное редактирование номера | 1 | 99 | 1.0 |
| 13 | Редактирование маршрута | 1 | 99 | 1.0 |
| 14 | Полный пересчет маршрута | 1 | 99 | 1.0 |
| 15 | Права супермодератора | 1 | 99 | 1.0 |
| 16 | Подписка на уведомления | 1 | 99 | 1.0 |
| 17 | Расширенные настройки прав доступа | 1 | 99 | 1.0 |
| 18 | Создание шаблона и копирование | 1 | 99 | 1.0 |
| 19 | Пропуск этапов | 1 | 99 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 99 | 1.0 |
| 21 | Редактирование всех сообщений | 1 | 99 | 1.0 |
| 22 | Добавление обсуждений | 1 | 99 | 1.0 |
| 23 | Чтение обсуждений | 1 | 99 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 99 | 1.0 |
| 25 | optics_cluster | 1 | 99 | 1.0 |
| 26 | dbscan_cluster | -1 | 99 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12 | Королёв Леонид | Сотрудник | 0 | Служебная записка | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 10 | 1.000000 | 1 | 0.511512 | -1 | -0.102556 | Правило доступа 1 |
| 13 | Королёв Леонид | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
| 15 | Королёв Леонид | Сотрудник | 0 | Служебная записка | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 9 | 0.999999 | 1 | 0.525084 | -1 | -0.056142 | Правило доступа 1 |
| 32 | Козлов Глеб | Сотрудник | 0 | Служебная записка | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 10 | 1.000000 | 1 | 0.511512 | -1 | -0.102556 | Правило доступа 1 |
| 33 | Козлов Глеб | Сотрудник | 0 | Служебная записка | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 2 | 0.999999 | 1 | 0.497225 | -1 | -0.053856 | Правило доступа 1 |
5 rows × 35 columns
--- Кластер 2 (132 объектов, 3.6%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.39 | 0.445 | 0.437 | 0.481 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 132 | 1.0 |
| 2 | Состояние карточки | Утвержден | 132 | 1.0 |
| 3 | Создание карточки | 1 | 132 | 1.0 |
| 4 | Редактирование карточки | 1 | 132 | 1.0 |
| 5 | Удаление карточки | 1 | 132 | 1.0 |
| 6 | Добавление файлов | 1 | 132 | 1.0 |
| 7 | Редактирование всех файлов | 1 | 132 | 1.0 |
| 8 | Удаление всех файлов | 1 | 132 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 132 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 132 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 132 | 1.0 |
| 12 | Ручное редактирование номера | 1 | 132 | 1.0 |
| 13 | Редактирование маршрута | 1 | 132 | 1.0 |
| 14 | Полный пересчет маршрута | 1 | 132 | 1.0 |
| 15 | Права супермодератора | 1 | 132 | 1.0 |
| 16 | Подписка на уведомления | 1 | 132 | 1.0 |
| 17 | Расширенные настройки прав доступа | 1 | 132 | 1.0 |
| 18 | Создание шаблона и копирование | 1 | 132 | 1.0 |
| 19 | Пропуск этапов | 1 | 132 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 132 | 1.0 |
| 21 | Редактирование всех сообщений | 1 | 132 | 1.0 |
| 22 | Добавление обсуждений | 1 | 132 | 1.0 |
| 23 | Чтение обсуждений | 1 | 132 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 132 | 1.0 |
| 25 | optics_cluster | 2 | 132 | 1.0 |
| 26 | dbscan_cluster | -1 | 132 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.000000 | 2 | 0.444444 | -1 | -0.055650 | Правило доступа 1 |
| 6 | Королёв Леонид | Сотрудник | 0 | Договор | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 25 | 1.000000 | 2 | 0.437202 | -1 | -0.102426 | Правило доступа 1 |
| 10 | Королёв Леонид | Сотрудник | 0 | Счет | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 11 | 0.999999 | 2 | 0.432419 | -1 | -0.102346 | Правило доступа 1 |
| 18 | Королёв Леонид | Сотрудник | 0 | Приказ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 26 | 1.000000 | 2 | 0.481352 | -1 | -0.047943 | Правило доступа 1 |
| 22 | Козлов Глеб | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.000000 | 2 | 0.444444 | -1 | -0.055650 | Правило доступа 1 |
5 rows × 35 columns
--- Кластер 3 (68 объектов, 1.9%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.718 | 0.956 | 0.97 | 0.97 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 68 | 1.0 |
| 1 | Тип карточки | Входящий документ | 68 | 1.0 |
| 2 | Состояние карточки | Проект | 68 | 1.0 |
| 3 | Создание карточки | 1 | 68 | 1.0 |
| 4 | Редактирование карточки | 1 | 68 | 1.0 |
| 5 | Удаление карточки | 1 | 68 | 1.0 |
| 6 | Добавление файлов | 1 | 68 | 1.0 |
| 7 | Редактирование всех файлов | 0 | 68 | 1.0 |
| 8 | Удаление всех файлов | 0 | 68 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 68 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 68 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 68 | 1.0 |
| 12 | Ручное редактирование номера | 0 | 68 | 1.0 |
| 13 | Редактирование маршрута | 0 | 68 | 1.0 |
| 14 | Полный пересчет маршрута | 0 | 68 | 1.0 |
| 15 | Права супермодератора | 0 | 68 | 1.0 |
| 16 | Подписка на уведомления | 1 | 68 | 1.0 |
| 17 | Расширенные настройки прав доступа | 0 | 68 | 1.0 |
| 18 | Создание шаблона и копирование | 0 | 68 | 1.0 |
| 19 | Пропуск этапов | 0 | 68 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 68 | 1.0 |
| 21 | Редактирование всех сообщений | 0 | 68 | 1.0 |
| 22 | Добавление обсуждений | 1 | 68 | 1.0 |
| 23 | Чтение обсуждений | 1 | 68 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 68 | 1.0 |
| 25 | optics_cluster | 3 | 68 | 1.0 |
| 26 | dbscan_cluster | 0 | 68 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 608 | Яковлев Григорий | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 125 | 1.0 | 3 | 0.932481 | 0 | 0.932481 | Правило доступа 2 |
| 616 | Морозов Прохор | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 126 | 1.0 | 3 | 0.970052 | 0 | 0.970052 | Правило доступа 2 |
| 624 | Ковалёв Мирон | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 126 | 1.0 | 3 | 0.970052 | 0 | 0.970052 | Правило доступа 2 |
| 632 | Орлов Камиль | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 125 | 1.0 | 3 | 0.932481 | 0 | 0.932481 | Правило доступа 2 |
| 640 | Павлов Яков | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 125 | 1.0 | 3 | 0.932481 | 0 | 0.932481 | Правило доступа 2 |
5 rows × 35 columns
Табличное представление медианных значений ключевых параметров кластеров:
| optics_cluster | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | hdbscan_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | cluster_size | percentage_cluster_size | silhouette_vals_min | silhouette_vals_mean | silhouette_vals_median | silhouette_vals_max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | Андреев Оскар | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | … | 1.000000 | -1 | -0.151356 | Правило доступа 1 | 396 | 0.108911 | 0.075547 | 0.144837 | 0.122322 | 0.242934 |
| 1 | 1 | Андреев Оскар | Сотрудник | 0 | Служебная записка | Архив | 1 | 1 | 1 | 1 | … | 1.000000 | -1 | -0.102556 | Правило доступа 1 | 99 | 0.027228 | 0.434766 | 0.505124 | 0.511512 | 0.525084 |
| 2 | 2 | Андреев Оскар | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | … | 1.000000 | -1 | -0.102426 | Правило доступа 1 | 132 | 0.036304 | 0.390265 | 0.444883 | 0.437202 | 0.481352 |
| 3 | 3 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | … | 1.000000 | 0 | 0.970052 | Правило доступа 2 | 68 | 0.018702 | 0.718475 | 0.955854 | 0.970052 | 0.970052 |
| 4 | 4 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | Проект | 1 | 1 | 1 | 1 | … | 1.000000 | 4 | 0.969936 | Правило доступа 2 | 68 | 0.018702 | 0.728001 | 0.956060 | 0.969936 | 0.969936 |
| 5 | 5 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | На согласовании | 0 | 1 | 1 | 0 | … | 1.000000 | 5 | 0.969936 | Правило доступа 3 | 48 | 0.013201 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 6 | 6 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | … | 1.000000 | 1 | 0.970052 | Правило доступа 3 | 69 | 0.018977 | 0.035318 | 0.926655 | 0.953571 | 0.953571 |
| 7 | 7 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | … | 1.000000 | 3 | 0.964722 | Правило доступа 4 | 68 | 0.018702 | 0.678287 | 0.948515 | 0.964939 | 0.964939 |
| 8 | 8 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | … | 1.000000 | 2 | 0.964665 | Правило доступа 4 | 69 | 0.018977 | 0.272646 | 0.924280 | 0.949852 | 0.949852 |
| 9 | 9 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | Утвержден | 0 | 1 | 0 | 0 | … | 1.000000 | 6 | 0.964665 | Правило доступа 4 | 48 | 0.013201 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 10 | 10 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | Архив | 0 | 1 | 0 | 0 | … | 1.000000 | 7 | 0.964722 | Правило доступа 4 | 48 | 0.013201 | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
| 11 | 11 | Васильев Демид | Сотрудник | 0 | Приказ | На согласовании | 0 | 1 | 0 | 0 | … | 0.715695 | -1 | -0.209689 | Правило доступа 8 | 102 | 0.028053 | 0.450046 | 0.597007 | 0.600132 | 0.643060 |
| 12 | 12 | Андреев Гектор | Сотрудник | 0 | Счет | Проект | 1 | 1 | 1 | 1 | … | 1.000000 | 12 | 0.954034 | Правило доступа 5 | 94 | 0.025853 | 0.722508 | 0.930195 | 0.954034 | 0.954034 |
| 13 | 13 | Андреев Гектор | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | … | 1.000000 | 8 | 0.954113 | Правило доступа 5 | 94 | 0.025853 | 0.719655 | 0.930056 | 0.954113 | 0.954113 |
| 14 | 14 | Андреев Гектор | Сотрудник | 0 | Договор | Утвержден | 1 | 1 | 1 | 0 | … | 1.000000 | 10 | 0.951143 | Правило доступа 6 | 94 | 0.025853 | 0.704674 | 0.925722 | 0.951143 | 0.951143 |
| 15 | 15 | Андреев Гектор | Сотрудник | 0 | Договор | На согласовании | 1 | 1 | 1 | 0 | … | 1.000000 | 9 | 0.951140 | Правило доступа 6 | 94 | 0.025853 | 0.704763 | 0.925726 | 0.951140 | 0.951140 |
| 16 | 16 | Андреев Гектор | Сотрудник | 0 | Счет | На согласовании | 1 | 1 | 1 | 0 | … | 1.000000 | 13 | 0.951140 | Правило доступа 6 | 94 | 0.025853 | 0.704763 | 0.925726 | 0.951140 | 0.951140 |
| 17 | 17 | Андреев Гектор | Сотрудник | 0 | Счет | Утвержден | 1 | 1 | 1 | 0 | … | 1.000000 | 14 | 0.951143 | Правило доступа 6 | 94 | 0.025853 | 0.704674 | 0.925722 | 0.951143 | 0.951143 |
| 18 | 18 | Андреев Гектор | Сотрудник | 0 | Договор | Архив | 1 | 1 | 0 | 0 | … | 1.000000 | 11 | 0.954114 | Правило доступа 7 | 94 | 0.025853 | 0.719655 | 0.930056 | 0.954114 | 0.954114 |
| 19 | 19 | Андреев Гектор | Сотрудник | 0 | Счет | Архив | 1 | 1 | 0 | 0 | … | 1.000000 | 15 | 0.954034 | Правило доступа 7 | 94 | 0.025853 | 0.722508 | 0.930195 | 0.954034 | 0.954034 |
20 rows × 40 columns
Анализ кластеров DBSCAN¶
analyzing_cluster_parameters(data_with_clusters, 'dbscan_cluster', 'dbscan_silhouette_vals', .75)
Детальный анализ кластеров с отображением значений параметров, которые характерны для 75.0% объектов кластера: --- Кластер 0 (68 объектов, 1.9%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.718 | 0.956 | 0.97 | 0.97 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 68 | 1.0 |
| 1 | Тип карточки | Входящий документ | 68 | 1.0 |
| 2 | Состояние карточки | Проект | 68 | 1.0 |
| 3 | Создание карточки | 1 | 68 | 1.0 |
| 4 | Редактирование карточки | 1 | 68 | 1.0 |
| 5 | Удаление карточки | 1 | 68 | 1.0 |
| 6 | Добавление файлов | 1 | 68 | 1.0 |
| 7 | Редактирование всех файлов | 0 | 68 | 1.0 |
| 8 | Удаление всех файлов | 0 | 68 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 68 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 68 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 68 | 1.0 |
| 12 | Ручное редактирование номера | 0 | 68 | 1.0 |
| 13 | Редактирование маршрута | 0 | 68 | 1.0 |
| 14 | Полный пересчет маршрута | 0 | 68 | 1.0 |
| 15 | Права супермодератора | 0 | 68 | 1.0 |
| 16 | Подписка на уведомления | 1 | 68 | 1.0 |
| 17 | Расширенные настройки прав доступа | 0 | 68 | 1.0 |
| 18 | Создание шаблона и копирование | 0 | 68 | 1.0 |
| 19 | Пропуск этапов | 0 | 68 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 68 | 1.0 |
| 21 | Редактирование всех сообщений | 0 | 68 | 1.0 |
| 22 | Добавление обсуждений | 1 | 68 | 1.0 |
| 23 | Чтение обсуждений | 1 | 68 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 68 | 1.0 |
| 25 | optics_cluster | 3 | 68 | 1.0 |
| 26 | dbscan_cluster | 0 | 68 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 608 | Яковлев Григорий | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 125 | 1.0 | 3 | 0.932481 | 0 | 0.932481 | Правило доступа 2 |
| 616 | Морозов Прохор | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 126 | 1.0 | 3 | 0.970052 | 0 | 0.970052 | Правило доступа 2 |
| 624 | Ковалёв Мирон | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 126 | 1.0 | 3 | 0.970052 | 0 | 0.970052 | Правило доступа 2 |
| 632 | Орлов Камиль | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 125 | 1.0 | 3 | 0.932481 | 0 | 0.932481 | Правило доступа 2 |
| 640 | Павлов Яков | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 125 | 1.0 | 3 | 0.932481 | 0 | 0.932481 | Правило доступа 2 |
5 rows × 35 columns
--- Кластер 1 (68 объектов, 1.9%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.718 | 0.956 | 0.97 | 0.97 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 68 | 1.0 |
| 1 | Тип карточки | Входящий документ | 68 | 1.0 |
| 2 | Состояние карточки | На согласовании | 68 | 1.0 |
| 3 | Создание карточки | 0 | 68 | 1.0 |
| 4 | Редактирование карточки | 1 | 68 | 1.0 |
| 5 | Удаление карточки | 0 | 68 | 1.0 |
| 6 | Добавление файлов | 1 | 68 | 1.0 |
| 7 | Редактирование всех файлов | 0 | 68 | 1.0 |
| 8 | Удаление всех файлов | 0 | 68 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 68 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 68 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 68 | 1.0 |
| 12 | Ручное редактирование номера | 0 | 68 | 1.0 |
| 13 | Редактирование маршрута | 0 | 68 | 1.0 |
| 14 | Полный пересчет маршрута | 0 | 68 | 1.0 |
| 15 | Права супермодератора | 0 | 68 | 1.0 |
| 16 | Подписка на уведомления | 1 | 68 | 1.0 |
| 17 | Расширенные настройки прав доступа | 0 | 68 | 1.0 |
| 18 | Создание шаблона и копирование | 0 | 68 | 1.0 |
| 19 | Пропуск этапов | 0 | 68 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 68 | 1.0 |
| 21 | Редактирование всех сообщений | 0 | 68 | 1.0 |
| 22 | Добавление обсуждений | 1 | 68 | 1.0 |
| 23 | Чтение обсуждений | 1 | 68 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 68 | 1.0 |
| 25 | optics_cluster | 6 | 68 | 1.0 |
| 26 | dbscan_cluster | 1 | 68 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 609 | Яковлев Григорий | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | 1 | … | 1 | 1 | 1 | 249 | 1.0 | 6 | 0.917029 | 1 | 0.932481 | Правило доступа 3 |
| 617 | Морозов Прохор | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | 1 | … | 1 | 1 | 1 | 250 | 1.0 | 6 | 0.953571 | 1 | 0.970052 | Правило доступа 3 |
| 625 | Ковалёв Мирон | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | 1 | … | 1 | 1 | 1 | 250 | 1.0 | 6 | 0.953571 | 1 | 0.970052 | Правило доступа 3 |
| 633 | Орлов Камиль | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | 1 | … | 1 | 1 | 1 | 249 | 1.0 | 6 | 0.917029 | 1 | 0.932481 | Правило доступа 3 |
| 641 | Павлов Яков | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | 1 | … | 1 | 1 | 1 | 249 | 1.0 | 6 | 0.917029 | 1 | 0.932481 | Правило доступа 3 |
5 rows × 35 columns
--- Кластер 2 (68 объектов, 1.9%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.681 | 0.948 | 0.965 | 0.965 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 68 | 1.0 |
| 1 | Тип карточки | Входящий документ | 68 | 1.0 |
| 2 | Состояние карточки | Утвержден | 68 | 1.0 |
| 3 | Создание карточки | 0 | 68 | 1.0 |
| 4 | Редактирование карточки | 0 | 68 | 1.0 |
| 5 | Удаление карточки | 0 | 68 | 1.0 |
| 6 | Добавление файлов | 1 | 68 | 1.0 |
| 7 | Редактирование всех файлов | 0 | 68 | 1.0 |
| 8 | Удаление всех файлов | 0 | 68 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 68 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 68 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 68 | 1.0 |
| 12 | Ручное редактирование номера | 0 | 68 | 1.0 |
| 13 | Редактирование маршрута | 0 | 68 | 1.0 |
| 14 | Полный пересчет маршрута | 0 | 68 | 1.0 |
| 15 | Права супермодератора | 0 | 68 | 1.0 |
| 16 | Подписка на уведомления | 1 | 68 | 1.0 |
| 17 | Расширенные настройки прав доступа | 0 | 68 | 1.0 |
| 18 | Создание шаблона и копирование | 0 | 68 | 1.0 |
| 19 | Пропуск этапов | 0 | 68 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 68 | 1.0 |
| 21 | Редактирование всех сообщений | 0 | 68 | 1.0 |
| 22 | Добавление обсуждений | 1 | 68 | 1.0 |
| 23 | Чтение обсуждений | 1 | 68 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 68 | 1.0 |
| 25 | optics_cluster | 8 | 68 | 1.0 |
| 26 | dbscan_cluster | 2 | 68 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 610 | Яковлев Григорий | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 391 | 1.0 | 8 | 0.907259 | 2 | 0.921035 | Правило доступа 4 |
| 618 | Морозов Прохор | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 392 | 1.0 | 8 | 0.949852 | 2 | 0.964665 | Правило доступа 4 |
| 626 | Ковалёв Мирон | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 392 | 1.0 | 8 | 0.949852 | 2 | 0.964665 | Правило доступа 4 |
| 634 | Орлов Камиль | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 391 | 1.0 | 8 | 0.907259 | 2 | 0.921035 | Правило доступа 4 |
| 642 | Павлов Яков | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 391 | 1.0 | 8 | 0.907259 | 2 | 0.921035 | Правило доступа 4 |
5 rows × 35 columns
--- Кластер 3 (68 объектов, 1.9%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | 0.677 | 0.948 | 0.965 | 0.965 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 68 | 1.0 |
| 1 | Тип карточки | Входящий документ | 68 | 1.0 |
| 2 | Состояние карточки | Архив | 68 | 1.0 |
| 3 | Создание карточки | 0 | 68 | 1.0 |
| 4 | Редактирование карточки | 0 | 68 | 1.0 |
| 5 | Удаление карточки | 0 | 68 | 1.0 |
| 6 | Добавление файлов | 1 | 68 | 1.0 |
| 7 | Редактирование всех файлов | 0 | 68 | 1.0 |
| 8 | Удаление всех файлов | 0 | 68 | 1.0 |
| 9 | Редактирование собственных файлов | 1 | 68 | 1.0 |
| 10 | Удаление собственных файлов | 1 | 68 | 1.0 |
| 11 | Инициация типового процесса отправки задач | 1 | 68 | 1.0 |
| 12 | Ручное редактирование номера | 0 | 68 | 1.0 |
| 13 | Редактирование маршрута | 0 | 68 | 1.0 |
| 14 | Полный пересчет маршрута | 0 | 68 | 1.0 |
| 15 | Права супермодератора | 0 | 68 | 1.0 |
| 16 | Подписка на уведомления | 1 | 68 | 1.0 |
| 17 | Расширенные настройки прав доступа | 0 | 68 | 1.0 |
| 18 | Создание шаблона и копирование | 0 | 68 | 1.0 |
| 19 | Пропуск этапов | 0 | 68 | 1.0 |
| 20 | Редактирование своих сообщений | 1 | 68 | 1.0 |
| 21 | Редактирование всех сообщений | 0 | 68 | 1.0 |
| 22 | Добавление обсуждений | 1 | 68 | 1.0 |
| 23 | Чтение обсуждений | 1 | 68 | 1.0 |
| 24 | Чтение и отправка сообщений | 1 | 68 | 1.0 |
| 25 | optics_cluster | 7 | 68 | 1.0 |
| 26 | dbscan_cluster | 3 | 68 | 1.0 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 611 | Яковлев Григорий | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 394 | 1.0 | 7 | 0.921244 | 3 | 0.920776 | Правило доступа 4 |
| 619 | Морозов Прохор | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 393 | 1.0 | 7 | 0.964939 | 3 | 0.964722 | Правило доступа 4 |
| 627 | Ковалёв Мирон | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 393 | 1.0 | 7 | 0.964939 | 3 | 0.964722 | Правило доступа 4 |
| 635 | Орлов Камиль | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 394 | 1.0 | 7 | 0.921244 | 3 | 0.920776 | Правило доступа 4 |
| 643 | Павлов Яков | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | 394 | 1.0 | 7 | 0.921244 | 3 | 0.920776 | Правило доступа 4 |
5 rows × 35 columns
Табличное представление медианных значений ключевых параметров кластеров:
| dbscan_cluster | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | Название правила доступа | cluster_size | percentage_cluster_size | silhouette_vals_min | silhouette_vals_mean | silhouette_vals_median | silhouette_vals_max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | … | 1.0 | 3 | 0.970052 | Правило доступа 2 | 68 | 0.018702 | 0.718475 | 0.955854 | 0.970052 | 0.970052 |
| 1 | 1 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | … | 1.0 | 6 | 0.953571 | Правило доступа 3 | 68 | 0.018702 | 0.718475 | 0.955854 | 0.970052 | 0.970052 |
| 2 | 2 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | … | 1.0 | 8 | 0.949852 | Правило доступа 4 | 68 | 0.018702 | 0.681201 | 0.948306 | 0.964665 | 0.964665 |
| 3 | 3 | Алексеев Эрнест | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | … | 1.0 | 7 | 0.964939 | Правило доступа 4 | 68 | 0.018702 | 0.676712 | 0.948207 | 0.964722 | 0.964722 |
| 4 | 4 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | Проект | 1 | 1 | 1 | 1 | … | 1.0 | 4 | 0.969936 | Правило доступа 2 | 68 | 0.018702 | 0.728001 | 0.956060 | 0.969936 | 0.969936 |
| 5 | 5 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | На согласовании | 0 | 1 | 1 | 0 | … | 1.0 | 5 | 1.000000 | Правило доступа 3 | 68 | 0.018702 | 0.728001 | 0.956060 | 0.969936 | 0.969936 |
| 6 | 6 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | Утвержден | 0 | 1 | 0 | 0 | … | 1.0 | 9 | 1.000000 | Правило доступа 4 | 68 | 0.018702 | 0.681201 | 0.948306 | 0.964665 | 0.964665 |
| 7 | 7 | Алексеев Эрнест | Сотрудник | 0 | Служебная записка | Архив | 0 | 1 | 0 | 0 | … | 1.0 | 10 | 1.000000 | Правило доступа 4 | 68 | 0.018702 | 0.676712 | 0.948207 | 0.964722 | 0.964722 |
| 8 | 8 | Андреев Гектор | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | … | 1.0 | 13 | 0.954113 | Правило доступа 5 | 94 | 0.025853 | 0.719655 | 0.930056 | 0.954113 | 0.954113 |
| 9 | 9 | Андреев Гектор | Сотрудник | 0 | Договор | На согласовании | 1 | 1 | 1 | 0 | … | 1.0 | 15 | 0.951140 | Правило доступа 6 | 94 | 0.025853 | 0.704763 | 0.925726 | 0.951140 | 0.951140 |
| 10 | 10 | Андреев Гектор | Сотрудник | 0 | Договор | Утвержден | 1 | 1 | 1 | 0 | … | 1.0 | 14 | 0.951143 | Правило доступа 6 | 94 | 0.025853 | 0.704674 | 0.925722 | 0.951143 | 0.951143 |
| 11 | 11 | Андреев Гектор | Сотрудник | 0 | Договор | Архив | 1 | 1 | 0 | 0 | … | 1.0 | 18 | 0.954114 | Правило доступа 7 | 94 | 0.025853 | 0.719655 | 0.930056 | 0.954114 | 0.954114 |
| 12 | 12 | Андреев Гектор | Сотрудник | 0 | Счет | Проект | 1 | 1 | 1 | 1 | … | 1.0 | 12 | 0.954034 | Правило доступа 5 | 94 | 0.025853 | 0.722508 | 0.930195 | 0.954034 | 0.954034 |
| 13 | 13 | Андреев Гектор | Сотрудник | 0 | Счет | На согласовании | 1 | 1 | 1 | 0 | … | 1.0 | 16 | 0.951140 | Правило доступа 6 | 94 | 0.025853 | 0.704763 | 0.925726 | 0.951140 | 0.951140 |
| 14 | 14 | Андреев Гектор | Сотрудник | 0 | Счет | Утвержден | 1 | 1 | 1 | 0 | … | 1.0 | 17 | 0.951143 | Правило доступа 6 | 94 | 0.025853 | 0.704674 | 0.925722 | 0.951143 | 0.951143 |
| 15 | 15 | Андреев Гектор | Сотрудник | 0 | Счет | Архив | 1 | 1 | 0 | 0 | … | 1.0 | 19 | 0.954034 | Правило доступа 7 | 94 | 0.025853 | 0.722508 | 0.930195 | 0.954034 | 0.954034 |
16 rows × 40 columns
Анализ выбросов¶
# Детальный анализ параметров выбросов
def emissions_analysis(data_with_clusters, big_name, small_name, minimum_cluster_share):
# Анализ выбросов, полученных в результате кластеризации методом OPTICS
print(f'Анализ выбросов, полученных в результате кластеризации методом {big_name}')
cluster_data = data_with_clusters[data_with_clusters[small_name+'_cluster'] < 0]
print(f"\n\n--- Кластер выбросов ({len(cluster_data)} объектов, {len(cluster_data)/len(data_with_clusters):.1%}) ---")
print('\nСилуэтная оценка качества объектов кластера выбросов:')
display(pd.DataFrame({'Min':[cluster_data[small_name+'_silhouette_vals'].min()],
'Mean':[cluster_data[small_name+'_silhouette_vals'].mean()],
'Median':[cluster_data[small_name+'_silhouette_vals'].median()],
'Max':[cluster_data[small_name+'_silhouette_vals'].max()]}).round(3))
analysis_cols = []
for col in cluster_data.columns:
if 2 <= cluster_data[col].nunique() <= 50:
analysis_cols.append(col)
if len(analysis_cols) >= 30:
break
if not analysis_cols:
# Если не нашли подходящие, берем первые 3 с наименьшим количеством категорий
col_stats = [(col, cluster_data[col].nunique()) for col in data.columns]
col_stats.sort(key=lambda x: x[1])
analysis_cols = [col for col, count in col_stats[:3]]
col = []
value = []
count = []
percentage = []
for c in analysis_cols:
top_value = cluster_data[c].value_counts().head(1)
if len(top_value) > 0:
col.append(c)
value.append(top_value.index[0])
count.append(top_value.values[0])
percentage.append(count[-1] / len(cluster_data))
print('\nКлючевые параметры, характеризующие кластер:')
display_claster = pd.DataFrame({'Параметр':col, 'Модальное значение':value, 'Количество':count, 'Доля в кластере':percentage})
display(display_claster[display_claster['Доля в кластере'] > minimum_cluster_share])
print('\nПримеры объектов кластера:')
display(cluster_data.head(5))
Анализ выбросов HDBSCAN¶
# Анализ выбросов, полученных на основе силуэтной оценки
# объектов сущствующих кластеров HDBSCAN
print('Анализ выбросов, полученных на основе силуэтной оценки объектов сущствующих кластеров HDBSCAN.')
analyzing_cluster_parameters(data_with_clusters[data_with_clusters['hdbscan_silhouette_vals'] < 0],
'hdbscan_cluster', 'hdbscan_silhouette_vals', .75)
Анализ выбросов, полученных на основе силуэтной оценки объектов сущствующих кластеров HDBSCAN. Детальный анализ кластеров с отображением значений параметров, которые характерны для 75.0% объектов кластера: --- Кластер 0 (0 объектов, 0.0%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | NaN | NaN | NaN | NaN |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере |
|---|
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа |
|---|
0 rows × 35 columns
--- Кластер 1 (0 объектов, 0.0%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | NaN | NaN | NaN | NaN |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере |
|---|
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа |
|---|
0 rows × 35 columns
--- Кластер 2 (0 объектов, 0.0%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | NaN | NaN | NaN | NaN |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере |
|---|
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа |
|---|
0 rows × 35 columns
--- Кластер 3 (0 объектов, 0.0%) --- Силуэтная оценка качества объектов кластера:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | NaN | NaN | NaN | NaN |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере |
|---|
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа |
|---|
0 rows × 35 columns
Табличное представление медианных значений ключевых параметров кластеров:
| hdbscan_cluster | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | cluster_size | percentage_cluster_size | silhouette_vals_min | silhouette_vals_mean | silhouette_vals_median | silhouette_vals_max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 91 | Контролер качества | Статическая роль | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | … | -0.109725 | -1 | -0.201340 | Правило доступа 1083 | NaN | NaN | NaN | NaN | NaN | NaN |
| 1 | 104 | Отдел кадров | Подразделение | 0 | Счет | Архив | 1 | 1 | 0 | 0 | … | 0.037925 | -1 | -0.077391 | Правило доступа 71 | NaN | NaN | NaN | NaN | NaN | NaN |
| 2 | 109 | Отдел кадров | Подразделение | 0 | Приказ | На согласовании | 0 | 1 | 1 | 0 | … | -0.041260 | -1 | -0.103630 | Правило доступа 80 | NaN | NaN | NaN | NaN | NaN | NaN |
| 3 | 127 | IT-отдел | Подразделение | 0 | Служебная записка | Архив | 1 | 1 | 1 | 0 | … | 0.053323 | -1 | -0.054210 | Правило доступа 24 | NaN | NaN | NaN | NaN | NaN | NaN |
| 4 | 129 | IT-отдел | Подразделение | 0 | Приказ | Архив | 0 | 1 | 0 | 0 | … | -0.123111 | -1 | -0.108627 | Правило доступа 20 | NaN | NaN | NaN | NaN | NaN | NaN |
| … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … | … |
| 65 | 502 | Виноградов Валентин | Сотрудник | 0 | Приказ | На согласовании | 0 | 1 | 0 | 0 | … | -0.009583 | -1 | -0.168284 | Правило доступа 472 | NaN | NaN | NaN | NaN | NaN | NaN |
| 66 | 504 | Зайцев Борис | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 1 | 0 | … | -0.072984 | -1 | -0.232094 | Правило доступа 436 | NaN | NaN | NaN | NaN | NaN | NaN |
| 67 | 507 | Новиков Яков | Сотрудник | 0 | Приказ | На согласовании | 0 | 1 | 0 | 0 | … | 0.077647 | -1 | -0.111883 | Правило доступа 108 | NaN | NaN | NaN | NaN | NaN | NaN |
| 68 | 514 | Романов Жан | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 0 | 0 | … | -0.184594 | -1 | -0.309535 | Правило доступа 911 | NaN | NaN | NaN | NaN | NaN | NaN |
| 69 | 515 | Киселёв Эльбрус | Сотрудник | 0 | Договор | Архив | 0 | 1 | 0 | 0 | … | -0.047532 | -1 | -0.206904 | Правило доступа 630 | NaN | NaN | NaN | NaN | NaN | NaN |
70 rows × 40 columns
emissions_analysis(data_with_clusters, 'HDBSCAN', 'hdbscan', .75)
Анализ выбросов, полученных в результате кластеризации методом HDBSCAN --- Кластер выбросов (399 объектов, 11.0%) --- Силуэтная оценка качества объектов кластера выбросов:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | -0.911 | -0.481 | -0.473 | -0.338 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 368 | 0.922306 |
| 5 | Удаление карточки | 0 | 397 | 0.994987 |
| 15 | optics_cluster | -1 | 392 | 0.982456 |
| 16 | dbscan_cluster | -1 | 391 | 0.979950 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1144 | Андреев Оскар | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | -1 | -0.910268 | 3 | 0.718475 | 0 | 0.718475 | Правило доступа 2 |
| 1145 | Андреев Оскар | Сотрудник | 0 | Входящий документ | На согласовании | 0 | 1 | 1 | 0 | 1 | … | 1 | 1 | 1 | -1 | -0.905112 | 6 | 0.708908 | 1 | 0.718475 | Правило доступа 3 |
| 1146 | Андреев Оскар | Сотрудник | 0 | Входящий документ | Утвержден | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | -1 | -0.905234 | 8 | 0.671886 | 2 | 0.681201 | Правило доступа 4 |
| 1147 | Андреев Оскар | Сотрудник | 0 | Входящий документ | Архив | 0 | 1 | 0 | 0 | 1 | … | 1 | 1 | 1 | -1 | -0.906110 | 7 | 0.678287 | 3 | 0.676712 | Правило доступа 4 |
| 1148 | Андреев Оскар | Сотрудник | 0 | Служебная записка | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | -1 | -0.910676 | 4 | 0.728001 | 4 | 0.728001 | Правило доступа 2 |
5 rows × 35 columns
Анализ выбросов OPTICS¶
# Анализ выбросов, полученных на основе силуэтной оценки
# объектов сущствующих кластеров OPTICS
print('Анализ выбросов, полученных на основе силуэтной оценки объектов сущствующих кластеров OPTICS.')
analyzing_cluster_parameters(data_with_clusters[data_with_clusters['optics_silhouette_vals'] < 0],
'optics_cluster', 'optics_silhouette_vals', .75)
Анализ выбросов, полученных на основе силуэтной оценки объектов сущствующих кластеров OPTICS. Детальный анализ кластеров с отображением значений параметров, которые характерны для 75.0% объектов кластера: Объекты кластеров не обнаружены. Табличное представление медианных значений ключевых параметров кластеров:
| optics_cluster | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | hdbscan_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | cluster_size | percentage_cluster_size | silhouette_vals_min | silhouette_vals_mean | silhouette_vals_median | silhouette_vals_max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| optics_cluster | |||||||||||||||||||||
| -1 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | … | NaN | NaN | NaN | NaN | 1417 | 1.0 | -0.962357 | -0.200562 | -0.1402 | -0.000141 |
1 rows × 40 columns
emissions_analysis(data_with_clusters, 'OPTICS', 'optics', .75)
Анализ выбросов, полученных в результате кластеризации методом OPTICS --- Кластер выбросов (1669 объектов, 45.9%) --- Силуэтная оценка качества объектов кластера выбросов:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | -0.962 | -0.164 | -0.115 | 0.136 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 1537 | 0.920911 |
| 5 | Удаление карточки | 0 | 1632 | 0.977831 |
| 7 | Редактирование всех файлов | 0 | 1628 | 0.975434 |
| 8 | Удаление всех файлов | 0 | 1636 | 0.980228 |
| 12 | Ручное редактирование номера | 0 | 1636 | 0.980228 |
| 13 | Редактирование маршрута | 0 | 1628 | 0.975434 |
| 14 | Полный пересчет маршрута | 0 | 1636 | 0.980228 |
| 15 | Права супермодератора | 0 | 1636 | 0.980228 |
| 17 | Расширенные настройки прав доступа | 0 | 1636 | 0.980228 |
| 18 | Создание шаблона и копирование | 0 | 1628 | 0.975434 |
| 19 | Пропуск этапов | 0 | 1636 | 0.980228 |
| 21 | Редактирование всех сообщений | 0 | 1636 | 0.980228 |
| 25 | dbscan_cluster | -1 | 1609 | 0.964050 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 14 | Королёв Леонид | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.000000 | -1 | -0.788550 | -1 | -0.056687 | Правило доступа 1 |
| 34 | Козлов Глеб | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.000000 | -1 | -0.788550 | -1 | -0.056687 | Правило доступа 1 |
| 54 | Пономарёв Феликс | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 4 | 0.666667 | -1 | -0.788877 | -1 | -0.033782 | Правило доступа 1 |
| 74 | Сорокин Феликс | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.000000 | -1 | -0.788550 | -1 | -0.056687 | Правило доступа 1 |
| 94 | Беляев Натан | Сотрудник | 0 | Служебная записка | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 1 | 1.000000 | -1 | -0.788550 | -1 | -0.056687 | Правило доступа 1 |
5 rows × 35 columns
Анализ выбросов DBSCAN¶
# Анализ выбросов, полученных на основе силуэтной оценки
# объектов сущствующих кластеров DBSCAN
print('Анализ выбросов, полученных на основе силуэтной оценки объектов сущствующих кластеров DBSCAN.')
analyzing_cluster_parameters(data_with_clusters[data_with_clusters['dbscan_silhouette_vals'] < 0],
'dbscan_cluster', 'dbscan_silhouette_vals', .75)
Анализ выбросов, полученных на основе силуэтной оценки объектов сущствующих кластеров DBSCAN. Детальный анализ кластеров с отображением значений параметров, которые характерны для 75.0% объектов кластера: Объекты кластеров не обнаружены. Табличное представление медианных значений ключевых параметров кластеров:
| dbscan_cluster | Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | … | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | Название правила доступа | cluster_size | percentage_cluster_size | silhouette_vals_min | silhouette_vals_mean | silhouette_vals_median | silhouette_vals_max | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dbscan_cluster | |||||||||||||||||||||
| -1 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | … | NaN | NaN | NaN | NaN | 2321 | 1.0 | -0.680342 | -0.172556 | -0.147051 | -0.000306 |
1 rows × 40 columns
emissions_analysis(data_with_clusters, 'DBSCAN', 'dbscan', .75)
Анализ выбросов, полученных в результате кластеризации методом DBSCAN --- Кластер выбросов (2340 объектов, 64.4%) --- Силуэтная оценка качества объектов кластера выбросов:
| Min | Mean | Median | Max | |
|---|---|---|---|---|
| 0 | -0.68 | -0.171 | -0.146 | 0.062 |
Ключевые параметры, характеризующие кластер:
| Параметр | Модальное значение | Количество | Доля в кластере | |
|---|---|---|---|---|
| 0 | Тип роли | Сотрудник | 2208 | 0.94359 |
Примеры объектов кластера:
| Название роли | Тип роли | Скрытая роль | Тип карточки | Состояние карточки | Создание карточки | Чтение карточки | Редактирование карточки | Удаление карточки | Добавление файлов | … | Добавление обсуждений | Чтение обсуждений | Чтение и отправка сообщений | hdbscan_cluster | hdbscan_silhouette_vals | optics_cluster | optics_silhouette_vals | dbscan_cluster | dbscan_silhouette_vals | Название правила доступа | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 16 | 0.999999 | 0 | 0.183154 | -1 | -0.101404 | Правило доступа 1 |
| 1 | Королёв Леонид | Сотрудник | 0 | Входящий документ | На согласовании | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 6 | 1.000000 | 0 | 0.233769 | -1 | -0.052445 | Правило доступа 1 |
| 2 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Утвержден | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 3 | 1.000000 | 2 | 0.444444 | -1 | -0.055650 | Правило доступа 1 |
| 3 | Королёв Леонид | Сотрудник | 0 | Входящий документ | Архив | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 38 | 1.000000 | 0 | 0.242934 | -1 | -0.055441 | Правило доступа 1 |
| 4 | Королёв Леонид | Сотрудник | 0 | Договор | Проект | 1 | 1 | 1 | 1 | 1 | … | 1 | 1 | 1 | 61 | 0.999999 | 0 | 0.087865 | -1 | -0.150827 | Правило доступа 1 |
5 rows × 35 columns


