autoode-dsl's People
autoode-dsl's Issues
Implement a loss function
Something very easy, like MSE on populations + L2 on all other parameters.
Blocked by #6
History refactor
The History
class could be a thin wrapper around a 3D Tensor that is shaped (n_days, n_populations, n_regions)
. A State
corresponds to an index in the i=1 dimension. This may be easier to work with.
Log parameters to logit params
This way we don't go out of bounds when taking derivatives.
helper to compute actual log probabilities
For model selection, it would be good to be able to compute actual full likelihoods of our model.
-
SeiturdModel.log_prob
currently doesn't return an actual likelihood: it usesmean
instead ofsum
for all the different bits, so it's multiplied by a constant. Doesn't matter for training only on itself, but needs to scale the likelihood of "other bits." -
demographics.get_regularizer
kind of corresponds to normal priors on thew
anddelta
components, withw
having a variance of whatevermu
we multiply the whole thing by (up to a factor of 2), anddelta
having a variance ofmu * lambda
; would be good to be able to compute likelihoods under that, including the normalizers based onlambda
andmu
. - The L1 time-smoothness bit we currently have: need to think about how to phrase this probabilistically.
Implement SEITURD in the Epidemic_models.ipynb
We need to implement the SEITURD model in Epidemic_models.ipynb
on our way to generating data. This should be straightforward, since it can follow the same implementation as the other models. For now we can ballpark the rate parameters.
Literature to review
- the SUTRA paper: https://arxiv.org/abs/2101.09158. There are links to a few different data sources including serotracker (another link to serotracker) and worldometeres. These may be useful data sources as well for constructing additional datasets.
- kernel-modulated SIR
Generate synthetic SEITURD model curves
Blocked by #3.
Run the SEITURD model with randomized initial conditions with initial total populations corresponding to each state in our study. Save these curves in a dataframe that will be of shape (n_days, 7 * n_states)
where the 7 is for the populations. This way, sub-selecting the T
and D
columns will yield a version of the dataframe that mimics our C19Dataset
.
Find good initial guesses for our physical parameters
Things like decay rates. We don't have a good grasp of if they are O(1) or O(100). Look at the literature.
Dataset -> initial history tensor generator
We need a class that given our dataset of shape (n_days, 2, n_regions)
where the 2 refers to tested and deceased populations, we spit out a proposed initial history for the training data that could have any number of m>2
populations in it. The constraint also is that for all days for region i
, the populations must sum to N_i
.
The API should look something like:
def raw_data_to_history(data: Tensor, N: Tensor, state: type) -> History:
# `N` has the populations of each region
# inspect `state` to figure out how many populations it has
# draw from RNGs
...
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.