Re: Mahout ML vs Spark Mlib vs Mahout-Spark integreation

2017-02-07 Thread Trevor Grant
Answers inline below.


Trevor Grant
Data Scientist
https://github.com/rawkintrevo
http://stackexchange.com/users/3002022/rawkintrevo
http://trevorgrant.org

*"Fortunate is he, who is able to know the causes of things."  -Virgil*


On Tue, Feb 7, 2017 at 2:31 PM, Saikat Kanjilal  wrote:

> @Trevor Grant
>
> The landscape in machine learning is getting more and more diluted with
> lots of tools, here's a question, given that some folks are taking R and
> connecting it to spark and map reduce to make the R algorithms work at
> scale (https://msdn.microsoft.com/en-us/microsoft-r/scaler/scaler) what
> would be the additional value added in porting the R code using the
> algorithms/samsara framework, to me the MRS efforts and the approach you
> are proposing are 2 parallel tracks,


Correct, one is a commercial product by Microsoft- the other is a
business-friendly open source Apache Software Foundation Project.


> as far as the barriers to entry to contributing I think its largely due to
> the complexity of the codebase and the lack of familiarity with Samsara,

This  is what we hope to overcome with Algorithms framework and perhaps
more documentation.

I'd love to help create some good docs/tutorials on both the algorithms
> framework and samsara when and where it makes sense,

Would love the help- will be easier once we get migrated to Jekyll. (More
motivation to do this).


> however I feel like it'd be useful to really identify the use cases where
> using the algorithms/samsara approach has clear wins versus MRS

When you don't want to pay Microsoft to use your work in production.


> with spark or spark by itself or python/scikit-learn,

Out of scope for Mahout project, but I do have a talk forth coming that
will address this- stay tuned.


> I've found that in general people dont really need custom algorithms in
> datascience , they typically are answering some very basic classification
> or clustering question and can use linear/logistic regression or a variant
> of kmeans.

That has not been my experience.  In fact quite the opposite- most people
need more depth to their algorithms and many other big data ML packages
imply they have more depth than basic linear/logisitc regresion + kmeans,
but in fact that is all their is.  Not to say one is right or wrong- the
data scientists who are happy with simple tools can find them in
SparkML/FlinkML, those who need more advanced tools may turn to Mahout.


> I'd also like to help dig into some use cases with Samsara and put those
> use cases maybe in the examples section.
>
 Tutorials would be great- q.e.d. - more documentation would be helpful.


>
> Thoughts?
>
> ScaleR Functions - msdn.microsoft.com microsoft-r/scaler/scaler>
> msdn.microsoft.com
> The RevoScaleR package provides a set of over one hundred portable,
> scalable, and distributable data analysis functions. This topic presents a
> curated list ...
>
>
>
>
> 
> From: Trevor Grant 
> Sent: Tuesday, February 7, 2017 8:47 AM
> To: user@mahout.apache.org; isa...@apache.org
> Subject: Re: Mahout ML vs Spark Mlib vs Mahout-Spark integreation
>
> The idea that Andy briefly touched on, is that the Algorithm Framework
> (hopefully) paves the way for R/CRAN like user contribution.
>
> Increased contribution was a goal I had certainly hoped for.  I have begun
> promoting the idea at Meetups.  There hasn't been a concerted effort to
> push the idea, however it is a tagline / call to action I am planning on
> pushing at talks and conferences this spring. Thank you for raising the
> issue on the mailing list as well.
>
> Using the Samsara framework and "Algorithms" framework, it is hoped the the
> barrier to entry for new contributors will be very low, and that they can
> introduce new algorithms or port them from R. Other 'Big Data' Machine
> Learning frameworks suffer because they are not easily extensible.
>
> The algorithms framework makes it (more) clear where a new algorithm would
> go, and in general how it should behave. E.g. This is a Regressor, ok
> probably goes in the regressor package- it needs a fit method that takes a
> DrmX and a DrmY, and a predict method that takes DrmX and returns
> DrmY_hat).  The algorithms framework also provides a consistent interface
> across algorithms and puts up "guard rails" to ensure common things are
> done in an efficient manner (e.g. Serializing just the model, not the
> fitter and additional unneeded things, thank you Dmitriy). The Samsara
> framework makes it easy to 'read' what the person is doing. This makes it
> easier to review PRs, encourages community review, and if (hopefully not,
> but in case it does happen) someone makes a so-called 'drive by commit',
> that is commits an algorithm and is never heard of again, others can easily
> understand and maintain the algorithm in the persons absence.
>
> There are a number of issues labeled as 

Re: Mahout ML vs Spark Mlib vs Mahout-Spark integreation

2017-02-07 Thread Saikat Kanjilal
@Trevor Grant

