Newer
Older
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"""
Experiments for mooc Dataset
ACTIONID USERID TARGETID TIMESTAMP
Number of users 7,047
Number of targets 97
Number of actions 411,749
Number of positive action labels 4,066
Timestamp seconds
"""
import experiment
import os
import pandas as pd
# read data
filepath = os.path.join("Data","mooc_actions.tsv")
df = pd.read_table(filepath)
df = df[['TARGETID', 'TIMESTAMP','USERID']]
header_list = ['target', 'timestamp','source']
df.columns = header_list
# filter vertices
#num_vertices = 100000
#df = df[((df['source'] < num_vertices) & (df['target'] < num_vertices))]
def _swap (row):
if row['source'] > row['target']:
row['source'] , row['target'] =row['target'] , row['source']
return row
# Undirected graph
df=df.apply(lambda row: _swap(row), axis=1)
#scale timestamps for zeroth reference point
refValue = df['timestamp'].min()
df['timestamp'] -= refValue
# Remove self-loops
df = df[((df['source'] ) != (df['target']))]
# # Experiments
# User parameters
num_roles=2
num_segments=3
num_levels=2
algo_ver= 3
dest_folder='./Results/bikes/'
# tuning parameters
theta = 1e-5
eta = 1
tuning_params= {'theta':theta,'eta':eta}
import time
start_time = time.time()
exp_obj = experiment.Experiment(df,num_roles,num_segments,algo_ver,dest_folder,tuning_params,num_levels,refValue)
exp_obj.execute()
print("--- %s seconds ---" % (time.time() - start_time))
# import numpy as np
# nodes_arr = np.union1d(df['target'],df['source']).astype(int)
# # list of nodes
# nodes = nodes_arr.tolist()
# likelihood for single group and single segment # Normlaized likelihood
# num_roles=1
# num_segments=1
# num_levels=1
# exp_obj = experiment.Experiment(df,num_roles,num_segments,algo_ver,dest_folder,tuning_params,num_levels,refValue)
# exp_obj.execute()