我正在使用LogisticRegression模型并尝试调试。
这是一件简单的事情,但似乎无法让它发挥作用:只需拥有time of day
和state 0 or 1
,并希望预测一天中给定时间的状态
训练模型时没有错误,但我看到了:
GradientDescent: GradientDescent.runMiniBatchSGD finished. Last 10 stochastic losses NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN
在日志中
在尝试eval
时,我总是遇到错误java.util.NoSuchElementException: key not found: keyname
我之前看到过这种情况,为分类器提供了一个不可能的功能集,但在这里我只使用了1个功能而且它是一个简单的模型,所以我不明白什么是错的。
知道我怎么能看到发生了什么?
我还使用了BinaryClassificationMetrics
并返回
FmeasureCurve
= (NaN,0.17630133869823753)
ROCCurve
=
(0.0,0.0)
(1.0,1.0)
(1.0,1.0)
如何打印模型信息以查看其中的值? 我有一个简单的方法来获取这些数据吗?
当我打印模型时,我只得到:
org.apache.spark.mllib.classification.LogisticRegressionModel: intercept = 0.0, numFeatures = 1, numClasses = 2, threshold = None
由于
答案 0 :(得分:0)
不确定发生了什么。一些想法:(1)将您的数据集复制到您的问题中。 (2)确保0和1个案例散布在您的数据中(即输入空间中没有硬截止)。这确保了参数是一些有限的值。 (3)在模型上调用clearThreshold
,然后predict
将产生原始(概率)输出。 (4)有一种方法可以得到拟合的参数,我忘了怎么做。关于这一点,我唯一的建议是浏览代码并尝试查看如何返回参数。