Package org.apache.spark.mllib.tree
Class DecisionTree
Object
org.apache.spark.mllib.tree.DecisionTree
- All Implemented Interfaces:
Serializable
,org.apache.spark.internal.Logging
,scala.Serializable
public class DecisionTree
extends Object
implements scala.Serializable, org.apache.spark.internal.Logging
A class which implements a decision tree learning algorithm for classification and regression.
It supports both continuous and categorical features.
param: strategy The configuration parameters for the tree algorithm which specify the type of decision tree (classification or regression), feature type (continuous, categorical), depth of the tree, quantile calculation strategy, etc. param: seed Random seed.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.spark.internal.Logging
org.apache.spark.internal.Logging.SparkShellLoggingFilter
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic org.slf4j.Logger
static void
org$apache$spark$internal$Logging$$log__$eq
(org.slf4j.Logger x$1) run
(RDD<LabeledPoint> input) Method to train a decision tree model over an RDDstatic DecisionTreeModel
train
(RDD<LabeledPoint> input, Strategy strategy) Method to train a decision tree model.static DecisionTreeModel
train
(RDD<LabeledPoint> input, scala.Enumeration.Value algo, Impurity impurity, int maxDepth) Method to train a decision tree model.static DecisionTreeModel
train
(RDD<LabeledPoint> input, scala.Enumeration.Value algo, Impurity impurity, int maxDepth, int numClasses) Method to train a decision tree model.static DecisionTreeModel
train
(RDD<LabeledPoint> input, scala.Enumeration.Value algo, Impurity impurity, int maxDepth, int numClasses, int maxBins, scala.Enumeration.Value quantileCalculationStrategy, scala.collection.immutable.Map<Object, Object> categoricalFeaturesInfo) Method to train a decision tree model.static DecisionTreeModel
trainClassifier
(JavaRDD<LabeledPoint> input, int numClasses, Map<Integer, Integer> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Java-friendly API fororg.apache.spark.mllib.tree.DecisionTree.trainClassifier
static DecisionTreeModel
trainClassifier
(RDD<LabeledPoint> input, int numClasses, scala.collection.immutable.Map<Object, Object> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Method to train a decision tree model for binary or multiclass classification.static DecisionTreeModel
trainRegressor
(JavaRDD<LabeledPoint> input, Map<Integer, Integer> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Java-friendly API fororg.apache.spark.mllib.tree.DecisionTree.trainRegressor
static DecisionTreeModel
trainRegressor
(RDD<LabeledPoint> input, scala.collection.immutable.Map<Object, Object> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Method to train a decision tree model for regression.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.spark.internal.Logging
initializeForcefully, initializeLogIfNecessary, initializeLogIfNecessary, initializeLogIfNecessary$default$2, isTraceEnabled, log, logDebug, logDebug, logError, logError, logInfo, logInfo, logName, logTrace, logTrace, logWarning, logWarning, org$apache$spark$internal$Logging$$log_, org$apache$spark$internal$Logging$$log__$eq
-
Constructor Details
-
DecisionTree
- Parameters:
strategy
- The configuration parameters for the tree algorithm which specify the type of decision tree (classification or regression), feature type (continuous, categorical), depth of the tree, quantile calculation strategy, etc.
-
-
Method Details
-
train
Method to train a decision tree model. The method supports binary and multiclass classification and regression.- Parameters:
input
- Training dataset: RDD ofLabeledPoint
. For classification, labels should take values {0, 1, ..., numClasses-1}. For regression, labels are real numbers.strategy
- The configuration parameters for the tree algorithm which specify the type of decision tree (classification or regression), feature type (continuous, categorical), depth of the tree, quantile calculation strategy, etc.- Returns:
- DecisionTreeModel that can be used for prediction.
- Note:
- Using
org.apache.spark.mllib.tree.DecisionTree.trainClassifier
andorg.apache.spark.mllib.tree.DecisionTree.trainRegressor
is recommended to clearly separate classification and regression.
-
train
public static DecisionTreeModel train(RDD<LabeledPoint> input, scala.Enumeration.Value algo, Impurity impurity, int maxDepth) Method to train a decision tree model. The method supports binary and multiclass classification and regression.- Parameters:
input
- Training dataset: RDD ofLabeledPoint
. For classification, labels should take values {0, 1, ..., numClasses-1}. For regression, labels are real numbers.algo
- Type of decision tree, either classification or regression.impurity
- Criterion used for information gain calculation.maxDepth
- Maximum depth of the tree (e.g. depth 0 means 1 leaf node, depth 1 means 1 internal node + 2 leaf nodes).- Returns:
- DecisionTreeModel that can be used for prediction.
- Note:
- Using
org.apache.spark.mllib.tree.DecisionTree.trainClassifier
andorg.apache.spark.mllib.tree.DecisionTree.trainRegressor
is recommended to clearly separate classification and regression.
-
train
public static DecisionTreeModel train(RDD<LabeledPoint> input, scala.Enumeration.Value algo, Impurity impurity, int maxDepth, int numClasses) Method to train a decision tree model. The method supports binary and multiclass classification and regression.- Parameters:
input
- Training dataset: RDD ofLabeledPoint
. For classification, labels should take values {0, 1, ..., numClasses-1}. For regression, labels are real numbers.algo
- Type of decision tree, either classification or regression.impurity
- Criterion used for information gain calculation.maxDepth
- Maximum depth of the tree (e.g. depth 0 means 1 leaf node, depth 1 means 1 internal node + 2 leaf nodes).numClasses
- Number of classes for classification. Default value of 2.- Returns:
- DecisionTreeModel that can be used for prediction.
- Note:
- Using
org.apache.spark.mllib.tree.DecisionTree.trainClassifier
andorg.apache.spark.mllib.tree.DecisionTree.trainRegressor
is recommended to clearly separate classification and regression.
-
train
public static DecisionTreeModel train(RDD<LabeledPoint> input, scala.Enumeration.Value algo, Impurity impurity, int maxDepth, int numClasses, int maxBins, scala.Enumeration.Value quantileCalculationStrategy, scala.collection.immutable.Map<Object, Object> categoricalFeaturesInfo) Method to train a decision tree model. The method supports binary and multiclass classification and regression.- Parameters:
input
- Training dataset: RDD ofLabeledPoint
. For classification, labels should take values {0, 1, ..., numClasses-1}. For regression, labels are real numbers.algo
- Type of decision tree, either classification or regression.impurity
- Criterion used for information gain calculation.maxDepth
- Maximum depth of the tree (e.g. depth 0 means 1 leaf node, depth 1 means 1 internal node + 2 leaf nodes).numClasses
- Number of classes for classification. Default value of 2.maxBins
- Maximum number of bins used for splitting features.quantileCalculationStrategy
- Algorithm for calculating quantiles.categoricalFeaturesInfo
- Map storing arity of categorical features. An entry (n to k) indicates that feature n is categorical with k categories indexed from 0: {0, 1, ..., k-1}.- Returns:
- DecisionTreeModel that can be used for prediction.
- Note:
- Using
org.apache.spark.mllib.tree.DecisionTree.trainClassifier
andorg.apache.spark.mllib.tree.DecisionTree.trainRegressor
is recommended to clearly separate classification and regression.
-
trainClassifier
public static DecisionTreeModel trainClassifier(RDD<LabeledPoint> input, int numClasses, scala.collection.immutable.Map<Object, Object> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Method to train a decision tree model for binary or multiclass classification.- Parameters:
input
- Training dataset: RDD ofLabeledPoint
. Labels should take values {0, 1, ..., numClasses-1}.numClasses
- Number of classes for classification.categoricalFeaturesInfo
- Map storing arity of categorical features. An entry (n to k) indicates that feature n is categorical with k categories indexed from 0: {0, 1, ..., k-1}.impurity
- Criterion used for information gain calculation. Supported values: "gini" (recommended) or "entropy".maxDepth
- Maximum depth of the tree (e.g. depth 0 means 1 leaf node, depth 1 means 1 internal node + 2 leaf nodes). (suggested value: 5)maxBins
- Maximum number of bins used for splitting features. (suggested value: 32)- Returns:
- DecisionTreeModel that can be used for prediction.
-
trainClassifier
public static DecisionTreeModel trainClassifier(JavaRDD<LabeledPoint> input, int numClasses, Map<Integer, Integer> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Java-friendly API fororg.apache.spark.mllib.tree.DecisionTree.trainClassifier
- Parameters:
input
- (undocumented)numClasses
- (undocumented)categoricalFeaturesInfo
- (undocumented)impurity
- (undocumented)maxDepth
- (undocumented)maxBins
- (undocumented)- Returns:
- (undocumented)
-
trainRegressor
public static DecisionTreeModel trainRegressor(RDD<LabeledPoint> input, scala.collection.immutable.Map<Object, Object> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Method to train a decision tree model for regression.- Parameters:
input
- Training dataset: RDD ofLabeledPoint
. Labels are real numbers.categoricalFeaturesInfo
- Map storing arity of categorical features. An entry (n to k) indicates that feature n is categorical with k categories indexed from 0: {0, 1, ..., k-1}.impurity
- Criterion used for information gain calculation. The only supported value for regression is "variance".maxDepth
- Maximum depth of the tree (e.g. depth 0 means 1 leaf node, depth 1 means 1 internal node + 2 leaf nodes). (suggested value: 5)maxBins
- Maximum number of bins used for splitting features. (suggested value: 32)- Returns:
- DecisionTreeModel that can be used for prediction.
-
trainRegressor
public static DecisionTreeModel trainRegressor(JavaRDD<LabeledPoint> input, Map<Integer, Integer> categoricalFeaturesInfo, String impurity, int maxDepth, int maxBins) Java-friendly API fororg.apache.spark.mllib.tree.DecisionTree.trainRegressor
- Parameters:
input
- (undocumented)categoricalFeaturesInfo
- (undocumented)impurity
- (undocumented)maxDepth
- (undocumented)maxBins
- (undocumented)- Returns:
- (undocumented)
-
org$apache$spark$internal$Logging$$log_
public static org.slf4j.Logger org$apache$spark$internal$Logging$$log_() -
org$apache$spark$internal$Logging$$log__$eq
public static void org$apache$spark$internal$Logging$$log__$eq(org.slf4j.Logger x$1) -
run
Method to train a decision tree model over an RDD- Parameters:
input
- Training data: RDD ofLabeledPoint
.- Returns:
- DecisionTreeModel that can be used for prediction.
-