2016-04-08 4 views
0

Документация sklearn.cluster.AgglomerativeClustering упоминает, чтоsklearn агломерационной кластеризация: динамически обновляемые число кластеров

при изменении количества кластеров и использования кэширования, может быть выгодно, чтобы вычислить полное дерево ,

Это, по-видимому, означает, что можно сначала вычислить полное дерево, а затем быстро обновить количество желаемых кластеров по мере необходимости, не перекомпонуя дерево (с кешированием).

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

Update: Для того, чтобы уточнить, подходит метод не принимает число кластеров в качестве входных данных: http://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering.fit

ответ

0

Вы установили каталог кэширование с В параметре memory = 'mycachedir', а затем, если вы установите compute_full_tree=True, когда вы повторно fit с различными значения n_clusters, он будет использовать кэшированное дерево, а не пересчитывать каждый раз. Чтобы дать вам пример того, как сделать это с помощью API gridsearch sklearn в:

from sklearn.cluster import AgglomerativeClustering 
from sklearn.grid_search import GridSearchCV 

ac = AgglomerativeClustering(memory='mycachedir', 
          compute_full_tree=True) 
classifier = GridSearchCV(ac, 
          {n_clusters: range(2,6)}, 
          scoring = 'adjusted_rand_score', 
          n_jobs=-1, verbose=2) 
classifier.fit(X,y) 
+0

Спасибо за вашу помощь, однако подходит метод не принимает n_clusters как вход: http://scikit-learn.org/stable/modules /generated/sklearn.cluster.AgglomerativeClustering.html#sklearn.cluster.AgglomerativeClustering.fit – Akim

+0

У меня был другой взгляд, и кажется, что правильный способ сделать это через model.set_params (n_clusters = x) http: // scikit-learn .org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html # sklearn.cluster.AgglomerativeClustering.set_params – Akim

+0

вы никогда не передаете параметры методу соответствия, вы устанавливаете их при инициализации вашего классификатора, например 'ac = AgglomerativeClustering (memory = 'mycachedir', compute_full_tree = True, n_clusters = 10)' (на самом деле это то, что делает set_params, но это дополнительный шаг, который вам не нужен) – maxymoo

 Смежные вопросы

  • Нет связанных вопросов^_^