Невозможно вызвать DecisionTreeClassifier.train () - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь использовать DecisionTreeClassifier.train (), но появляется сообщение об ошибке:

Ошибка: (218, 41) последовательность методов в классе DecisionTreeClassifier недоступна в org.apache.spark.*

Он сообщает, что мой объект FeatureSelection не является подклассом классификации пакетов, поэтому он не может вызвать предполагаемый метод пакета. Но фактически train () - это функция с открытым типом в официальных документах.

Окружение: Scala 2.10.6 Spark 2.10: 1.6.1 jdk 1.8

Вот коды:

import org.apache.spark.ml.classification.DecisionTreeClassifier

object FeatureSelection {
  def selectFeatureGreedyDTNoLimit(){
    val selectfeature=ArrayBuffer[String]()
    val selectsize=selectfeature.size
    val tempfeature=selectfeature++ArrayBuffer(line)

    val vectorDF = new VectorAssembler()
      .setInputCols(tempfeature.toArray)
      .setOutputCol("features")
      .transform(tempdf)
      .select("label", "features")

    val Array(trainRdd, testRdd) =
      vectorDF
      .rdd
      .map(row =>  LabeledPoint(Common.any2Double(row.get(0)).get, row.getAs[Vector](1)))
      .randomSplit(Array(0.5, 0.5), 0L)

    val numClasses = 2
    val categoricalFeaturesInfo = Map[Int, Int]()

    val dt = decisionTreeClassifier.train(trainRdd, categoricalFeaturesInfo, numClasses)
  }
}

Надеемся, что кто-нибудь поможет мне решить эту проблему.

1 Ответ

0 голосов
/ 26 апреля 2019

Вы должны использовать метод fit.

train - это внутренняя функция, поэтому она защищена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...