質問編集履歴
1
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,19 +4,8 @@
|
|
4
4
|
例えば、下記のようなデータがあったとします。
|
5
5
|
|
6
6
|
# データ
|
7
|
+
|
7
8
|
```
|
8
|
-
id time feature1 feature2 feature3
|
9
|
-
a 2019-01-04 16:03:00 14 32 88
|
10
|
-
a 2019-01-04 16:03:00 12 21 16
|
11
|
-
a 2019-01-04 16:03:00 13 15 44
|
12
|
-
a 2019-01-04 16:04:00 11 36 45
|
13
|
-
a 2019-01-04 16:04:00 13 15 44
|
14
|
-
a 2019-01-04 16:04:00 18 35 53
|
15
|
-
b 2019-01-04 16:04:00 17 21 36
|
16
|
-
b 2019-01-04 16:04:00 19 93 23
|
17
|
-
b 2019-01-04 16:04:00 25 27 55
|
18
|
-
:
|
19
|
-
```
|
20
9
|
|
21
10
|
同一IDで見て、同時刻なものは
|
22
11
|
idがaの場合、16:03の3データと16:04の3データ、
|
@@ -24,7 +13,7 @@
|
|
24
13
|
|
25
14
|
# 作成したいデータフレーム
|
26
15
|
```
|
27
|
-
id time
|
16
|
+
id time a b
|
28
17
|
a 2019-01-04 16:03:00 1 None
|
29
18
|
a 2019-01-04 16:04:00 4 10.5
|
30
19
|
b 2019-01-04 16:04:00 3 20.1
|
@@ -34,38 +23,10 @@
|
|
34
23
|
# 試したこと
|
35
24
|
任意のdfに対して以下のコードで、クラスタ数とデンドログラムは取得できます・
|
36
25
|
|
37
|
-
```
|
38
|
-
import matplotlib.pyplot as plt
|
39
|
-
import pandas as pd
|
40
|
-
import numpy as np
|
41
|
-
from scipy.cluster.hierarchy import linkage, dendrogram, fcluster
|
42
|
-
from sklearn.datasets import load_iris
|
43
|
-
|
44
|
-
# ウォード法×ユークリッド距離
|
45
|
-
linkage_result = linkage(df, method='ward', metric='euclidean')
|
46
|
-
|
47
|
-
# クラスタ分けのためのしきい値の設定
|
48
|
-
threshold = 0.8 * np.max(linkage_result[:, 2])
|
49
|
-
|
50
|
-
# 階層型クラスタリングの可視化
|
51
|
-
plt.figure(num=None, figsize=(5, 5), dpi=100, facecolor='w', edgecolor='k')
|
52
|
-
dendrogram(linkage_result, color_threshold=threshold)
|
53
|
-
plt.show()
|
54
|
-
|
55
|
-
# クラスタリング結果の値を取得
|
56
|
-
clustered = fcluster(linkage_result, threshold, criterion='distance')
|
57
|
-
|
58
|
-
# クラスタ数
|
59
|
-
print(np.max(clustered))
|
60
|
-
```
|
61
|
-
|
62
26
|
# 困っていること
|
63
27
|
・ID/時間ごとに
|
64
|
-
・クラスタ間
|
28
|
+
・クラスタ間
|
65
29
|
|
66
|
-
groupbyを行った上でクラスタ数・距離の2つの指標にアクセスし、
|
67
|
-
空のデータフレームに追加していくようなイメージかと思っておりますが、
|
68
|
-
少々込み入ってうまく表現できず困っております。
|
69
30
|
|
70
31
|
大変恐縮ではございますが、お知恵を拝借できましたら幸いです。
|
71
32
|
何卒よろしくお願い申し上げます。
|