dodiscover
dodiscover copied to clipboard
POC: `learn_graph` should choose a default method that favors one method over another based on context constraint
trafficstars
For default options, I think it's best to work backwards from each "proposed algorithm" that we would support. Eg. GES, PC, FCI, LinGAM, etc. We should have some sensible defaults based on certain "semantics" the data might have. In addition, these defaults should be very clear to the user, so that way if they want to do something more custom, then they can use the structure learning algorithm classes themselves.
Some thoughts are:
- if Markovian SCM without latent confounders, then I think it's actually best to go w/ score-based methods (empirically they seem to do the best?)
- if Semi-Markovian with possible latent confounders, then opt for FCI
- if some linear model, then LinGAM
The question is then how to encode this into the 'Context' class via its API.