liuyiding1993 / ICDE2020_GMVSAE

30 stars 19 forks source link

Noise Injection #9

Open michaeloc opened 3 years ago

michaeloc commented 3 years ago

Firstly, congratulation on your work that is very interesting. However, I have some doubts. First, which is the Tf version that u use? Second, you generate two types of anomalies according to the paper (i.e, detour and route-switching), however going through your code I only find otype == 'random'(line 54 DataGenerator class) and shift (line 57) types. Are those types equal to used in the paper (random == detour and shift == route-switching)?

liuyiding1993 commented 3 years ago
  1. The tf version is 1.14.0.
  2. Yes. random == detour and shift == route-switching
michaeloc commented 3 years ago

So, I have another question after going through your code: the results on evaluation are different from the paper even when I change eval_data to eval in run_evaluate. I have doubt wrt the variables, for example, is level equal to distance as you describe in the paper? Because the offset default walk one unit on the grid ([0,1],[1.0],[1,1]...etc) considering x and y, but you multiply by the level...so, if the level is 2, the final distance is like 200m since the geographical space is into 100mx100m? If I want to d=5, which is the variable to change (level=5)?

michaeloc commented 3 years ago

I also tried to verify the anomalies and compare them with the original trajectories, ex: plt.plot(anomalies[:,0],anomalies[:,1],c='red') # trajectory with anomalies generated by inject_outliers plt.plot(original[:,0],original[:,1],c='blue') # the original trajectory i.e, the trajectory above without anomalies

Overall, the shape of anomaly trajectories is very different from the paper pictures, this is correct, or did I execute something wrong? Screen Shot 2021-05-19 at 23 02 47

liuyiding1993 commented 3 years ago

So, I have another question after going through your code: the results on evaluation are different from the paper even when I change _evaldata to eval in run_evaluate. I have doubt wrt the variables, for example, is level equal to distance as you describe in the paper? Because the offset default walk one unit on the grid ([0,1],[1.0],[1,1]...etc) considering x and y, but you multiply by the level...so, if the level is 2, the final distance is like 200m since the geographical space is into 100mx100m? If I want to d=5, which is the variable to change (level=5)?

Yes, the level is to control the distance.

liuyiding1993 commented 3 years ago

I also tried to verify the anomalies and compare them with the original trajectories, ex: plt.plot(anomalies[:,0],anomalies[:,1],c='red') # trajectory with anomalies generated by _injectoutliers plt.plot(original[:,0],original[:,1],c='blue') # the original trajectory i.e, the trajectory above without anomalies

Overall, the shape of anomaly trajectories is very different from the paper pictures, this is correct, or did I execute something wrong? Screen Shot 2021-05-19 at 23 02 47

The paper pictures are all real data, not synthetic anomalies。

michaeloc commented 3 years ago

Hi, sorry by disturbing you. But I have some difficult to understand just one part of the code. The picture below show exactly the line. My question is: why is score_vals composed by two vectors (128 dimensions each). I know that 128 is the batch value then if I have 128 trajectories, 128 values should be returned, right? But why is the score returning 256 values?

Screen Shot 2021-06-23 at 21 08 00
BruceLuke commented 1 year ago

Hello, Michaeloc, Sorry to bother you, I just wanna know that could you give me your code about visulization! Thank you so much and hope you have a good day