我正在建立用于逻辑回归的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/