k-means法を実装した際,データの重心とクラスタの重心の距離を測りクラスタの所属を決めているのですが,データの重心とクラスタの重心の表示のさせ方がわからないので教えていただきたいです。
ちなみに使用するデータは540軒分の1日の1時間あたりの消費電力です。
python
1import pandas as pd 2import numpy as np 3import glob 4from sklearn.cluster import KMeans 5import matplotlib.pyplot as plt 6 7 8 9df = glob.glob('*_m.csv') 10df2 = pd.DataFrame() 11for i in range(546): 12 i +=1 13 a = df[i-1] 14 df1 = pd.read_csv(f'{a}') 15 df3 = df1.groupby(df1.index // 60).mean() 16 for l in range(24): 17 l += 1 18 df2.loc[l-1,i] = df3.iloc[l-1,1] + df3.iloc[l-1,2] 19array = np.array(df2) 20array = array.T 21 22pred = KMeans(n_clusters=30).fit_predict(array) 23 24for n in range(30): 25 df4 = pd.DataFrame() 26 n += 1 27 for i in range(546): 28 i +=1 29 if pred[i-1] == n-1: 30 for l in range(24): 31 l +=1 32 df4.loc[l-1,i-1] = df2.iloc[l-1,i-1] 33 df4.to_csv(f'30{n-1}.csv') 34
エラーなどはなく実行できるのですが評価を行う際に分散などを調べたいのでクラスタとデータの重心の出し方を知りたいです。
どんなことを試したのか、どんなデータを扱おうとしているのかについて説明して下さい。その上で上手く行かなかったコードをここに貼ってエラーをl説明して下さい。
回答2件
あなたの回答
tips
プレビュー