wie kann ich drucken Sie variable Bedeutung in der gbm-Funktion?
Benutzte ich die gbm
Funktion zu implementieren, gradient boosting. Und ich möchte Klassifikation.
Danach habe ich die varImp()
Funktion zum drucken variabler Bedeutung, gradient boosting-Modellierung.
Aber... nur 4 Variablen, die nicht null Bedeutung. Es sind 371 Variablen, die in my big data.... Ist es richtig?
Das ist mein code und das Ergebnis.
>asd<-read.csv("bigdatafile.csv",header=TRUE)
>asd1<-gbm(TARGET~.,n.trees=50,distribution="adaboost", verbose=TRUE,interaction.depth = 1,data=asd)
Iter TrainDeviance ValidDeviance StepSize Improve
1 0.5840 nan 0.0010 0.0011
2 0.5829 nan 0.0010 0.0011
3 0.5817 nan 0.0010 0.0011
4 0.5806 nan 0.0010 0.0011
5 0.5795 nan 0.0010 0.0011
6 0.5783 nan 0.0010 0.0011
7 0.5772 nan 0.0010 0.0011
8 0.5761 nan 0.0010 0.0011
9 0.5750 nan 0.0010 0.0011
10 0.5738 nan 0.0010 0.0011
20 0.5629 nan 0.0010 0.0011
40 0.5421 nan 0.0010 0.0010
50 0.5321 nan 0.0010 0.0010
>varImp(asd1,numTrees = 50)
Overall
CA0000801 0.00000
AS0000138 0.00000
AS0000140 0.00000
A1 0.00000
PROFILE_CODE 0.00000
A2 0.00000
CB_thinfile2 0.00000
SP_thinfile2 0.00000
thinfile1 0.00000
EW0001901 0.00000
EW0020901 0.00000
EH0001801 0.00000
BS_Seg1_Score 0.00000
BS_Seg2_Score 0.00000
LA0000106 0.00000
EW0001903 0.00000
EW0002801 0.00000
EW0002902 0.00000
EW0002903 0.00000
EW0002904 0.00000
EW0002906 0.00000
LA0300104_SP 56.19052
ASMGRD2 2486.12715
MIX_GRD 2211.03780
P71010401_1 0.00000
PS0000265 0.00000
P11021100 0.00000
PE0000123 0.00000
Gibt es 371 Variablen. Also über das Ergebnis,ich wollte nicht schreiben, die anderen Variablen. Alle haben null Bedeutung.
TARGET ist die target-variable. Und ich produziert 50 Bäume. TARGET-variable hat zwei Ebenen. so habe ich adaboost.
Ist es ein Fehler in meinem code??? Es gibt eine kleine nicht-null-Variablen....
Danke für Eure Antworten.
Ich Stimme mit @discipulus. Das ausgewählte Modell diejenigen Variablen, um das Ergebnis vorherzusagen. Sie können versuchen, und Stimmen Sie die hyperparameters, um zu sehen, wenn die variable Bedeutung ändert. Sie können erzwingen, dass das Modell zu berücksichtigen anderen Variablen, wenn Sie diese 4 Variablen aus den Daten. Vielleicht versuchen Sie es mit "Bernoulli" oder "Binomial" - distribution, wenn Ihr Ziel ist binäre.
InformationsquelleAutor | 2017-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrem code, n.Bäume ist sehr gering, und die Schrumpfung ist sehr hoch.
Nur passen diese zwei Faktor.
Ich empfehle Verwendungen, von 0,1 für alle Datensätze mit mehr als 10.000 Datensätzen.
Auch! verwenden Sie eine kleine Schrumpfung, wenn wachsen viele Bäume.
Wenn Sie input von 1.000 n.Bäume & 0.1 Schrumpfung, können Sie unterschiedlichen Wert.
Und wenn Sie wissen wollen, relative Einfluss der einzelnen Variablen, die in der gbm, Zusammenfassung.gbm (ist) nicht varImp(). Natürlich varImp() ist eine gute Funktion. aber ich empfehle die Zusammenfassung.gbm().
Glück.
InformationsquelleAutor 서영재