Hi, // Initialize the optimizer using logistic regression as the loss function with L2 regularization val lbfgs = new LBFGS(new LogisticGradient(), new SquaredL2Updater())
// Set the hyperparameters lbfgs.setMaxNumIterations(numIterations).setRegParam(regParam).setConvergenceTol(tol).setNumCorrections(numCor) // Retrieve the weights val weightsWithIntercept = lbfgs.optimize(data, initialWeights) //Slice weights with intercept into weight and intercept //Initialize Logistic Regression Model val model = new LogisticRegressionModel(weights, intercept) model.predict(test) //Make your predictions The example code doesn't generate the Logistic Regression Model that you can make predictions with. `LBFGS.runMiniBatchLBFGS` outputs a tuple of (weights, lossHistory). The example code was for a benchmark, so it was interested more in the loss history than the model itself. You can also run `val (weightsWithIntercept, localLoss) = LBFGS.runMiniBatchLBFGS ...` slice `weightsWithIntercept` into the intercept and the rest of the weights and instantiate the model again as: val model = new LogisticRegressionModel(weights, intercept) Burak ----- Original Message ----- From: "SK" <skrishna...@gmail.com> To: u...@spark.incubator.apache.org Sent: Monday, August 11, 2014 11:52:04 AM Subject: Re: [MLLib]:choosing the Loss function Hi, Thanks for the reference to the LBFGS optimizer. I tried to use the LBFGS optimizer, but I am not able to pass it as an input to the LogisticRegression model for binary classification. After studying the code in mllib/classification/LogisticRegression.scala, it appears that the only implementation of LogisticRegression uses GradientDescent as a fixed optimizer. In other words, I dont see a setOptimizer() function that I can use to change the optimizer to LBFGS. I tried to follow the code in https://github.com/dbtsai/spark-lbfgs-benchmark/blob/master/src/main/scala/org/apache/spark/mllib/benchmark/BinaryLogisticRegression.scala that makes use of LBFGS, but it is not clear to me where the LogisticRegression model with LBFGS is being returned that I can use for the classification of the test dataset. If some one has sample code that uses LogisticRegression with LBFGS instead of gradientDescent as the optimization algorithm, it would be helpful if you can post it. thanks -- View this message in context: http://apache-spark-user-list.1001560.n3.nabble.com/MLLib-choosing-the-Loss-function-tp11738p11913.html Sent from the Apache Spark User List mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@spark.apache.org For additional commands, e-mail: user-h...@spark.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@spark.apache.org For additional commands, e-mail: user-h...@spark.apache.org