bmihaljevic / bnclassify

Learning Discrete Bayesian Network Classifiers from Data
18 stars 10 forks source link

python interface #33

Open arita37 opened 4 years ago

arita37 commented 4 years ago

Thanks for your package. Just wondering the cost of having a python interface this package, it would allows having accesss to DLearning libraries.

bmihaljevic commented 4 years ago

Hi, I have not idea what the cost would be, I have never done something similar. If someone is willing to do this I'd be happy to assist in any way I can.

arita37 commented 4 years ago

Thanks. Few questions : Is bnclassify written in C++ and R ?

On Jan 27, 2020, at 1:18, Bojan Mihaljević notifications@github.com wrote:

 Hi, I have not idea what the cost would be, I have never done something similar. If someone is willing to do this I'd be happy to assist in any way I can.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

bmihaljevic commented 4 years ago

By far the larger part is R and a smaller fraction, for efficiency, is C++. Ideally, most of it would be C++, with a thin R wrapper around it. I guess then an analogous wrapper could be done in python. However, this is far from how the package is implemented right now. A thorough re-implementation in C++, hopefully reusing some libraries, would be fantastic but would require a good amount of time.

arita37 commented 4 years ago

In python, you can achieve same speed than C++ with : Numba : compiler of Python into C code.

Main advantage of python is : Much lower dev and maintenance cost (Vs C++) Code readability is higher.

Is there a way to see the code design image (function and dependencies) ?

2) There is R2py which bridges R to python. allowing hybrid solution

On Jan 27, 2020, at 20:40, Bojan Mihaljević notifications@github.com wrote:

 By far the larger part is R and a smaller fraction, for efficiency, is C++. Ideally, most of it would be C++, with a thin R wrapper around it. I guess then an analogous wrapper could be done in python. However, this is far from how the package is implemented right now. I thorough re-implementation in C++, hopefully reusing some libraries, would be fantastic but would require a good amount of time.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or unsubscribe.

bmihaljevic commented 4 years ago

The main advantage of C++ in this case is that it integrates without any overhead with R. I agree that the development and maintenance cost is higher that with python.

I do not really have a code design image; the code is not as clean as I would like it to be and, overall, it needs a good look at it and some refactoring. Hopefully I will look into this in the near future.