質問編集履歴

1

質問内容の改善

2018/08/24 00:53

投稿

wpspring0300
wpspring0300

スコア11

test CHANGED
File without changes
test CHANGED
@@ -1 +1,77 @@
1
- pythonを使ってcsvファイル(1時間当消費電力)の重心を出したいのですが,出し方がわからないので教えていただきたいです。
1
+ k-means法実装し際,データ重心とクラスタの重心の距離測りクラスタの所属を決めてのですが,データの重心とクラスタの重心の表示のさせ方がわからないので教えていただきたいです。
2
+
3
+ ちなみに使用するデータは540軒分の1日の1時間あたりの消費電力です。
4
+
5
+ ```python
6
+
7
+ import pandas as pd
8
+
9
+ import numpy as np
10
+
11
+ import glob
12
+
13
+ from sklearn.cluster import KMeans
14
+
15
+ import matplotlib.pyplot as plt
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+ df = glob.glob('*_m.csv')
24
+
25
+ df2 = pd.DataFrame()
26
+
27
+ for i in range(546):
28
+
29
+ i +=1
30
+
31
+ a = df[i-1]
32
+
33
+ df1 = pd.read_csv(f'{a}')
34
+
35
+ df3 = df1.groupby(df1.index // 60).mean()
36
+
37
+ for l in range(24):
38
+
39
+ l += 1
40
+
41
+ df2.loc[l-1,i] = df3.iloc[l-1,1] + df3.iloc[l-1,2]
42
+
43
+ array = np.array(df2)
44
+
45
+ array = array.T
46
+
47
+
48
+
49
+ pred = KMeans(n_clusters=30).fit_predict(array)
50
+
51
+
52
+
53
+ for n in range(30):
54
+
55
+ df4 = pd.DataFrame()
56
+
57
+ n += 1
58
+
59
+ for i in range(546):
60
+
61
+ i +=1
62
+
63
+ if pred[i-1] == n-1:
64
+
65
+ for l in range(24):
66
+
67
+ l +=1
68
+
69
+ df4.loc[l-1,i-1] = df2.iloc[l-1,i-1]
70
+
71
+ df4.to_csv(f'30{n-1}.csv')
72
+
73
+
74
+
75
+ ```
76
+
77
+ エラーなどはなく実行できるのですが評価を行う際に分散などを調べたいのでクラスタとデータの重心の出し方を知りたいです。