Как можно создать подкластер внутри кластеров в python?

#python #scikit-learn #cluster-analysis #hierarchical-clustering

Вопрос:

Мне было интересно, есть ли элегантный способ (суб)кластеризации внутри кластеров. Скажем, я использую км кластеризации на простой таблицы данных с n_clusters=3 и снова я хочу повторно кластера/с подгруппой n_clusters=3 , так что я не уверен, что вспомнить этой проблеме иерархической кластеризации, который предлагает AgglomerativeClustering() и ОФК n_clusters=2 по умолчанию, и оно должно быть всегда 2 я никогда не испытывал к силе более чем в 2 из-за не уверен, что это имеет смысл воспользоваться суб-кластеров с n_clusters > 2 помощью AgglomerativeClustering() для данного контекста или это одно и то же.

Я только что нашел этот относительный R язык сообщений.

Я пытался вдохновиться примерами из scikit-learn и безуспешно создать один из них.

 import numpy as np
from sklearn.datasets.samples_generator import make_blobs
from sklearn.cluster import KMeans

###############################################################################
# Generate sample data
centers = [[1, 1], [-1, -1], [1, -1]]
X, _ = make_blobs(n_samples=10000, centers=centers, cluster_std=0.6)

###############################################################################
# Compute clustering with K-Mean

# The following bandwidth can be automatically detected using
bandwidth = estimate_bandwidth(X, quantile=0.2, n_samples=500)
def KM_(n_clusters=4):
    km = KMeans(n_clusters=n_clusters, random_state=0)
    km.fit(X)
    labels = km.labels_
    cluster_centers = km.cluster_centers_

    labels_unique = np.unique(labels)
    n_clusters_ = len(labels_unique)

    print("number of estimated clusters : %d" % n_clusters_)

#call clustering function
cluster= KM_(4)
#re-call clustering function
subcluster = KM_(3).cluster