causalnex.structure.notears.from_numpy¶
-
causalnex.structure.notears.
from_numpy
(X, max_iter=100, h_tol=1e-08, w_threshold=0.0, tabu_edges=None, tabu_parent_nodes=None, tabu_child_nodes=None)[source]¶ Learn the StructureModel, the graph structure describing conditional dependencies between variables in data presented as a numpy array.
The optimisation is to minimise a score function \(F(W)\) over the graph’s weighted adjacency matrix, \(W\), subject to the a constraint function \(h(W)\), where \(h(W) == 0\) characterises an acyclic graph. \(h(W) > 0\) is a continuous, differentiable function that encapsulated how acyclic the graph is (less == more acyclic). Full details of this approach to structure learning are provided in the publication:
Based on DAGs with NO TEARS. @inproceedings{zheng2018dags,
author = {Zheng, Xun and Aragam, Bryon and Ravikumar, Pradeep and Xing, Eric P.}, booktitle = {Advances in Neural Information Processing Systems}, title = {{DAGs with NO TEARS: Continuous Optimization for Structure Learning}}, year = {2018}, codebase = {https://github.com/xunzheng/notears}}
Parameters: - X (
ndarray
) – 2d input data, axis=0 is data rows, axis=1 is data columns. Data must be row oriented. - max_iter (
int
) – max number of dual ascent steps during optimisation. - h_tol (
float
) – exit if h(W) < h_tol (as opposed to strict definition of 0). - w_threshold (
float
) – fixed threshold for absolute edge weights. - tabu_edges (
Optional
[List
[Tuple
[int
,int
]]]) – list of edges(from, to) not to be included in the graph. - tabu_parent_nodes (
Optional
[List
[int
]]) – list of nodes banned from being a parent of any other nodes. - tabu_child_nodes (
Optional
[List
[int
]]) – list of nodes banned from being a child of any other nodes.
Returns: a graph of conditional dependencies between data variables.
Return type: Raises: ValueError
– If X does not contain data.- X (