-
Notifications
You must be signed in to change notification settings - Fork 1
/
clustering.py
54 lines (39 loc) · 1.33 KB
/
clustering.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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# name: clustering.py
# description: Group similar exercises together
# author: Vu Phan
import os
import argparse
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from tqdm import tqdm
import pickle
import constants
from utils.preprocessing import *
from utils.clustering_utils import *
def parse_clustering_arguments():
""" TBD
"""
parser = argparse.ArgumentParser()
parser.add_argument('--data_type', dest = 'data_type', help = 'Type of data, inertial data (imu) or joint kinematics (jk)', type = str, default = 'imu')
return parser.parse_args()
def main_clustering(args):
args = parse_clustering_arguments()
data_type = args.data_type
if data_type == 'imu':
print('* Using IMU data')
data_filename = 'data_processed/data_imu_10_both.pkl'
elif data_type == 'jk':
print('* Using joint kinematics')
data_filename = 'data_processed/data_jk.pkl'
else:
pass
with open(data_filename, 'rb') as f:
sample_list = pickle.load(f)
avg_data_frame = prepare_data_4_clustering(sample_list)
fit_cluster = cluster_data(avg_data_frame, method = 'kmeans', num_clusters = 10)
fig, ax = plt.subplots()
ax.plot(fit_cluster.labels_, constants.EXERCISE_LIST, '.')
plt.show()
if __name__ == '__main__':
main_clustering(sys.argv)