真阴性为0%,而真阳性为100%正确分类

时间:2016-04-29 23:58:07

标签: machine-learning pyspark apache-spark-mllib naivebayes

我使用Spark的MlLib中的Naive Bayes来训练模型并对数据进行测试(以RDD的形式)。结果令人困惑。

数据和结果如下:

问题是二元分类问题。 结果应该是带有' 0'的标签。或者' 1'。

带有' 0'的标签总数在测试数据集中 - 11774

带有' 1'的标签总数在测试数据集中 - 246

参考代码:

from pyspark.mllib.classification import LogisticRegressionWithLBFGS, LogisticRegressionModel
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.util import MLUtils
from pyspark.mllib.evaluation import MulticlassMetrics

def parsePoint(line):
    values = [float(x) for x in line]
    return LabeledPoint(values[-1], values[0:-1])

data = myRDD.map(parsePoint)

# Split data aproximately into training (60%) and test (40%)
training, test = data.randomSplit([0.6, 0.4], seed=0)

# Train a naive Bayes model.
model = LogisticRegressionWithLBFGS.train(training, 1.0)

#labelsAndPreds = test.map(lambda p: (p.label, model.predict(p.features)))
predictionAndLabels = test.map(lambda lp: (float(model.predict(lp.features)), lp.label))
accuracy =1.0 * predictionAndLabels.filter(lambda (v, p): v == p).count() / test.count()
accuracy

应用模型并获得预测后:

真实的积极因素 - 11774

误报 - 0

假阴性 - 246

真正的否定 - 0

我所有的' 0'标签正确分类和 而所有的' 1'标签错误分类!

现在,这是我项目的一部分,我不确定结果是否可以提交。

我使用Spark的Python API编写的代码执行此操作:它从文件中获取数据并构建RDD。我刚刚将这个RDD提供给网站上提供的Spark MlLib的Naive Bayes文档,结果如上所述。

有人可以告诉我这个结果是否正常吗?

0 个答案:

没有答案