Developing Machine Learning libraries for ruby

39 views
Skip to first unread message

Praveen Yadav

unread,
Mar 15, 2017, 6:46:45 AM3/15/17
to SciRuby Development
Hello,

I'm Praveen Yadav - a 4th year undergrad from IIT Bombay, India. I'm quite familiar with the learning algorithms and have lately started backed development in Rails. But then, machine learning being the primary motive forced me to jump to python from ruby recently. Developing machine learning libraries for ruby avoids such a transition and that's my motivation behind the project. Having said that, I'm still learning ruby but with some mentoring I think that can be taken care of.

Can @mrkn please suggest me if I should be taking this project. This project excites me !!
Regards,

Praveen Yadav 
4thyear undergrad
IIT Bombay

Karthikeyan A K

unread,
Mar 15, 2017, 8:38:45 AM3/15/17
to sciru...@googlegroups.com
I am crazy about Artificial intelligence and Ruby. if we can network together and make something good happen, I am in. I am very strong in Ruby but want to master A.I somehow. I would be really glad to work with you.


--
You received this message because you are subscribed to the Google Groups "SciRuby Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sciruby-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Sameer Deshmukh

unread,
Mar 19, 2017, 8:39:32 AM3/19/17
to Kenta Murata, SciRuby Mailing List

Dear Kenta,

Some students on the SciRuby mailing list are interested in your idea and want to build bridges to Ruby. Please guide them.

Kenta Murata

unread,
Mar 19, 2017, 11:57:15 AM3/19/17
to sciru...@googlegroups.com
Hi,

I've already built a simple Python class wrapper generator.
Please check the implementation:

Using this wrapper generator, I've already made a simple matplotlib wrapper:

the wrapper I've already built allows us to make simple class wrapper by only these lines:

  class Matplotlib
    class Axes
      include PyCall::PyObjectWrapper
      wrap_class PyCall.import_module('matplotlib.axes').Axes
    end
  end

This class wrapper builder can only wrap class and instance methods as is.
So we need to use PyCall.tuple to make a tuple that is passed to a wrapped function if the function requires an argument is a tuple.
Numpy's reshape method is good example to see it.
Let x is numpy's ndarray object.  x.reshape requires a tuple parameter.
We need to write it in Ruby with pycall:

  x.reshape(PyCall.tuple(1, 2))

I think most Rubyists think that they want to write:

  x.reshape([1, 2])

PyCall doesn't convert a Ruby array to a Python tuple, so we need handwrite special wrapper methods for Numpy's reshape.

# Note that the current implementation of pycall is in very experimental state.
# So the implementation can be dramatically changed when you start your GSOC project.


I think that the most works of building bridge libraries are designing the best interfaces for Rubyists.
If you want to build bridge libraries for machine learning like scikit-learn, you must design the bridge library to provide natural interface for Rubyists rather than Pythonista.

So, if you want to build scikit-learn bridge, you should have at least the following skills.

- You should know what is natural as a Ruby program for mature Rubyists
- Practical (not exercise) programming experiences of scikit-learn
- Deep knowledge of scikit-learn internals
- Knowledge of machine learning algorithms implemented in scikit-learn for testing bridge library

(If you want to build pandas bridge, please do s/scikit-learn/pandas/g)

Do you have these skills?


In addition, you need to find other mentor(s) for you if you live in outside of Japan.
I'm very sorry that this year I cannot become mentor for students from outside of Japan.
The reason is that I have one-year-old child, so I cannot work from 6pm to 10am in JST (from 10am to 1am UTC) in weekdays and all weekends.


Regards,
Kenta Murata
--
You received this message because you are subscribed to the Google Groups "SciRuby Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sciruby-dev...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages