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——但它是可行的——它附带了所有必需的脚本和如何构建它的说明。