• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

pyspark GBDT分类和回归示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

GBDT分类

pyspark使用类GradientBoostedTrees的trainClassifier函数进行GBDT分类模型训练:

trainClassifier(data, categoricalFeaturesInfo, loss='logLoss', numIterations=100, learningRate=0.1, maxDepth=3, maxBins=32)

trainClassifier参数说明

  • data – 训练数据集:LabeledPoint的RDD。标签取值{0,1}。
  • categoricalFeaturesInfo – 存储类别特征的Map。条目(n – > k)表示特征n对应k个类别,类别由{0,1,…,k-1}索引。
  • loss – 梯度提升中用到的损失函数。支持的值:“logLoss”,“minimumSquaresError”,“minimumAbsoluteError”。 (默认值:“logLoss”)
  • numIterations – 迭代次数。 (默认值:100)
  • learningRate – 学习率。学习率应在间隔(0,1)之间(默认值:0.1)
  • maxDepth – 树的最大深度(例如深度0表示1个叶节点,深度1表示1个内部节点+ 2个叶节点)。 (默认值:3)
  • maxBins – 用于分割特征的最大bin数量。 DecisionTree需要maxBins> = max类别。 (默认值:32)
  • 返回值:GradientBoostedTreesModel 可用于预测。

建立GBDT分类模型的示例

>>> from pyspark.mllib.regression import LabeledPoint
>>> from pyspark.mllib.tree import GradientBoostedTrees
>>>
>>> data = [
...     LabeledPoint(0.0, [0.0]),
...     LabeledPoint(0.0, [1.0]),
...     LabeledPoint(1.0, [2.0]),
...     LabeledPoint(1.0, [3.0])
... ]
>>>
>>> model = GradientBoostedTrees.trainClassifier(sc.parallelize(data), {}, numIterations=10)
>>> model.numTrees()
10
>>> model.totalNumNodes()
30
>>> print(model)  # it already has newline
TreeEnsembleModel classifier with 10 trees  ###使用10棵树的树集成分类模型

>>> model.predict([2.0])
1.0
>>> model.predict([0.0])
0.0
>>> rdd = sc.parallelize([[2.0], [0.0]])
>>> model.predict(rdd).collect()
[1.0, 0.0]

GBDT回归

pyspark使用类GradientBoostedTrees的trainRegressor函数进行GDBT回归模型训练:

trainRegressor(data, categoricalFeaturesInfo, loss='leastSquaresError', numIterations=100, learningRate=0.1, maxDepth=3, maxBins=32)

trainRegressor参数说明

  • data – 训练数据集:LabeledPoint的RDD。标签取值{0,1}。
  • categoricalFeaturesInfo – 存储类别特征的Map。条目(n – > k)表示特征n对应k个类别,类别由{0,1,…,k-1}索引。
  • loss – 损失函数。支持的值:“logLoss”,“minimumSquaresError”,“minimumAbsoluteError”。 (默认值:“leastSquaresError”)
  • numIterations – 提升次数。 (默认值:100)
  • learningRate – 学习率。学习率应在间隔(0,1)之间(默认值:0.1)
  • maxDepth – 树的最大深度(例如深度0表示1个叶节点,深度1表示1个内部节点+ 2个叶节点)。 (默认值:3)
  • maxBins – 用于分裂特征的最大bin数量。 DecisionTree需要maxBins> = max类别。 (默认值:32)
  • 返回值:GradientBoostedTreesModel可用于预测。

建立GBDT回归模型的示例

>>> from pyspark.mllib.regression import LabeledPoint
>>> from pyspark.mllib.tree import GradientBoostedTrees
>>> from pyspark.mllib.linalg import SparseVector
>>>
>>> sparse_data = [
...     LabeledPoint(0.0, SparseVector(2, {0: 1.0})),
...     LabeledPoint(1.0, SparseVector(2, {1: 1.0})),
...     LabeledPoint(0.0, SparseVector(2, {0: 1.0})),
...     LabeledPoint(1.0, SparseVector(2, {1: 2.0}))
... ]
>>>
>>> data = sc.parallelize(sparse_data)
>>> model = GradientBoostedTrees.trainRegressor(data, {}, numIterations=10)
>>> model.numTrees()
10
>>> model.totalNumNodes()
12
>>> model.predict(SparseVector(2, {1: 1.0}))
1.0
>>> model.predict(SparseVector(2, {0: 1.0}))
0.0
>>> rdd = sc.parallelize([[0.0, 1.0], [1.0, 0.0]])
>>> model.predict(rdd).collect()
[1.0, 0.0]

pyspark GBDT的最新介绍参考:GradientBoostedTrees


鲜花

握手

雷人

路过

鸡蛋
专题导读
上一篇:
XGBoost调参注意事项发布时间:2022-05-14
下一篇:
pyspark LDA模型示例发布时间:2022-05-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap