Ich war durch unten Website für Entscheidung Baum Klassifizierung Teil. http://spark.apache.org/docs/latest/mllib-decision-tree.htmlSpark Entscheidungsbaum mit Spark
Ich baute Beispielcode in meinen Laptop und versuchte zu verstehen, es ist Ausgabe. aber ich konnte ein bisschen nicht verstehen. Die unten ist der Code und sample_libsvm_data.txt kann unter https://github.com/apache/spark/blob/master/data/mllib/sample_libsvm_data.txt
Bitte beachten Sie den Ausgang zu finden, und lassen Sie mich wissen, ob meine Meinung richtig ist. Hier sind meine Meinungen.
- Testfehler bedeutet, dass es ungefähr 95% Korrektur basierend auf dem Training hat Daten?
(merkwürdigsten eins), wenn Merkmal 434 größer ist als 0,0, dann wäre es auf Gini-Index wird 1 basiert? beispielsweise wird der Wert als 434 gegeben: 178, dann wäre es 1.
from __future__ import print_function from pyspark import SparkContext from pyspark.mllib.tree import DecisionTree, DecisionTreeModel from pyspark.mllib.util import MLUtils if __name__ == "__main__": sc = SparkContext(appName="PythonDecisionTreeClassificationExample") data = MLUtils.loadLibSVMFile(sc,'/home/spark/bin/sample_libsvm_data.txt') (trainingData, testData) = data.randomSplit([0.7, 0.3]) model = DecisionTree.trainClassifier(trainingData, numClasses=2, categoricalFeaturesInfo={}, impurity='gini', maxDepth=5, maxBins=32) predictions = model.predict(testData.map(lambda x: x.features)) labelsAndPredictions = testData.map(lambda lp: lp.label).zip(predictions) testErr = labelsAndPredictions.filter(lambda (v, p): v != p).count()/float(testData.count()) print('Test Error = ' + str(testErr)) print('Learned classification tree model:') print(model.toDebugString()) // =====Below is my output===== Test Error = 0.0454545454545 Learned classification tree model: DecisionTreeModel classifier of depth 1 with 3 nodes If (feature 434 <= 0.0) Predict: 0.0 Else (feature 434 > 0.0) Predict: 1.0