-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathmedian_heuristic.py
executable file
·31 lines (26 loc) · 1.37 KB
/
median_heuristic.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
#!/usr/bin/env python
# encoding: utf-8
from __future__ import print_function
import argparse
import numpy as np
from data_loader import DataLoader
from sklearn.metrics.pairwise import euclidean_distances
def median_heuristic(X, beta=0.5):
max_n = min(30000, X.shape[0])
D2 = euclidean_distances(X[:max_n], squared=True)
med_sqdist = np.median(D2[np.triu_indices_from(D2, k=1)])
beta_list = [beta**2, beta**1, 1, (1.0/beta)**1, (1.0/beta)**2]
return [med_sqdist * b for b in beta_list]
parser = argparse.ArgumentParser()
parser.add_argument('--data_path', type=str, required=True, help='path to data in matlab format')
parser.add_argument('--trn_ratio', type=float, default=0.6,help='how much data used for training')
parser.add_argument('--val_ratio', type=float, default=0.8,help='how much data used for validation')
parser.add_argument('--wnd_dim', type=int, required=True, default=10, help='window size (past and future)')
parser.add_argument('--sub_dim', type=int, default=1, help='dimension of subspace embedding')
parser.add_argument('--cuda', type=str, default=True, help='use gpu or not')
parser.add_argument('--batch_size', type=int, default=128, help='batch size for training')
args = parser.parse_args()
print(args)
Data = DataLoader(args, trn_ratio=args.trn_ratio, val_ratio=args.val_ratio)
median_list = median_heuristic(Data.Y_subspace, beta=.5)
print(median_list)