关于python:将模型预测保存为csv文件

Save model prediction as csv file

本问题已经有最佳答案,请猛点这里访问。

我用ApacheSark尝试了NaiveBayes算法

1
2
3
4
5
6
7
8
9
10
11
12
13
def parseLine(line):
    parts = line.split(',')
    label = float(parts[0])
    features = Vectors.dense([float(x) for x in parts[1].split(' ')])
    return LabeledPoint(label, features)

data = sc.textFile('data/mllib/sample_naive_bayes_data.txt').map(parseLine)

# 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 = NaiveBayes.train(training, 1.0)

是否有方法将预测模型保存为csv文件?


你的问题不清楚。如果您知道如何保存模型:

似乎没有保存和加载MLLIB模型(1.2.x版)的通用解决方案。开发人员使用PMML支持,但还没有准备好。

因此,如果您的模型看起来像多项式函数(例如线性回归),您可以使用getweights函数,然后从weigts恢复模型。

如果不是,可以使用普通Java序列化(或者尝试Java的一些其他序列化LIBS)。

如果要保存预测值:

model.predict(test)将生成一个具有预测值(没有实际值和特性)的RDD。您可以使用zip方法将它们链接起来,然后在map函数中转换为以制表符分隔的字符串。然后将这些字符串保存到文本文件中。完成


如果您希望保存模型以便以后重用,那么保存的naivebayes模型在Python中还不受支持(对于spark 1.3.1)。如果您现在想保存和加载以后的NaiveBayes模型-您可以尝试使用scala-它支持1.3.1中的模型保存/加载

更新您可以使用master branch的最新spark版本—它已经在2015年3月合并了对python的naivebayes模型保存/加载支持。所以我很快就会被火花1.4所认识到。

您可能需要从源代码中构建Spark——但它是可行的——它附带了所有必需的脚本和如何构建它的说明。