當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pyspark GradientBoostedTrees.trainClassifier用法及代碼示例

本文簡要介紹 pyspark.mllib.tree.GradientBoostedTrees.trainClassifier 的用法。

用法:

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

訓練梯度增強樹模型進行分類。

版本 1.3.0 中的新函數。

參數

datapyspark.RDD

訓練數據集:LabeledPoint 的 RDD。標簽應采用值 {0, 1}。

categoricalFeaturesInfodict

Map存儲分類特征的數量。條目 (n -> k) 表示特征 n 是分類的,其中 k 個類別從 0 開始索引:{0, 1, ..., k-1}。

lossstr,可選

梯度提升期間用於最小化的損失函數。支持的值:“logLoss”、“leastSquaresError”、“leastAbsoluteError”。 (默認:“logLoss”)

numIterations整數,可選

提升的迭代次數。 (默認值:100)

learningRate浮點數,可選

縮小每個估計器貢獻的學習率。學習率應該在區間 (0, 1] 之間。(默認值:0.1)

maxDepth整數,可選

樹的最大深度(例如,深度 0 表示 1 個葉節點,深度 1 表示 1 個內部節點 + 2 個葉節點)。 (默認值:3)

maxBins整數,可選

用於分割要素的最大箱數。 DecisionTree 要求 maxBins >= 最大類別。 (默認值:32)

返回

GradientBoostedTreesModel

可用於預測。

例子

>>> 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

>>> 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]

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.mllib.tree.GradientBoostedTrees.trainClassifier。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。