Scikit-learn: AgglomerativeClusteringとFeatureAgglomerationのクラス設計を改善します(AgglomerativeClusteringのpooling_funcは機能しませんでした)

作成日 2017年09月28日  ·  3コメント  ·  ソース: scikit-learn/scikit-learn

説明


AgglomerativeClusteringのpooling_funcが機能しません。

再現する手順/コード

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-with-debian-stretch-sid
Python 3.5.3 | conda-forgeによってパッケージ化| (デフォルト、2017年2月9日、14:37:12)
[GCC 4.8.2 20140120(Red Hat 4.8.2-15)]
NumPy 1.13.1
SciPy 0.19.1
Scikit-Learn0.19.0

Easy help wanted

全てのコメント3件

これはクラス設計の問題のように思えます。FeatureAgglomerationはAgglomerativeClusteringから派生していますが、pooling_funcはAgglomerativeClustering.transformでのみ使用されます。

気軽にPRを開いてください。 詳細は調べていませんが、考えられる解決策は、FeatureAgglomerationとAgglomerativeClusteringを共通の基本クラスから派生させ、FeatureAgglomerationにのみpooling_funcを含めることです。

なんとも言えないのですが、こういう風にやったのには理由があるのか​​もしれません。

(そして、FeatureAgglomerationはおそらくラッパーまたはミックスインである必要があります...)

2017年9月28日午後9時24分、「LoïcEstève」 [email protected]は次のように書いています。

これはクラス設計の問題のように思えます:FeatureAgglomeration
AgglomerativeClusteringから派生しますが、pooling_funcはでのみ使用されます
AgglomerativeClustering.transform。

気軽にPRを開いてください。 私は詳細には調べていませんが、可能な解決策です
FeatureAgglomerationとAgglomerativeClusteringを派生させることになるでしょう
共通の基本クラスからのものであり、FeatureAgglomerationにのみpooling_funcがあります。

こう言ったのにこうしてやったのには理由があるのか​​も
何も考えられない。


このスレッドにサブスクライブしているため、これを受け取っています。
このメールに直接返信し、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 評価