pooling_func dans AgglomerativeClustering ne fonctionne pas.
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)
Générez une erreur car pooling_func n'est pas appelable. C'est une chaîne.
Pas d'avertissement, pas d'erreur
Linux-4.4.0-64-generic-x86_64-with-debian-stretch-sid
Python 3.5.3 | emballé par conda-forge | (par défaut, 9 février 2017, 14:37:12)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-15)]
NumPy 1.13.1
SciPy 0.19.1
Scikit-Learn 0.19.0
Il me semble que c'est un problème de conception de classe : FeatureAgglomération dérive d'AgglomerativeClustering mais pooling_func n'est utilisé que dans AgglomerativeClustering.transform.
N'hésitez pas à ouvrir un PR. Je n'ai pas regardé en détail, mais une solution possible serait de faire dériver FeatureAgglomération et AgglomerativeClustering d'une classe de base commune et d'avoir pooling_func uniquement dans FeatureAgglomeration.
Cela dit, il peut y avoir des raisons pour lesquelles cela a été fait comme ça, bien que je ne puisse en penser à aucune.
(Et FeatureAgglomération devrait probablement être un wrapper ou un mixin...)
Le 28 sept. 2017 21h24, "Loïc Estève" [email protected] a écrit :
Il me semble que c'est un problème de conception de classe : FeatureAgglomération
dérive de AgglomerativeClustering mais pooling_func n'est utilisé que dans
AgglomerativeClustering.transform.N'hésitez pas à ouvrir un PR. je n'ai pas regardé en détail mais une solution possible
serait de faire dériver FeatureAgglomeration et AgglomerativeClustering
à partir d'une classe de base commune et avoir pooling_func uniquement dans FeatureAgglomération.Cela dit, il peut y avoir des raisons pour lesquelles cela a été fait comme ça bien que je
ne peut penser à aucun.-
Vous recevez ceci parce que vous êtes abonné à ce fil.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/9846#issuecomment-332807654 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AAEz6z9lkUF7u0jA2-sWEe_XIZvUk1r_ks5sm4HdgaJpZM4PnBzV
.
Je veux aborder cette question si elle n'est pas en cours d'élaboration.