[GitHub - azamikram/rcd: Root Cause Discovery: Root Cause Analysis of Failures in Microservices through Causal Discovery](https://github.com/azamikram/rcd)を 基に、[[2022__NeurIPS__Root Cause Analysis of Failures in Microservices through Causal Discovery|RCD]]を再現実装する。 ## Setup `Link modifed files`をいかに書き換えて実行する。 ```shell-session ln -fs $PWD/pyAgrum/lib/image.py $PWD/.venv/lib/python3.8/site-packages/pyAgrum/lib/ ln -fs $PWD/causallearn/search/ConstraintBased/FCI.py $PWD/.venv/lib/python3.8/site-packages/causallearn/search/ConstraintBased/ ln -fs $PWD/causallearn/utils/Fas.py $PWD/.venv/lib/python3.8/site-packages/causallearn/utils/ ln -fs $PWD/causallearn/utils/PCUtils/SkeletonDiscovery.py $PWD/.venv/lib/python3.8/site-packages/causallearn/utils/PCUtils/ ln -fs $PWD/causallearn/graph/GraphClass.py $PWD/.venv/lib/python3.8/site-packages/causallearn/graph/ ``` ln -fs $PWD/pyAgrum/lib/image.py $PWD/.venv/lib/python3.8/site-packages/pyAgrum/lib/ ln -fs $PWD/causallearn/search/ConstraintBased/FCI.py $PWD/.venv/lib/python3.8/site-packages/causallearn/search/ConstraintBased/ ln -fs $PWD/causallearn/utils/Fas.py $PWD/.venv/lib/python3.8/site-packages/causallearn/utils/ ln -fs $PWD/causallearn/utils/PCUtils/SkeletonDiscovery.py $PWD/.venv/lib/python3.8/site-packages/causallearn/utils/PCUtils/ ln -fs $PWD/causallearn/graph/GraphClass.py $PWD/.venv/lib/python3.8/site-packages/causallearn/graph/ ## Sock Shop data - https://github.com/azamikram/rcd/blob/master/rcd.py#L136 のコメントアウトを外す ## Command or option - --localized オプションをつける -> 分割統治アプローチをとる - bins -> カイ二乗検定のための離散化のビンの個数 - GAMMA -> メトリクスの分割単位 - LOCAL_ALPHA -> PCアルゴリズムの有意水準の開始数値 ## Implementation - ALPHA_STEPずつ有意水準を増加させながら、複数回PCアルゴリズムを実行し、F-NODEの近傍ノードを追加していく。 - 統合フェーズのみSTART_ALPHA=0.001とする。分割フェーズではSTART_ALPHA=0.01 - PCアルゴリズムの以下のコードでランダム性が入っている ``` # x: local node local_neigh = np.random.permutation(cg.neighbors(x)) ```