[GSOC] Machine learning in Scilab - Progress Report
The machine learning in Scilab project has made significant progress since the lastest build of scipython was released earlier this month.
We are now able to do ml in scilab, using scipython on the local machine.
The scilab to python connection bridge for running ml scripts is working as expected, and now we can run a local ml script through Scilab console and get back the training predictions and learned attributes back to Scilab.
This has been done through the use of a pickle file which store all the learned attributes after learning and then these values are extracted in the Scilab console using scipython.
The prediction function on Scilab side is possible for only those models which have ml attributes declared like linear regression, multiple regression, kernel ridge, ridge regression, kmeans, SVR.
For other models like neural networks, decision trees and most others on the scikit-learn repo; there aren't any attributes which are trained. They only have probabilities or classifications based on these probabilities which are the results after training. Hence for these it would be better if we simply do the predictions through regular python scripts and then transfer the results and score of the predictions back to Scilab. Have already done this for most scikit-learn models posted below:
1. linear regression
2. multiple regression
3. logistic regression
5. neural networks
6. decision trees
7. k-means clustering
8. hierarchical clustering
9. naive bayes classification
10. kernel SVM
11. random forrest classification
13. Linear discriminant analysis
14. Kernel Ridge and ridge regression
There is a small error with the file execution through Jupyter in Scilab about which I have emailed associated developers.
Right now I have used Windows folder sharing for mapping a network drive, which is used to store and retrieve the pickle file containing the learned attributes. This can act as a temporary solution for the current PoC, which can be refined at a later stage.
Re: [GSOC] Machine learning in Scilab - Progress Report
In addition to the machine learning on the local machine using Scilab, now we are able to run scripts on Jupyter server too.
In many cases its not necessary that all your datasets and ml scripts are present on your local machine. In such cases, you can now run a remote instance of python through Jupyter on a remote machine having the required datasets and computing power.
Through Jupyter_server, we can use any machine learning library(scikit-learn, tensorflow, theano) to train models and get the trained attributes back to Scilab through the pickle file, as previously done for the local machine implementation.
The current level of progress acts as a POC, which demonstrates the core functionality achievable through a full-fledged ml toolbox, through jupyter in Scilab. Still work needs to be done to package and manage distribution of essential python libraries for this ml package, to become useful to Scilab-python developers.
I think this can be achieved, and looking forward to work towards it.