Scikit-learn: Mejorar el diseño de clases para AgglomerativeClustering y FeatureAgglomeration (estaba pooling_func en AgglomerativeClustering no funciona)

Creado en 28 sept. 2017  ·  3Comentarios  ·  Fuente: scikit-learn/scikit-learn

Descripción


pooling_func en AgglomerativeClustering no funciona.

Pasos / Código para reproducir

from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
from sklearn.cluster import AgglomerativeClustering


centers = [[1, 1], [-1, -1], [1, -1]]
X, labels_true = make_blobs(n_samples=300, centers=centers, cluster_std=0.5,
                            random_state=0)

model = AgglomerativeClustering(linkage='complete',
                                connectivity=None,
                                affinity = 'cosine',
                                pooling_func = "test_error",
                                n_clusters=3)
model.fit(X)

Resultados previstos


Genere el error porque pooling_func no se puede llamar. Es una cuerda.

Resultados actuales


Sin advertencia, sin error

Versiones


Linux-4.4.0-64-generic-x86_64-con-debian-stretch-sid
Python 3.5.3 | empaquetado por conda-forge | (predeterminado, 9 de febrero de 2017, 14:37:12)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)]
NumPy 1.13.1
CIENCIA 0.19.1
Scikit-Learn 0.19.0

Easy help wanted

Todos 3 comentarios

Me parece que esto es un problema de diseño de clase: FeatureAgglomeration se deriva de AgglomerativeClustering pero pooling_func solo se usa en AgglomerativeClustering.transform.

Siéntete libre de abrir un PR. No he mirado en detalle, pero una posible solución sería que FeatureAgglomeration y AgglomerativeClustering deriven de una clase base común y tener pooling_func solo en FeatureAgglomeration.

Dicho esto, puede haber razones por las que se hizo así, aunque no puedo pensar en ninguna.

(Y FeatureAgglomeration probablemente debería ser una envoltura o una mezcla ...)

El 28 de septiembre de 2017 a las 21:24, "Loïc Estève" [email protected] escribió:

Me parece que esto es un problema de diseño de clase: FeatureAgglomeration
deriva de AgglomerativeClustering pero pooling_func solo se usa en
AgglomerativeClustering.transform.

Siéntete libre de abrir un PR. No he mirado en detalle pero una posible solución.
sería tener FeatureAgglomeration y AgglomerativeClustering derivar
de una clase base común y tener pooling_func solo en FeatureAgglomeration.

Habiendo dicho que puede haber razones por las que se hizo así, aunque yo
no puedo pensar en ninguno.

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/scikit-learn/scikit-learn/issues/9846#issuecomment-332807654 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AAEz6z9lkUF7u0jA2-sWEe_XIZvUk1r_ks5sm4HdgaJpZM4PnBzV
.

Quiero abordar este tema si no se está trabajando actualmente.

¿Fue útil esta página
0 / 5 - 0 calificaciones