私は scikit-learn (別名 sklearn) を使用していくつかのクラスタリングを行っていgamma
ますが、関数のパラメーターを操作しようとするまで、すべてが正常にspectral_clustering
機能していました。
anaconda(1.5.1)で管理する仮想環境で、python(3.5.2)でsklearn(0.18.1)を使用しています。
関数の公式ドキュメントには、パラメータについての言及がありますgamma
。
クラス sklearn.cluster.SpectralClustering(n_clusters=8、eigen_solver=なし、random_state=なし、n_init=10、ガンマ=1.0、親和性='rbf'、n_neighbors=10、eigen_tol=0.0、assign_labels='kmeans'、度=3 、coef0=1、kernel_params=なし、n_jobs=1)
ただし、自分のマシンでパラメーターgamma
を関数に渡そうとすると、次のエラーが発生します。
TypeError:spectral_clustering() が予期しないキーワード引数 'gamma' を取得しました
そして、関数のヘルプページを表示すると、公式ドキュメントhelp(spectral_clustering)
とはまったく異なる情報が得られました。
Spectral_clustering(affinity, n_clusters=8, n_components=なし, eigen_solver=なし, random_state=なし, n_init=10, eigen_tol=0.0, assign_labels='kmeans')
一部のパラメーターが欠落しているようです。おそらくcondaパッケージからのものだと思いましたが、pipでインストールしても問題は解決しません。
仮想環境の外にインストールしようとしても、同様の問題が発生します。
しかし、2 人の同僚に尋ねたところ、1 人は私と同じ問題を抱えていましたが、もう 1 人はhelp(spectral_clustering)
関数内で公式ドキュメントと同じ情報を見ることができました。
公式ドキュメントと同じ機能を得るにはどうすればよいですか?
spectral_clustering
次のように、パイプラインの 1 つで関数を使用しています。
if clt_mtd == 'spectral':
# Spectral clustering
labels = spectral_clustering(sm, n_clusters=num_clt, random_state=seed, gamma=0.1)
パラメータを変更しようとしない限り、この関数は問題なく動作しgamma
ます。
解決済み:私の間違いは、参考として使用した公式の例の 1 つ から来ています。
解決策:
以下の解説で説明されているように、同じではSpectralClustering
ありspectral_clustering
ません。最後のものはfit
クラスの関数によって使用され、これは関数で以前に使用されているため、パラメーターとしてSpectralClustering
取りません。gamma
fit
したがって、gamma
パラメータを変更できるようにするには、最初にオブジェクトをインスタンス化し、このクラスが提供するSpectralClustering
関数を使用する必要があります。fit