我正在建立用于逻辑回归的ML管道。

val lr = new LogisticRegression()
lr.setMaxIter(100).setRegParam(0.001)

val pipeline = new Pipeline().setStages(Array(geoDimEncoder,clientTypeEncoder,
               devTypeDimIdEncoder,pubClientIdEncoder,tmpltIdEncoder,
               hourEncoder,assembler,lr))

val model = pipeline.fit(trainingDF)


现在,当训练模型时,我想查看训练集的概率并计算某些验证参数,例如对数损失。但是,我无法使用“模型”找到它。

我到处都能找到的唯一的东西是

model.transform(testDF).select(....)


如何使用经过训练的集进行训练集验证来获取指标?

最佳答案

请检查以下几种方法,这些方法应该适合您:

val lr = new LogisticRegression()
  .setMaxIter(10)
  .setRegParam(0.3)
  .setElasticNetParam(0.8)

val lrModel = lr.fit(data)

val trainingSummary = lrModel.summary

// Obtain the objective per iteration.
val objectiveHistory = trainingSummary.objectiveHistory
println("objectiveHistory:")
objectiveHistory.foreach(loss => println(loss))

关于apache-spark - 如何计算训练模型的对数损失?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37010651/

10-12 22:58