我正在构建一个预测模型来预测客户根据某个因变量进行购买的倾向。我正在使用决策树。我需要在0到1之间购买的倾向。我如何获得这些值,因为我的目标是二进制1或0(是否由)
如何在mlib spark中执行此操作
答案 0 :(得分:0)
您正在混合分类和回归问题。如果您只需要预测客户是否会购买东西,您需要一个分类模型。如果您想预测客户购买东西的概率,您需要一个回归模型。请参阅MLlib文档(http://spark.apache.org/docs/1.2.1/api/python/pyspark.mllib.html#module-pyspark.mllib.tree)。
培训分类器模型使用trainClassifier
完成,而回归模型培训则使用trainRegressor
完成。以下是官方文档中的Python示例:
>>> from pyspark.mllib.regression import LabeledPoint
>>> from pyspark.mllib.tree import DecisionTree
>>> from pyspark.mllib.linalg import SparseVector
>>>
>>> sparse_data = [
... LabeledPoint(0.0, SparseVector(2, {0: 0.0})),
... LabeledPoint(1.0, SparseVector(2, {1: 1.0})),
... LabeledPoint(0.0, SparseVector(2, {0: 0.0})),
... LabeledPoint(1.0, SparseVector(2, {1: 2.0}))
... ]
>>>
>>> model = DecisionTree.trainRegressor(sc.parallelize(sparse_data), {})
>>> model.predict(SparseVector(2, {1: 1.0}))
1.0
>>> model.predict(SparseVector(2, {1: 0.0}))
0.0
>>> rdd = sc.parallelize([[0.0, 1.0], [0.0, 0.0]])
>>> model.predict(rdd).collect()
[1.0, 0.0]