The landscape in machine learning is getting more and more diluted with lots of 
tools, here's a question, given that some folks are taking R and connecting it 
to spark and map reduce to make the R algorithms work at scale 
(https://msdn.microsoft.com/en-us/microsoft-r/scaler/scaler) what would be the 
additional value added in porting the R code using the algorithms/samsara 
framework, to me the MRS efforts and the approach you are proposing are 2 
parallel tracks, as far as the barriers to entry to contributing I think its 
largely due to the complexity of the codebase and the lack of familiarity with 
Samsara, I'd love to help create some good docs/tutorials on both the 
algorithms framework and samsara when and where it makes sense, however I feel 
like it'd be useful to really identify the use cases where using the 
algorithms/samsara approach has clear wins versus MRS with spark or spark by 
itself or python/scikit-learn, I've found that in general people dont really 
need custom algorithms in datascience , they typically are answering some very 
basic classification or clustering question and can use linear/logistic 
regression or a variant of kmeans.   I'd also like to help dig into some use 
cases with Samsara and put those use cases maybe in the examples section.


Thoughts?

ScaleR Functions - 
msdn.microsoft.com
msdn.microsoft.com
The RevoScaleR package provides a set of over one hundred portable, scalable, 
and distributable data analysis functions. This topic presents a curated list 
...





From: Trevor Grant 
Sent: Tuesday, February 7, 2017 8:47 AM
To: user@mahout.apache.org; isa...@apache.org
Subject: Re: Mahout ML vs Spark Mlib vs Mahout-Spark integreation

The idea that Andy briefly touched on, is that the Algorithm Framework
(hopefully) paves the way for R/CRAN like user contribution.

Increased contribution was a goal I had certainly hoped for.  I have begun
promoting the idea at Meetups.  There hasn't been a concerted effort to
push the idea, however it is a tagline / call to action I am planning on
pushing at talks and conferences this spring. Thank you for raising the
issue on the mailing list as well.

Using the Samsara framework and "Algorithms" framework, it is hoped the the
barrier to entry for new contributors will be very low, and that they can
introduce new algorithms or port them from R. Other 'Big Data' Machine
Learning frameworks suffer because they are not easily extensible.

The algorithms framework makes it (more) clear where a new algorithm would
go, and in general how it should behave. E.g. This is a Regressor, ok
probably goes in the regressor package- it needs a fit method that takes a
DrmX and a DrmY, and a predict method that takes DrmX and returns
DrmY_hat).  The algorithms framework also provides a consistent interface
across algorithms and puts up "guard rails" to ensure common things are
done in an efficient manner (e.g. Serializing just the model, not the
fitter and additional unneeded things, thank you Dmitriy). The Samsara
framework makes it easy to 'read' what the person is doing. This makes it
easier to review PRs, encourages community review, and if (hopefully not,
but in case it does happen) someone makes a so-called 'drive by commit',
that is commits an algorithm and is never heard of again, others can easily
understand and maintain the algorithm in the persons absence.

There are a number of issues labeled as beginner in JIRA now, especially
with respect to the Algorithms package.

It would probably be good to include a lot of this information in a web
page either here https://mahout.apache.org/developers/how-to-contribute.html
Apache Mahout: Scalable machine learning and data 
mining
mahout.apache.org
How to contribute¶ Contributing to an Apache project is about more than just 
writing code -- it's about doing what you can to make the project better.



or on a page that is linked to by that.

Which leads me in to the last 'piece of the puzzle' I would like to have in
place before aggressively advertising this as a "new-contributor friendly"
project, migrating CMS to Jekyll
https://issues.apache.org/jira/browse/MAHOUT-1933

The rationale for that is so when new algorithms are submitted, the PR will
include relevant documentation (as a convention) and that documentation can
be corrected / expanded as needed in a more non-committer friendly manner.






Trevor Grant
Data Scientist
https://github.com/rawkintrevo
[https://avatars3.githubusercontent.com/u/5852441?v=3=400]

rawkintrevo (Trevor Grant) · GitHub
github.com
rawkintrevo has 22 repositories available. Follow their code on GitHub.



http://stackexchange.com/users/3002022/rawkintrevo
User rawkintrevo - Stack 

Re: Mahout ML vs Spark Mlib vs Mahout-Spark integreation

2017-02-07 Thread isa...@apache.org

Hi,

On Wed, Feb 01, 2017 at 08:29:49PM +, Andrew Palumbo wrote:
> I think that https://issues.apache.org/jira/browse/MAHOUT-1856 ,  a solid
> framework for new algorithms will go A long way towards helping out new users
> understand how easy it is to add algorithms.  There has been significant work
> on this issue already merged to master with a fine OLS example including
> statistical tests for Autocorrelation and Heteroskedasticity.  Trevor G. has
> been heading up the framework effort, which is still in development, and will
> continue to be throughout 0.13.x releases (and hopefully added to in 0.14.x as
> well).

No need to be sorry here, from a first glimpse at the issue it does look useful.


> 
> I believe that having the framework in place will both make make Mahout More
> intuitive for new users and developers to write algorithms and pipelines, as
> well as to provide a set of canned algos to those who are looking for
> something off-the-shelf.

Are there things within or on top of that framework that interested users could
help out with?


> Just wanted to get that into the conversation.

Thank you for that.


Isabel