【问题标题】:Spark MLlib: Difference between DecisionTree.trainClassifier and DecisionTree.trainSpark MLlib:DecisionTree.trainClassifier 和 DecisionTree.train 之间的区别
【发布时间】:2019-06-15 06:43:00
【问题描述】:

我看不出DecisionTree.trainClassifierDecisionTree.train 方法之间的区别。

codeDecisionTree 中有一些线索。 train 的评论是:

训练决策树模型的方法。 该方法支持二元和多类分类和回归。

trainClassifier 的评论是:

为二元或多类分类训练决策树模型的方法。

由于我想使用二进制分类,我认为最好使用DecisionTree.trainClassifier 方法。但我想了解这些差异。

有什么想法吗?

【问题讨论】:

    标签: scala apache-spark apache-spark-mllib decision-tree


    【解决方案1】:

    trainClassifier本质上是train的重载,其中算法预设为Classifier

    下面我***你引用的源代码中预设的Classification参数

     def trainClassifier(
          input: RDD[LabeledPoint],
          numClasses: Int,
          categoricalFeaturesInfo: Map[Int, Int],
          impurity: String,
          maxDepth: Int,
          maxBins: Int): DecisionTreeModel = {
        val impurityType = Impurities.fromString(impurity)
        train(input, ***Classification***, impurityType, maxDepth, numClasses, maxBins, Sort,
          categoricalFeaturesInfo)
      }
    

    【讨论】:

    • 那么,使用其中一个是否完全相同?我问是因为我认为我更喜欢使用 def train(input: RDD[LabeledPoint], strategy: Strategy): DecisionTreeModel = { new DecisionTree(strategy).run(input) } 我觉得它更有条理 =)
    • 使用train可以完全一样。如果您使用训练分类器,您可以获得选项的子集。在您的情况下,您确实可以同时使用两者
    猜你喜欢
    • 2018-08-30
    • 1970-01-01
    • 2016-05-30
    • 2017-01-31
    • 2020-05-10
    • 2022-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多