forked from MatrixXL/Hackton18
-
Notifications
You must be signed in to change notification settings - Fork 0
/
task_a2.py
30 lines (23 loc) · 800 Bytes
/
task_a2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from DBConnector import DBConnector
db = DBConnector()
db.selectReader("temp_1_1_0")
a = list(db.find({}))
feature_matrix = []
for tag in a:
feature = {}
for measure in tag["obs_by"][:1000]:
#feature.update({measure["measurement_uuid"]:measure["RSSI"]})
feature.update({measure["measurement_uuid"]:measure["RSSI"]/100})
feature_matrix.append(feature)
from sklearn.feature_extraction import DictVectorizer
v = DictVectorizer(sparse=True)
x = v.fit_transform(feature_matrix)
from sklearn.cluster import DBSCAN
# dbscan = DBSCAN(eps=500, min_samples=2, metric='manhattan').fit(x)
dbscan = DBSCAN(eps=10, min_samples=2).fit(x)
labels = dbscan.labels_
result = []
print(len(labels))
for i in range(len(labels)):
result.append([a[i]["_id"], labels[i]])
print(result)