← Назад к вопросам

Что такое алгоритм подбора модели кластеризации и её оценки?

2.0 Middle🔥 161 комментариев
#Машинное обучение#Метрики и оценка моделей

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое алгоритм подбора модели кластеризации и её оценки?

Определение

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

Основные этапы процесса подбора

1. Предварительная обработка данных

  • Нормализация/стандартизация признаков
  • Удаление выбросов
  • Обработка пропущенных значений
  • Снижение размерности (PCA, t-SNE) при необходимости

2. Выбор кандидатов алгоритмов Основные семейства алгоритмов кластеризации:

  • Разделяющие методы: K-Means, K-Medoids
  • Иерархические методы: Agglomerative, Divisive
  • Плотностные методы: DBSCAN, HDBSCAN
  • Вероятностные модели: Gaussian Mixture Models (GMM)
  • Спектральные методы: Spectral Clustering

3. Поиск гиперпараметров Для каждого алгоритма подбираются оптимальные параметры:

  • K-Means: число кластеров k
  • DBSCAN: eps (радиус соседства), min_samples (минимум точек)
  • Иерархическая кластеризация: тип связи (linkage), метрика расстояния

Метрики оценки качества кластеризации

Внутренние метрики (не требуют истинных меток):

from sklearn.metrics import silhouette_score, davies_bouldin_score, calinski_harabasz_score

# Silhouette Score: -1 to 1 (выше лучше)
sil_score = silhouette_score(X, labels)

# Davies-Bouldin Index (ниже лучше)
db_index = davies_bouldin_score(X, labels)

# Calinski-Harabasz Index (выше лучше)
ch_index = calinski_harabasz_score(X, labels)

# Inertia (инерция, для K-Means)
inertia = model.inertia_

Внешние метрики (используют истинные метки):

from sklearn.metrics import adjusted_rand_score, normalized_mutual_info_score

# Adjusted Rand Index
ari = adjusted_rand_score(y_true, labels)

# Normalized Mutual Information
nmi = normalized_mutual_info_score(y_true, labels)

# Purity
def purity_score(y_true, y_pred):
    from scipy.optimize import linear_sum_assignment
    import numpy as np
    y_true = np.asarray(y_true)
    y_pred = np.asarray(y_pred)
    
    w = np.zeros((len(np.unique(y_true)), len(np.unique(y_pred))))
    for i, c1 in enumerate(np.unique(y_true)):
        for j, c2 in enumerate(np.unique(y_pred)):
            w[i, j] = len(y_true[(y_true == c1) & (y_pred == c2)])
    
    row_ind, col_ind = linear_sum_assignment(-w)
    return w[row_ind, col_ind].sum() / len(y_true)

Практический пример: оптимизация K-Means

from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
import numpy as np

k_range = range(2, 11)
scores = []

for k in k_range:
    kmeans = KMeans(n_clusters=k, random_state=42, n_init=10)
    labels = kmeans.fit_predict(X)
    score = silhouette_score(X, labels)
    scores.append(score)
    print(f"k={k}: Silhouette={score:.4f}")

optimal_k = k_range[np.argmax(scores)]
print(f"Оптимальное количество кластеров: {optimal_k}")

final_model = KMeans(n_clusters=optimal_k, random_state=42)
final_labels = final_model.fit_predict(X)

Методология подбора

Основные метрики для выбора:

  1. Silhouette Score — измеряет, насколько хорошо точка соответствует своему кластеру
  2. Davies-Bouldin Index — отношение среднего расстояния внутри кластеров к расстоянию между кластерами
  3. Calinski-Harabasz Index — отношение межкластерной дисперсии к внутрикластерной
  4. Inertia — сумма квадратов расстояний от точек до центроидов (только K-Means)

Важные соображения

  1. Выбор метрики зависит от природы данных и задачи:

    • Silhouette Score хорошо работает с выпуклыми кластерами
    • DBSCAN лучше для произвольных форм кластеров
  2. Проблема проклятия размерности — в высоких размерностях расстояния становятся менее информативными

  3. Стабильность модели — используйте кросс-валидацию и проверяйте результаты на разных выборках

  4. Визуализация — 2D проекция (PCA, t-SNE) помогает интерпретировать результаты

Правильный подбор модели кластеризации требует итеративного процесса экспериментирования, оценки результатов и анализа качества полученных кластеров.

Что такое алгоритм подбора модели кластеризации и её оценки? | PrepBro