[ 
https://issues.apache.org/jira/browse/MAHOUT-1929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15906388#comment-15906388
 ] 

Saikat Kanjilal commented on MAHOUT-1929:
-----------------------------------------

Ok more progress, I decided to take the strategy that scalation is taking in 
implementing GLM 
(https://github.com/scalation/scalation/blob/master/src/main/scala/scalation/analytics/par/GLM.scala),
 I have:
1) Added a set of apply functions that reuse our existing infrastructure to 
compute the models that already exist, namely for Linear Regression and 
Ordinary Least Squares
2) I have placed this code inside GLMModel for now

Code is here: 
https://github.com/skanjila/mahout/blob/mahout-1929/math-scala/src/main/scala/org/apache/mahout/math/algorithms/regression/GlmModel.scala

Would really appreciate a looksy from all interested parties identified in the 
above comments before I get too much farther :), next steps include:
1) unit tests for the apply functions
2) figure out a creative way to tie in the other functions into the apply API 
infrastructure:

def fit(drmX: DrmLike[K],
          drmTarget: DrmLike[K],
          hyperparameters: (Symbol, Any)*): GlmModel[K]


  def setStandardHyperparameters(hyperparameters: Map[Symbol, Any] = Map('foo 
-> None)): Unit 



  def calculateStandardError[M[K] <: GlmModel[K]](X: DrmLike[K],
                                                  drmTarget: DrmLike[K],
                                                  drmXtXinv: Matrix,
                                                  model: M[K]): M[K]

  def modelPostprocessing[M[K] <: GlmModel[K]](model: M[K],
                                               X: DrmLike[K],
                                               drmTarget: DrmLike[K],
                                               drmXtXinv: Matrix): M[K] 


Here are my thoughts on the above, my philosophy is that we keep around as much 
of the existing infrastructure that [~rawkintrevo] has put in place and 
therefore these may need to just be implemented inside each of the derived 
classes, I would like to see the apply function eventually do the following: 1) 
compute the model 2) train the model 3) do the prediction 4) build quality 
measures around each of the models

Thoughts ?

> Add Generalized Linear Models
> -----------------------------
>
>                 Key: MAHOUT-1929
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-1929
>             Project: Mahout
>          Issue Type: Wish
>          Components: Algorithms
>    Affects Versions: 0.13.1
>            Reporter: Trevor Grant
>
> Implement generalize Linear Models (GLM)
> https://en.wikipedia.org/wiki/Generalized_linear_model



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to