質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

629閲覧

pyclusterringでシルエット値を求めるコードを教えて頂きたいです。

teruterubozu

総合スコア5

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/16 05:15

前提・実現したいこと

Pythonでx-means法を実装して、クラスタリングの評価値としてシルエット値を用いようと考えています。
pyclusteringを用いてirisデータセットのクラスタリングを行いました。
しかし、sklearnのシルエット値を求めるコードしか調べても見つからずどう対応していいのか分からないため教えて頂きたいです。

発生している問題・エラーメッセージ

AttributeError Traceback (most recent call last) <ipython-input-83-352b815f32be> in <module> 1 # シルエット値の計算 2 from sklearn.metrics import silhouette_samples ----> 3 result = xm.fit_predict(X) 4 silhouette_vals = silhouette_samples(X,result,metric = 'euclidean') 5 silhouette_avg = np.mean(silhouette_vals) AttributeError: 'xmeans' object has no attribute 'fit_predict'

該当のソースコード

Python

1import pyclustering 2from pyclustering.cluster import xmeans 3import numpy as np 4import matplotlib 5import matplotlib.pyplot as plt 6from sklearn import datasets, preprocessing 7# datasetの読み込み 8iris_data = datasets.load_iris() 9# DataFrameに変換 10df = pd.DataFrame(iris_data.data, columns=iris_data.feature_names) 11print(df.head()) 12X=df[["sepal length (cm)","petal width (cm)"]] # yラベル , xラベル 13X.shape 14 15initializer = pyclustering.cluster.xmeans.kmeans_plusplus_initializer(data=X, amount_centers=2) 16initial_centers = initializer.initialize() 17xm = xmeans.xmeans(data=X, initial_centers=initial_centers) 18xm.process() 19clusters = xm.get_clusters() 20pyclustering.utils.draw_clusters(data=X.values, clusters=clusters) 21 22# シルエット値の計算 23from sklearn.metrics import silhouette_samples 24result = xm.fit_predict(X) 25silhouette_vals = silhouette_samples(X,result,metric = 'euclidean') 26silhouette_avg = np.mean(silhouette_vals) 27print(silhouette_avg)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

Python バージョン3.7.4

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teruterubozu

2020/12/16 08:44

ありがとうございます! リンク開いたのですが、Didn’t find anything here!って表示されてます。 ログインとかってしなきゃ見れないんですかね?
jbpb0

2020/12/16 08:52

ここは見れますか? https://github.com/annoviko/pyclustering 見れるなら、そこの右の方にある「code」っていう緑のボタンから、丸ごとzipで落とせるので、落として解凍したら、その中を pyclustering/cluster/examples/ と開けてくとあります
jbpb0

2020/12/16 09:03

https://pypi.org/project/pyclustering/#files から ...tar.gz を落として解凍したら、その中にも入ってました ということは、pipで入ったところの中に入ってるかも pythonのパッケージが入ってるところ(たぶんsite-packagesという名前のフォルダ)にpyclusteringで始まるフォルダ名のフォルダがあったら、その中を探してみてください (githubからうまく落とせなかったら)
teruterubozu

2020/12/16 10:43

githubから落とせました! チャレンジしてみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問