-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathwrite_grid_hypercube.py
More file actions
58 lines (41 loc) · 1.68 KB
/
write_grid_hypercube.py
File metadata and controls
58 lines (41 loc) · 1.68 KB
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
55
56
57
58
from argparse import ArgumentParser
from itertools import product
import numpy as np
np.random.seed(123)
import pandas as pd
import skopt
from skopt.sampler import Lhs
from skopt.sampler import Grid
from scipy.spatial.distance import pdist
def getArgumentParser():
parser = ArgumentParser()
parser.add_argument('--mzp_min', default=500)
parser.add_argument('--mzp_max', default=5000)
parser.add_argument('--mdh_min', default=50)
parser.add_argument('--mdh_max', default=170)
parser.add_argument('--mdm_min', default=100)
parser.add_argument('--mdm_max', default=1210)
parser.add_argument('--gx_min', default=0.1)
parser.add_argument('--gx_max', default=3.5)
parser.add_argument('--dsid_start', default=100000)
parser.add_argument('--n_samples', default=25000)
return parser
def main():
args = getArgumentParser().parse_args()
space = [
skopt.space.Real(args.mzp_min, args.mzp_max, name='mzp', prior='uniform'),
skopt.space.Real(args.mdh_min, args.mdh_max, name='mdh', prior='uniform'),
skopt.space.Real(args.mdm_min, args.mdm_max, name='mdm', prior='uniform'),
skopt.space.Real(args.gx_min, args.gx_max, name='g', prior='log-uniform')
]
# sample data
lhs = Lhs(lhs_type="centered", criterion=None)
x = np.array(lhs.generate(space, args.n_samples, random_state=42))
# set up dataframe for writing to file
df = pd.DataFrame(data=x, columns=["mzp", "mdh", "mdm", "g"])
df.index.rename('dsid', inplace=True)
df.index = np.arange(args.dsid_start, args.dsid_start + len(df))
# write data to file
df.to_csv('./grid_hypercube.csv', header=False)
if __name__ == "__main__":
main()