2016-03-25 5 views
1

Ich studiere Spark MLlib. Während ich DecisionTree studiere, sehe ich das folgende DecisionTree.trainClassifier Anwendungsbeispiel.Was sind DecisionTree.trainClassifier Parameter in Spark

import org.apache.spark.mllib.tree._ 
val model = DecisionTree.trainClassifier(trainData, 7, Map[int, int](), "gini", 4, 100) 

Es gibt 6 Parameter hier, ich die 3. nicht verstehen (Karte), 5. (4) und sechsten (100) Parameter.

Google sagt, dass sie kategorisches Merkmal, Lambda und Alpha sind. Kann jemand sie ein bisschen besser erklären?

benötigen eine Art Hilfe

Antwort

2

die Signatur der Funktion ist:

def trainClassifier (Eingang: RDD [LabeledPoint], NumClasses: Int, categoricalFeaturesInfo: Map [Int, Int], Verunreinigung: String, maxDepth: Int, maxBins: Int): DecisionTreeModel

und in spark DecisionTree source code können Sie die Beschreibung der Parameter finden Sie unter:

categoricalFeaturesInfo

Kartenspeicher mit kategorischen Merkmalen. Ein Eintrag (n -> k) zeigt an, dass das Merkmal n kategorisch ist mit k Kategorien, die von 0 indiziert sind: {0, 1, ..., k-1}.

maxDepth

maximale Tiefe des Baumes (zum Beispiel Tiefe 0 bedeutet 1 Astknoten, Tiefe 1 bedeutet, 1 + 2 interne Knoten Endknoten). (Empfohlener Wert: 5)

maxBins

Maximale Anzahl der Behälter für das Aufspalten Funktionen verwendet (vorgeschlagener Wert: 32)

+0

Es ist nicht 32 für maxBins vorgeschlagen, der Standardwert ist (= 32) aber sollte größer oder gleich der maximalen Anzahl von Kategorien für kategoriale Features sein. – Maziyar

3

3.:
categoricalFeaturesInfo: Alle Funktionen, die nicht in dieser Karte als kontinuierlich behandelt.

Zum Beispiel gibt Map (0 -> 2, 4 -> 10) an, dass Feature 0 binär ist (Werte 0 oder 1) und Feature 4 10 Kategorien (Werte {0, 1, ..., 9}). Beachten Sie, dass Feature-Indizes 0-basiert sind: Die Features 0 und 4 sind das erste und fünfte Element des Feature-Vektors einer Instanz.

Karte [Int, Int] bedeutet, dass alle Funktionen vom numerischen Typ sind.

5.:
es ist leicht zu verstehen, es ist die (max) Tiefe des Baumes.

6.:
maxBins: Anzahl der Behälter verwendet wird, wenn kontinuierliche Funktionen Diskretisierung.

Durch die Erhöhung von maxBins kann der Algorithmus mehr Split-Kandidaten berücksichtigen und feinkörnige Split-Entscheidungen treffen. Es erhöht jedoch auch die Berechnung und Kommunikation.

Beachten Sie, dass der Parameter maxBins mindestens der maximalen Anzahl von Kategorien entsprechen muss.

SIE KÖNNEN SICH AUF DAS BUCH "Adcaned Analytics with Spark" (Kapitel 4.8-4.10) VERLASSEN.

+0

Hallo @s yh. Bedeutet "Map [Int, Int]" auch, dass der Benutzer alle Spalten als Features an den Decision Tree-Algorithmus übergibt? – JKC

+1

@JKC Ich denke, dass es nicht sein kann.Es nur sagen, der Algorithmus, die Features ist "categoricalFeatures". Es kann alle Funktionen bestehen und es kann auch einige der Funktionen bestehen und es kann keine der Funktionen bestehen ... I denke schon.. –

Verwandte Themen