[ https://issues.apache.org/jira/browse/SPARK-2495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14063762#comment-14063762 ]
Alexander Albul commented on SPARK-2495: ---------------------------------------- Yes, i can work on it, but first i need to understand what is the reason of making constructors *private*. I can propose approach with some utility object that we can use to create different models: ModelLoader.loadLogisticRegression(weights: Vector, intercept: Double): LogisticRegressionModel alternatively, we can put method "load" into *LogisticRegressionWithSGD* for example, but i do not like this approach because we can load models that are trained without SGD as well so it is not directly related. But first of all, if they are private by mistake, we can just open constructors. WDYT? > Ability to re-create ML models > ------------------------------ > > Key: SPARK-2495 > URL: https://issues.apache.org/jira/browse/SPARK-2495 > Project: Spark > Issue Type: Improvement > Components: MLlib > Affects Versions: 1.0.1 > Reporter: Alexander Albul > > Hi everyone. > Previously (prior to Spark 1.0) we was working with MLib like this: > 1) Calculate model (costly operation) > 2) Take model and collect it's fields like weights, intercept e.t.c. > 3) Store model somewhere in our format > 4) Do predictions by loading model attributes, creating new model and > predicting using it. > Now i see that model's constructors have *private* modifier and cannot be > created from outside. > If you want to hide implementation details and keep this constructor as > "developer api", why not to create at least method, which will take weights, > intercept (for example) an materialize that model? > A good example of model that i am talking about is: *LinearRegressionModel* > I know that *LinearRegressionWithSGD* class have *createModel* method but the > problem is that it have *protected* modifier as well. -- This message was sent by Atlassian JIRA (v6.2#6252)