Scikit-learn: Улучшение дизайна классов для AgglomerativeClustering и FeatureAgglomeration (ранее pooling_func в AgglomerativeClustering не работал)

Созданный на 28 сент. 2017  ·  3Комментарии  ·  Источник: scikit-learn/scikit-learn

Описание


pooling_func в AgglomerativeClustering не работает.

Шаги / код для воспроизведения

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)

Ожидаемые результаты


Поднять ошибку, потому что pooling_func не вызывается. Это строка.

Фактические результаты


Нет предупреждения, нет ошибки

Версии


Linux-4.4.0-64-generic-x86_64-с-debian-stretch-sid
Python 3.5.3 | упаковано conda-forge | (по умолчанию, 9 февраля 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

Easy help wanted

Все 3 Комментарий

Мне кажется, что это проблема дизайна класса: FeatureAgglomeration происходит от AgglomerativeClustering, но pooling_func используется только в AgglomerativeClustering.transform.

Смело открывайте PR. Я не рассматривал подробно, но возможным решением было бы, чтобы FeatureAgglomeration и AgglomerativeClustering были производными от общего базового класса и имели pooling_func только в FeatureAgglomeration.

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

(И FeatureAgglomeration, вероятно, должна быть оберткой или миксином ...)

28 сентября 2017 года в 21:24 "Loïc Estève" [email protected] написал:

Мне кажется, что это проблема дизайна класса: FeatureAgglomeration
происходит от AgglomerativeClustering, но pooling_func используется только в
Агломеративная кластеризация. Трансформация.

Смело открывайте PR. Я не смотрел подробно, но возможное решение
было бы, чтобы FeatureAgglomeration и AgglomerativeClustering производили
из общего базового класса и иметь pooling_func только в FeatureAgglomeration.

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

-
Вы получаете это, потому что подписаны на эту беседу.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/scikit-learn/scikit-learn/issues/9846#issuecomment-332807654 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AAEz6z9lkUF7u0jA2-sWEe_XIZvUk1r_ks5sm4HdgaJpZM4PnBzV
.

Я хочу заняться этим вопросом, если над ним в настоящее время не работают.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги