causallift icon indicating copy to clipboard operation
causallift copied to clipboard

pipeline issue (Kedro?)

Open Peccer opened this issue 3 years ago • 1 comments

Running:

print('\n[Estimate the effect of recommendation based on the uplift model]') estimated_effect_df = cl.estimate_recommendation_impact()

gives below error. ran the notebook example from the github project.

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮ │ /tmp/ipykernel_121/2062088210.py:2 in │ │ │ │ [Errno 2] No such file or directory: '/tmp/ipykernel_121/2062088210.py' │ │ │ │ /root/venv/lib/python3.9/site-packages/causallift/causal_lift.py:721 in │ │ estimate_recommendation_impact │ │ │ │ 718 │ │ │ │ 719 │ │ if self.runner: │ │ 720 │ │ │ # self.kedro_context.catalog.save('args', self.args) │ │ ❱ 721 │ │ │ self.kedro_context.run(tags=["511_recommend_by_cate"]) │ │ 722 │ │ │ self.df = self.kedro_context.catalog.load("df_03") │ │ 723 │ │ │ │ │ 724 │ │ │ self.kedro_context.run(tags=["521_simulate_recommendation"]) │ │ │ │ /root/venv/lib/python3.9/site-packages/causallift/context/flexible_context.py:178 in run │ │ │ │ 175 │ │ │ + "only_missing: {}".format(only_missing) │ │ 176 │ │ │ + ")" │ │ 177 │ │ ) │ │ ❱ 178 │ │ return super().run( │ │ 179 │ │ │ tags=tags, runner=runner, node_names=node_names, only_missing=only_missing │ │ 180 │ │ ) │ │ 181 │ │ │ │ /root/venv/lib/python3.9/site-packages/causallift/context/flexible_context.py:141 in run │ │ │ │ 138 │ │ self, **kwargs # type: Any │ │ 139 │ ): │ │ 140 │ │ # type: (...) -> Dict[str, Any] │ │ ❱ 141 │ │ d = super().run(**kwargs) │ │ 142 │ │ self.catalog.add_feed_dict(d, replace=True) │ │ 143 │ │ return d │ │ 144 │ │ │ │ /root/venv/lib/python3.9/site-packages/causallift/context/flexible_context.py:131 in run │ │ │ │ 128 │ │ │ runner = ( │ │ 129 │ │ │ │ ParallelRunner() if runner == "ParallelRunner" else SequentialRunner() │ │ 130 │ │ │ ) │ │ ❱ 131 │ │ return super().run(runner=runner, **kwargs) │ │ 132 │ │ 133 │ │ 134 class ProjectContext2(ProjectContext1): │ │ │ │ /root/venv/lib/python3.9/site-packages/causallift/context/flexible_context.py:106 in run │ │ │ │ 103 │ │ runner = runner or SequentialRunner() │ │ 104 │ │ if only_missing and _skippable(self.catalog): │ │ 105 │ │ │ return runner.run_only_missing(pipeline, self.catalog) │ │ ❱ 106 │ │ return runner.run(pipeline, self.catalog) │ │ 107 │ │ 108 │ │ 109 def _skippable( │ │ │ │ /root/venv/lib/python3.9/site-packages/kedro/runner/runner.py:75 in run │ │ │ │ 72 │ │ │ │ 73 │ │ unsatisfied = pipeline.inputs() - set(catalog.list()) │ │ 74 │ │ if unsatisfied: │ │ ❱ 75 │ │ │ raise ValueError( │ │ 76 │ │ │ │ f"Pipeline input(s) {unsatisfied} not found in the DataCatalog" │ │ 77 │ │ │ ) │ │ 78 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ ValueError: Pipeline input(s) {'df_02'} not found in the DataCatalog

Peccer avatar Oct 11 '22 12:10 Peccer

Hi @Peccer ,

Thank you for reporting the issue.

As you pointed out, PipelineX does not support kedro 0.18.x yet. Could you install kedro 0.17.x ?

pip install kedro==0.17.7

Besides, CausalLift may not work with scikit-learn 0.22 or later. The latest supported version of scikit-learn is 0.21.3.

pip install scikit-learn==0.21.3

Pull requests for fix are welcomed.

Minyus avatar Oct 11 '22 14:10 Minyus