mie-lab / complexity-aware-traffic-prediction Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Since the other way round doesn't work since we have higher slope; we should trying predicting the easier case using a model trained on a more difficult dataset.
Along with MP/NM/PM/GB It would be nice to keep track of the counts in the class variable itself. It would be helpful in comparing/ creating the sensivitiy analysis plots later on.
To clean up the temporal filter from complexity.py
as well as the thresh
parameter from config.py
Likewise, if the Cx
(MC/IC) for validation data makes sense.
However, the practical usefulness might be limited, it is nevertheless interesting to have the same.
On the local name of the correct environment: tf_gpu
On server: same tf_gpu
i_o
+ p_h
would be a reasonable margin. Preliminary results show promise.
Currently, the config.py is almost unmanageable
We can do this in the data loader. Divide by max (10000) should be fine since that is the maximum value of flow we can get. Additionally, we have Relu activaiton in case larger ouputs are needed.
f(x_{t+T}) = f(x)
is clear for the case when the input and output window is 1.
When the window is more than 1, we use the last frame to repeat. This is of course better than the entire X, but a moving average might be a better choice in such scenarios. Better still, if we can plot the curves at selected locations; something like what was done in the DCRNN paper, we might be better off.
Since file writing is not atomic, it is better to write a temp file then rename it.
We can just do it as the cx_PM
is being computed. We can make all predictions, write them up in a folder using the train_gen
and then compute cx_MP
in the same manner.
Currently we do sampling with replacement which results in a very small number of data points being reused and some being excluded. We did 8000 out of 9k+ points. This would not change any results but better to make it deterministic using all data points otherwise the plots would be confusing.
In the datagen class, we simply pass the self. train_Gen and self.val_gen.
It seems that the self.model is not being used. It should be removed.
Currently it is a function of the pred_horiz
itself.
Same is true for the experimental results. We use the newer version of Cx
while temporarily switching to the harder data sets.
This is not a problem since it does not hurt our final val_error
.
This is only valid for the normalisation case.
We need to divide everywhere with config.max_norm_value
better validation when IC closer to MC but validation error shows high, should we stop training?
This results in error sin Keras utils for cases when we don't update the values. Specifically these lines:
for k in self._values_order:
info += f" - {k}:"
if isinstance(self._values[k], list):
try:
avg = np.mean(
self._values[k][0] / max(1, self._values[k][1])
)
except:
debug_pitstop = True
Solution: Simply use -1
as the default value instead of the "NULL"
in the complexity.py
class.
One of the comments by the reviewers was how to use it for different datasets.
CSR does not appear to make any assumptions on the activation function. We need to test how it works. In the worst case, we have a senstivity plot.
Not being used anymore
We just used it in the beginning as a part of the EDA when we were exploring faster reading and writing of files.
In response to #3, it is best to separate the spatial class, otherwise, the complexity class becomes too complicated and so does the config file.
No need for all points; it just slows down our computation
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.