训练朴素贝叶斯分类器时,我遇到以下问题。 我收到了这个错误:
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)
我错过了什么吗? 感谢