前提・実現したいこと
teratailを初めて利用するので記載の方法などに間違いがあったら申し訳ありません。
irisのデータセットを用いてx-means法を適用したいです。
最後の行でエラーが起きてしまうようです。
プログラムを始めたてで、エラーの内容がよく分からないため質問させていただきます。
発生している問題・エラーメッセージ
KeyError Traceback (most recent call last) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 2896 try: -> 2897 return self._engine.get_loc(key) 2898 except KeyError: pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 0 During handling of the above exception, another exception occurred: KeyError Traceback (most recent call last) <ipython-input-42-61aa8aaabfa1> in <module> ----> 1 pyclustering.utils.draw_clusters(data=X, clusters=clusters) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyclustering\utils\__init__.py in draw_clusters(data, clusters, noise, marker_descr, hide_axes, axes, display_result) 743 dimension = 0; 744 if ( (data is not None) and (clusters is not None) ): --> 745 dimension = len(data[0]); 746 elif ( (data is None) and (clusters is not None) ): 747 dimension = len(clusters[0][0]); ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key) 2978 if self.columns.nlevels > 1: 2979 return self._getitem_multilevel(key) -> 2980 indexer = self.columns.get_loc(key) 2981 if is_integer(indexer): 2982 indexer = [indexer] ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 2897 return self._engine.get_loc(key) 2898 except KeyError: -> 2899 return self._engine.get_loc(self._maybe_cast_indexer(key)) 2900 indexer = self.get_indexer([key], method=method, tolerance=tolerance) 2901 if indexer.ndim > 1 or indexer.size > 1: pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 0
該当のソースコード
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)","sepal width (cm)"]] 13X.shape 14 15initializer = 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, clusters=clusters)
補足情報(FW/ツールのバージョンなど)
Python バージョン3.7.4
エラー発生行はどこでしょうか?
回答1件
あなたの回答
tips
プレビュー