来自分类树的倾向 - mlib spark
propensity from classification tree - mlib spark
我正在构建一个预测模型,以根据某些因变量预测客户的购买倾向。我正在使用决策树。我需要购买倾向在 0 到 1 之间。我如何获得这些值,因为我的目标是二进制 1 或 0(是否会)
如何在 mlib spark 中执行此操作
您正在混合分类和回归问题。如果您只需要预测客户是否会购买某物,则需要一个分类模型。如果你想预测客户购买某物的概率,你需要一个回归模型。请参阅 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]
我正在构建一个预测模型,以根据某些因变量预测客户的购买倾向。我正在使用决策树。我需要购买倾向在 0 到 1 之间。我如何获得这些值,因为我的目标是二进制 1 或 0(是否会)
如何在 mlib spark 中执行此操作
您正在混合分类和回归问题。如果您只需要预测客户是否会购买某物,则需要一个分类模型。如果你想预测客户购买某物的概率,你需要一个回归模型。请参阅 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]