Spark - 朴素贝叶斯分类器值错误

时间:2015-04-22 14:20:03

标签: apache-spark apache-spark-mllib

训练朴素贝叶斯分类器时,我遇到以下问题。 我收到了这个错误:

  File "/home/juande/Desktop/spark-1.3.0-bin-hadoop2.4/python/pyspark/mllib  /classification.py", line 372, in train
return NaiveBayesModel(labels.toArray(), pi.toArray(), numpy.array(theta))
ValueError: invalid __array_struct__

使用此行训练模型时

dataframe = dataframe.map(lambda x: LabeledPoint(sections_to_number[x[4]], tf.transform([x[0], x[1], x[2], x[3]])))
model = NaiveBayes.train(dataframe, 1.0)

其中sections_to_number是将某些字符串中的值映射到浮点数的字典,例如sports - > 0,天气 - > 1等等。

但是,如果我使用数字训练它而不是使用映射sections_to_number,那么我不会收到任何错误。

dataframe = dataframe.map(lambda x: LabeledPoint(10.0, tf.transform([x[0], x[1], x[2], x[3]])))
model = NaiveBayes.train(dataframe, 1.0)

我错过了什么吗? 感谢

0 个答案:

没有答案