前提・実現したいこと
Kaggleの'New York City Airbnb Open Data'で
クラスタリングを試みたのですが、以下のエラーが起きて
描画がぐちゃぐちゃになってしまいました。
発生している問題・エラーメッセージ
IndexError Traceback (most recent call last) <ipython-input-23-b90848bd8445> in <module> 5 colors = ['blue', 'red', 'green'] 6 for i, data in data_sub.groupby('cluster'): ----> 7 ax = data.plot.scatter(x='feature1', y='feature2', color=colors[i], 8 label=f'cluster{i}', ax=ax) IndexError: list index out of range
該当のソースコード
Python
1#データの絞り込み 2data_sub = data[['latitude', 'longitude', 'price', 'minimum_nights', 'number_of_reviews', 3 'reviews_per_month', 'calculated_host_listings_count', 'availability_365']] 4 5#Initialise KMeans class 6kmeans = KMeans(init='random', n_clusters=3) 7 8#calculate the centroid of clusters 9kmeans.fit(data_sub) 10 11#predict clustering number 12y_pred = kmeans.predict(data_sub) 13 14data_sub.columns = ['feature1', 'feature2', 'feature3', 'feature4', 'feature5', 'feature6', 15 'feature7', 'cluster'] 16 17ax = None 18colors = ['blue', 'red', 'green'] 19for i, data in data_sub.groupby('cluster'): 20 ax = data.plot.scatter(x='feature1', y='feature2', color=colors[i], 21 label=f'cluster{i}', ax=ax)
要素の数とアクセスしたい数があっていないのが原因だと思うのですが、
その場合はxとyをいじればいいのか、
よく解決方法がわかりません。
何卒ご教示のほど、宜しくお願い致します。