En mer effektiv variasjon av gradientforsterkende rammeverk som inkluderer både en lineær modellløser og trelæringsmetoder kalles ekstrem gradientøkning (XGBOOST). Den er utviklet på gradienten som øker algoritmen, som produserer et ensemble av svake prediksjonsmodeller, ofte beslutningstrær, som en prediksjonsmodell. Konkurranser for maskinlæring har ofte xgboost. Det er avgjørende å forstå årsakene og mekanismene bak denne algoritmenes vellykkede operasjon. Vi vil lære om beslutningstrær, gradientøkning, xgboost og implementering av den i denne artikkelen.
Hva er beslutningstrær?
En datamaskinalgoritme som kalles en beslutningstrealgoritme oppretter et beslutnings tre fra et levert datasett. Datasettet vil ha attributter, noen ganger kjent som funksjoner eller egenskaper, og en klasseattributt. Mål og utfall er andre ord for klasseegenskaper. Denne egenskapen er det vi håper å forutse. Decision Tree -algoritmen oppretter en beslutnings tre -modell. En rotknute, bladknuter og kanter utgjør beslutnings tre -modellen. Decision Tree -algoritmen er rekursiv, noe som betyr at den kaller seg igjen og fortsetter behandlingen av dataene til en stoppende tilstand er fornøyd.
Eksempel på beslutnings tre fra Wikipedia
Hva er gradientøkning?
For regresjons- og klassifiseringsproblemer er gradientøkning en maskinlæringsteknikk som genererer en modell i form av en gruppe svake prediksjonsmodeller, ofte beslutningstrær. I likhet med andre boostingsteknikker konstruerer den modellen i trinn, men den generaliserer dem ved å muliggjøre optimalisering av en hvilken som helst tapsfunksjon. Tre viktige prosesser er involvert i gradientøkning:
- Optimalisering av en tapsfunksjon er det første trinnet som må tas. Det kreves en differensiell tapsfunksjon. Hvor godt en maskinlæringsmodell passer til dataene for et bestemt fenomen bestemmes av tapsfunksjonen.
- Å bruke en svak elev er det andre trinnet. Et beslutningstreet fungerer som den svake eleven i gradientforsterkere. Regresjonstrær som produserer reelle verdier for splitter og hvis utgang kan legges sammen er spesielt brukt, noe.
- Det tredje trinnet innebærer å legge til mange svake elever. Én etter en blir beslutningstrær lagt til. Når du legger til trær, brukes en gradient nedstigningsmetode for å redusere tap. Gradientkomponenten i gradientforsterkere er det. I maskinlæring brukes ofte gradient nedstigningsoptimalisering for å identifisere parametrene koblet til en enkelt modell som forbedrer en bestemt tapsfunksjon.
Hva er xgboost?
En Python -modul for å utføre gradientøkning kalles xgboost (Extreme Gradient Boosting). Gradient-boostede beslutningstrær fungerer som grunnlaget. Det er en økt algoritme som øker modellens robusthet og nøyaktighet i forskjellige konkurrerende plattformer som Kaggle. De beste algoritmene for små til mellomstore strukturerte eller tabelldata er basert på beslutningstrær. Modellkonstruksjon ved bruk av xgboost er rask og effektiv.
Hvor kan vi bruke xgboost?
- I tilfelle stort antall observasjoner i treningsdata.
- Antall funksjoner er mindre enn antall observasjoner.
- Når modellens ytelsesmetrikk tar i betraktning.
Implementering i Sklearn
# Importere nødvendige biblioteker
Fra Sklearn.Datasett importerer make_classification
Fra Sklearn.Model_selection import tog_test_split
Importer xgboost
# Opprette datasettet
X, y = make_classification (n_samples = 1000, n_features = 5, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = falsk)
Print ('Funksjoner er', x [: 20])
trykk ('Etiketter er', y [: 20])
# Deling av dataene i tog og test
X_train, x_test, y_train, y_test = tog_test_split (x, y, test_size = 0.2, random_state = 0)
# Opprette xgboost -forekomst
xgb_classifier = xgboost.XGBClassifier ()
# montere modellen på togdataene
xgb_classifier.Fit (X_Train, Y_Train)
# Å lage spådommene
spådommer = xgb_classifier.forutsi (x_test)
# Skrive ut 20 spådommer
trykk ('Spådommer er', spådommer [: 20])
Produksjon
Funksjonene er [[-1.66853167 -1.29901346 0.2746472 -0.60362044 0.70885958]
[-2.9728827 -1.08878294 0.42281857 -3.11685659 0.64445203]
[-0.59614125 -1.37007001 -1.91374267 0.66356158 -0.1540724]
[-1.06894674 -1.17505738 1.19361168 -0.09816121 -0.88661426]
[-1.30526888 -0.96592566 -0.14735366 1.05980629 0.02624662]
[-2.18261832 -0.97011387 -0.11433516 0.74355352 0.21035937]
[-1.24797892 -1.13094525 -0.00592741 1.36606007 1.55511403]
[-1.35308792 -1.06633681 0.61332623 -0.28595915 1.49691099]
[-1.13449871 -1.27403448 1.18311956 0.71889717 -1.21607658]
[-0.38457445 -1.08840346 0.1406719 -0.74367217 -0.15901225]
[-1.0106506 -0.52017071 0.24005693 0.10015941 -0.47517511]
[-0.58310155 -1.18236446 1.27295375 -1.69613127 0.73018353]
[-0.29760388 -1.45995253 -1.85748327 0.38259814 -0.88690433]
[-0.86057581 -1.01530275 0.87830376 0.08645252 0.24770638]
[-2.47091771 -1.21696663 -1.01827933 -0.65457013 0.20721739]
[-1.33090082 -1.01316175 0.58356993 2.92909624 0.22285832]
[0.74840002 -0.91748674 0.97603753 -1.55693393 -1.32989186]
[-1.05483466 -0.9320408 -0.35549477 -1.1974277 1.48639925]
[-2.19888276 -1.17327072 -0.41021869 1.38218189 1.48678247]
[-0.68305478 -0.94253787 0.04277972 0.50179975 -0.05609947]]]
Etiketter er [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
Spådommer er [1 1 1 0 0 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0]
Konklusjon
Vi diskuterte xgboost -algoritmen i maskinlæring. Dette er en implementering av gradientøkningsteknikken, som er mye brukt i konkurranser i dag. Vi så hvorfor denne algoritmen fungerer bra og hva den bruker under panseret. Til slutt gikk vi også gjennom implementeringen av Xgboost i Python.