atif-hassan / PyImpetus

PyImpetus is a Markov Blanket based feature subset selection algorithm that considers features both separately and together as a group in order to provide not just the best set of features but also the best combination of features
MIT License
130 stars 14 forks source link

Enhancement request: Build a Directed Acyclic Graph #7

Open ivan-marroquin opened 2 years ago

ivan-marroquin commented 2 years ago

Dear Atif Hassan,

Many thanks for making available this package!

I read with great interest your publication, and I noticed that Pylmpetus report a complete Markov Blanket (parents, children, spouses) in a single run! Other algorithms require at least two runs to get such Markov Blanket (https://cran.r-project.org/web/packages/MXM/vignettes/MMPC_tutorial.html).

I would like to submit the following enhancements that I believe can help to facilitate the interpretation of the Markov Blanket:

In the Directed Acyclic Graph, the nodes corresponding to parents have a specific color, which in turn it is different to the color assigned to either children or spouses. The remaining of features not belonging to Markov Blanket their nodes are plotted without color.

Kind regards,

Ivan

atif-hassan commented 2 years ago

Hi Ivan!

I think these are great ideas! Due to the property of the Markov Blanket, we know that the final selected set of features comprise only of the parent, child and spouses of the target variable. Even though, I have provided a feature importance generation technique, it is not possible to understand which nodes are the parent, child and spouse. Hence, your suggestions will definitely add to the interpretability of this work.

ivan-marroquin commented 2 years ago

Hi Atif Hassan,

Many thanks for paying attention to my request! I am looking forward for the addition of this new functionalities.

Kind regards,

Ivan