It could be interesting to leverage the ability of optimization-based algorithms to incorporate prior knowledge as constraints. In the case of NOTEARS, which uses scipy.optimize, you can easily introduce bounds.
Using prior knowledge in this context means setting (i, j) = 0 if we want to forbid that edge, or (i, j) = 1 if we want to force its inclusion. I believe this is a fundamental feature for integrating both data and expert knowledge into the algorithm.
PS: This approach could potentially be extended to other optimization algorithms, but I haven't reviewed the code yet. For NOTEARS, it seems like it wouldn't require major changes.
It could be interesting to leverage the ability of optimization-based algorithms to incorporate prior knowledge as constraints. In the case of NOTEARS, which uses scipy.optimize, you can easily introduce bounds.
Using prior knowledge in this context means setting (i, j) = 0 if we want to forbid that edge, or (i, j) = 1 if we want to force its inclusion. I believe this is a fundamental feature for integrating both data and expert knowledge into the algorithm.
PS: This approach could potentially be extended to other optimization algorithms, but I haven't reviewed the code yet. For NOTEARS, it seems like it wouldn't require major changes.