Ich habe ein xgboost-Modell ausgeführt. Ich weiß nicht genau, wie ich die Ausgabe von interpretieren soll xgb.importance
.
Was ist die Bedeutung von Gain, Cover und Frequency und wie interpretieren wir sie?
Was bedeuten Split, RealCover und RealCover%? Ich habe einige zusätzliche Parameter hier
Gibt es andere Parameter, die mehr über die Wichtigkeit von Features aussagen können?
Aus der R-Dokumentation geht hervor, dass die Verstärkung der Informationsverstärkung ähnelt und die Häufigkeit die Häufigkeit ist, mit der ein Feature in allen Bäumen verwendet wird. Ich habe keine Ahnung, was Cover ist.
Ich habe den im Link angegebenen Beispielcode ausgeführt (und auch versucht, dasselbe bei dem Problem zu tun, an dem ich arbeite), aber die dort angegebene Split-Definition stimmte nicht mit den von mir berechneten Zahlen überein.
importance_matrix
Ausgabe:
Feature Gain Cover Frequence
1: xxx 2.276101e-01 0.0618490331 1.913283e-02
2: xxxx 2.047495e-01 0.1337406946 1.373710e-01
3: xxxx 1.239551e-01 0.1032614896 1.319798e-01
4: xxxx 6.269780e-02 0.0431682707 1.098646e-01
5: xxxxx 6.004842e-02 0.0305611830 1.709108e-02
214: xxxxxxxxxx 4.599139e-06 0.0001551098 1.147052e-05
215: xxxxxxxxxx 4.500927e-06 0.0001665320 1.147052e-05
216: xxxxxxxxxxxx 3.899363e-06 0.0001536857 1.147052e-05
217: xxxxxxxxxxxxxx 3.619348e-06 0.0001808504 1.147052e-05
218: xxxxxxxxxxxxx 3.429679e-06 0.0001792233 1.147052e-05
quelle
Danke Sandeep für deine ausführliche Antwort. Ich möchte korrigieren, dass die Deckung über alle Teilungen und nicht nur über die Blattknoten berechnet wird.
Lassen Sie uns ein einfaches Beispiel mit den Daten der xgboost-Bibliothek durchgehen.
Ausgabe -
Versuchen wir, die Geruchsbedeckung = keine in der Wichtigkeitsmatrix (0,495768965) aus der Baumhalde zu berechnen.
Die Abdeckung jeder Teilung, bei der Geruch = keine verwendet wird, beträgt 1628,2500 bei Node ID 0-0 und 765,9390 bei Node ID 1-1.
Gesamte Deckung aller Splits (Summierung über Deckungsspalte im Tree Dump) = 1628.2500 * 2 + 786.3720 * 2
Geruchsbedeckung = keine in der Wichtigkeitsmatrix = (1628,2500 + 765,9390) / (1628,2500 * 2 + 786,3720 * 2)
Daher sind wir sicher, dass die Deckung über alle Splits berechnet wird!
quelle