私はデシジョンツリーの分類のために、以下のウェブサイトから読んでいました。 http://spark.apache.org/docs/latest/mllib-decision-tree.html火花のあるスパークデシジョンツリー
私のラップトップに提供されたサンプルコードを組み込み、出力を理解しようとしました。 しかし、私は少し理解できませんでした。以下はコードです sample_libsvm_data.txtは下記にありますhttps://github.com/apache/spark/blob/master/data/mllib/sample_libsvm_data.txt
私の意見が正しいかどうかを教えてください。ここに私の意見があります。
- テストエラーは、トレーニングに基づいて約95%の修正があることを意味します。 データ?
(最も興味があるもの)434が0.0より大きい場合、ジニ不純物に基づいて1になりますか?例えば、値が434のように与えられる:178それは私はあなたが正しいと信じて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