星火:逻辑回归
Spark: Logistic regression
这段代码效果很好!
val model = new LogisticRegressionWithLBFGS().setNumClasses(2).run(training)
我可以打电话 model.predict(...)
但是,当我尝试设置模型参数时,我无法调用 model.predict
例如,使用以下代码,我无法对模型变量调用预测。
val model = new LogisticRegressionWithLBFGS().setNumClasses(2)
model.optimizer.setUpdater(new L1Updater).setRegParam(0.0000001).setNumIterations(numIterations)
model.run(training)
这方面的任何帮助都会很棒。
这是因为第二种情况下的 model
是 LogisticRegressionWithLBFGS
而不是 LogisticRegressionModel
。你需要的是这样的:
import org.apache.spark.mllib.classification.{
LogisticRegressionWithLBFGS, LogisticRegressionModel}
import org.apache.spark.mllib.optimization.L1Updater
// Create algorithm instance
val lr: LogisticRegressionWithLBFGS = new LogisticRegressionWithLBFGS()
.setNumClasses(2)
// Set optimizer params (it modifies lr object)
lr.optimizer
.setUpdater(new L1Updater)
.setRegParam(0.0000001)
.setNumIterations(numIterations)
// Train model
val model: LogisticRegressionModel = lr.run(training)
现在模型是 LogisticRegressionModel
,可以用于预测。
这段代码效果很好!
val model = new LogisticRegressionWithLBFGS().setNumClasses(2).run(training)
我可以打电话 model.predict(...)
但是,当我尝试设置模型参数时,我无法调用 model.predict 例如,使用以下代码,我无法对模型变量调用预测。
val model = new LogisticRegressionWithLBFGS().setNumClasses(2)
model.optimizer.setUpdater(new L1Updater).setRegParam(0.0000001).setNumIterations(numIterations)
model.run(training)
这方面的任何帮助都会很棒。
这是因为第二种情况下的 model
是 LogisticRegressionWithLBFGS
而不是 LogisticRegressionModel
。你需要的是这样的:
import org.apache.spark.mllib.classification.{
LogisticRegressionWithLBFGS, LogisticRegressionModel}
import org.apache.spark.mllib.optimization.L1Updater
// Create algorithm instance
val lr: LogisticRegressionWithLBFGS = new LogisticRegressionWithLBFGS()
.setNumClasses(2)
// Set optimizer params (it modifies lr object)
lr.optimizer
.setUpdater(new L1Updater)
.setRegParam(0.0000001)
.setNumIterations(numIterations)
// Train model
val model: LogisticRegressionModel = lr.run(training)
现在模型是 LogisticRegressionModel
,可以用于预测。