2016-05-23 43 views
1

我使用MLlib的LogisticRegressionWithLBFGS来训练4个类的模型。MLlib LogisticRegressionWithLBFGS使用model.predict时出错

这是准备我的数据的代码,

val labeledTraining = trainingSetVectors.map{case(target,features) => LabeledPoint(target,features) }.cache() 

val Array(trainingData, testData) = labeledTraining.randomSplit(Array(0.7, 0.3)) 

火车模型,

val model = new LogisticRegressionWithLBFGS() 
model.setNumClasses(5) 
model.run(trainingData) 

当我尝试测试模型我得到一个错误

val labelAndPreds = testData.map { Labeledpoint => 
    val prediction = model.predict(LabeledPoint.features) 
    (LabeledPoint.target, prediction) 
} 

error: value predict is not a member of org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS 

为什么这是否发生?模型训练没有任何错误。

+0

因为它没有。你训练并立即丢弃模型。你称之为模型只是一个算法描述。 – zero323

回答

1

“model”正在定义您要使用的分类器。

当你训练模型时你没有保存它,试试这个;

val classifier = new LogisticRegressionWithLBFGS() 
classifier.setNumClasses(5) 
val model = classifier.run(trainingData) 
+0

FWIW,这个错误直接来自https://spark.apache.org/docs/1.6.2/mllib-linear-methods.html的spark文档 –