Microsegment.ru
  • Главная страница
  • О проекте
  • Портфолио
  • Блог
Системы

Кластерный анализ модели предоставления разрешений в Tessa

Кластерный анализ модели предоставления разрешений в Tessa
Системы

Рост количества пользователей информационной системы (далее ИС), как правило, приводит к усложнению ролевой модели и модели предоставления прав (далее Модели) в ИС. Для обеспечения управляемости ИС, при росте количества пользователей, требуется регулярно анализировать и оптимизировать Модели. Для анализа существующих Моделей в ИС предлагается:

  1. Кластеризировать данные Моделей;
  2. Провести бизнес/системный анализ Моделей с учетом данных кластеризации.

Кластеризация блоьших Моделей имеет ряд условий:

  • Требуется кластеризировать большое количество объектов и признаков. Количество объектов может достигать сотен тысяч и более, а признаков до несколько десятков и даже сотен.
  • Как правило, заранее не известно количество, размер и плотность кластеров.
  • Требуется обеспечение масштабируемости алгоритма кластеризации и его воспроизводимость.

При наличии подобных условий основной выбор — это методы кластеризации 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.

Загрузка библиотек¶

In [4]:
# Загрузка библиотек
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

Загрузка и предобработка данных Моделей¶

In [6]:
# Загрузка и подготовка данных
data = pd.read_csv('df_permission.csv', encoding='utf-8-sig', sep=',')

print('Анализ данных:')
print(f'Размер: {data.shape}')
data.head(3)
Анализ данных:
Размер: (3660, 30)
Out[6]:
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

In [7]:
# Преобразование параметров в строки и заполнение пропусков
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


Out[7]:
Название роли Тип роли Скрытая роль Тип карточки Состояние карточки Создание карточки Чтение карточки Редактирование карточки Удаление карточки Добавление файлов … Подписка на уведомления Расширенные настройки прав доступа Создание шаблона и копирование Пропуск этапов Редактирование своих сообщений Редактирование всех сообщений Добавление обсуждений Чтение обсуждений Чтение и отправка сообщений Название правила доступа
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

In [8]:
# Перенос названий правил доступа в отдельный датафрейм
# (названия правил имеют сильную корреляцию с другими параметрами датафрейма 
# и потому не подходят для кластеризации, 
# но они понадобятся для анализа результатов кластеризации)
access_rules_names = data['Название правила доступа']
data = data.drop(['Название правила доступа'], axis=1)

access_rules_names
Out[8]:
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
In [9]:
# Анализ уникальных значений
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 уникальных значений
In [10]:
# Упрощенное кодирование категориальных признаков
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) признаков
Out[10]:
Название роли Тип роли_Подразделение Тип роли_Сотрудник Тип роли_Статическая роль Скрытая роль_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

In [11]:
# Стандартизация
scaler = StandardScaler()
scaled_data = scaler.fit_transform(encoded_data)

print('Размерность:', scaled_data.shape)
scaled_data
Размерность: (3636, 59)
Out[11]:
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]])
In [12]:
# Уменьшение размерности с проверкой
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)

Датафрейм с данными, подготовленными для кластеризации:
Out[12]:
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' обязателен для кластеров разной плотности Единственный метод, находящий кластеры разной плотности
In [14]:
# Автоматический подбор параметров кластеризации
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

Кластеризация¶

In [16]:
# Создание нового датафрейма для хранения данных о кластеризации
data_with_clusters = data.copy()
data_with_clusters.head(5)
Out[16]:
Название роли Тип роли Скрытая роль Тип карточки Состояние карточки Создание карточки Чтение карточки Редактирование карточки Удаление карточки Добавление файлов … Права супермодератора Подписка на уведомления Расширенные настройки прав доступа Создание шаблона и копирование Пропуск этапов Редактирование своих сообщений Редактирование всех сообщений Добавление обсуждений Чтение обсуждений Чтение и отправка сообщений
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

In [17]:
# Сохранение результатов кластеризации в датафрейм
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))
In [18]:
# Вывод итоговой информации кластеризации
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¶

In [20]:
# Кластеризация методом HDBSCAN.
# Желательно опробовать метод без дополнительных параметров, 
# т.к. он хорош даже "из коробки"
clusterer = HDBSCAN(copy=False, # обязательный параметр
                    min_cluster_size=min_cluster_size, # основной параметр
                    metric='euclidean',
                    cluster_selection_method='eom')
cluster_labels = clusterer.fit_predict(reduced_data)
In [21]:
# Сохранение результатов кластеризации 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

In [22]:
# Итоговая информация кластеризации методом 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¶

In [24]:
# Кластеризация методом 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:]
In [25]:
# Сохранение результатов кластеризации 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

In [26]:
# Итоговая информация кластеризации методом 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¶

In [28]:
# Кластеризация методом DBSCAN.
# Желательно опробовать метод без дополнительных параметров, 
# т.к. он хорош даже "из коробки"
dbscan = DBSCAN(eps=eps,
                min_samples=min_samples)
cluster_labels = dbscan.fit_predict(reduced_data)
In [29]:
# Сохранение результатов кластеризации 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

In [30]:
# Итоговая информация кластеризации методом 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%)

Анализ кластеров¶

In [32]:
# Добавление названия правил доступа для анализа кластеров
data_with_clusters['Название правила доступа'] = access_rules_names
In [33]:
# Детальный анализ параметров кластеров
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¶

In [35]:
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¶

In [37]:
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¶

In [39]:
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

Анализ выбросов¶

In [41]:
# Детальный анализ параметров выбросов
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¶

In [43]:
# Анализ выбросов, полученных на основе силуэтной оценки 
# объектов сущствующих кластеров 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

In [44]:
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¶

In [46]:
# Анализ выбросов, полученных на основе силуэтной оценки 
# объектов сущствующих кластеров 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

In [47]:
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¶

In [49]:
# Анализ выбросов, полученных на основе силуэтной оценки 
# объектов сущствующих кластеров 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

In [50]:
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

Python tessa анализ информационная система кластерный анализ корпоративная информационная система практика

Предыдущая статьяАнализ ошибок в Tessa (Тесса)Следующая статья DeepSeek сгенерировал ролевую модель предоставления разрешений в Tessa

Рубрики

Метки

abc abcd Apache Airflow CI/CD Data Warehouse Docker excel Git Grafana Great Expectations ms sql pandas PostgreSQL Python sql tessa VBA xyz Zabbix анализ виртуальный помощник данные знания информационная система информация искусственный интеллект кластерный анализ компетенции корпоративная информационная система маркетинг математика мудрость о проекте оптимизация ошибка практика программное обеспечение ролевая модель теория теория вероятностей тесса тест хранилище данных юмор языки программирования

Политика конфиденциальности

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




Администрация и владельцы данного информационного ресурса не несут ответственности за возможные последствия, связанные с использованием информации, размещенной на нем.


Все права защищены. При копировании материалов сайта обязательно указывать ссылку на © Microsegment.ru (2020-2026)