Adaboost i Sklearn

Adaboost i Sklearn
“Adaboost er en gradientøkningsteknikk som brukes til å konvertere svake til sterke elever. Det er mye brukt på forskjellige konkurransedyktige maskinlæringsplattformer. Denne artikkelen vil diskutere Adaboost -algoritmen, dens bruksområder og implementering i Sklearn.”

Hva er ensemblelæring?

Ved å kombinere mange modeller forbedrer ensemblelæring maskinlæringsutbytte. Sammenlignet med å bruke en enkelt modell, muliggjør denne strategien generering av større prediksjonsytelse. For å redusere varians (posing), redusere skjevhet (boosting) og forbedre spådommer, blandet ensembletilnærminger flere maskinlæringsteknikker til en prediktiv modell (stabling).

Hva er Adaboost?

Adaboost er et eksempel på "ensemblelæring", som innebærer å bruke mange elever for å skape en mer effektiv læringsalgoritme. Adaboost opererer ved å velge en grunnleggende algoritme (for eksempel beslutningstrær) og trinnvis forbedre den ved å vurdere de feil kategoriserte prøvene i treningssettet. Vi velger en grunnleggende metode og gir hvert treningseksempel på samme vekt. Treningssettet blir utsatt for basealgoritmen ved hver iterasjon, og vektene til sakene som feilaktig ble kategorisert økes. Vi bruker baseeleven på treningssettet med oppdaterte vekter hver gang vi gjentar “n” ganger. Det vektede gjennomsnittet av “N” -elærerne utgjør den endelige modellen.

Hvorfor bruker vi Adaboost?

Siden inngangsparametrene i Adaboost -algoritmen ikke er optimalisert samtidig, påvirkes den mindre av overmontering. Ved å bruke Adaboost kan svake klassifiserernes nøyaktighet økes. I stedet for binære klassifiseringsproblemer, brukes Adaboost også for å løse tekst- og bildeklassifiseringsproblemer. Adaboost er også ofte ansatt i utfordrende maskinlæringsproblemer.

Implementering av Adaboost i Sklearn

Importere biblioteker
Fra Sklearn.Ensemble Import AdaboostClassifier
Fra Sklearn.Datasett importerer make_classification
Opprette datasettet
X, y = make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = falsk)
Print ("Funksjonsdata er", x)
Print ("Etikettdata er", y)

Produksjon

Funksjonsdata er [[0.44229321 0.08089276 0.54077359 -1.81807763]
[ 1.34699113 1.48361993 -0.04932407 0.2390336]
[-0.54639809 -1.1629494 -1.00033035 1.67398571]
..
[0.8903941 1.08980087 -1.53292105 -1.71197016]
[0.73135482 1.25041511 0.04613506 -0.95837448]
[0.26852399 1.70213738 -0.08081161 -0.70385904]]]
Label data is [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

Lage modellen og lage spådommer

clf = adaboostclassifier (n_estimators = 100, random_state = 0)
Clf.passform (x, y)
Print ("Output Label Is", CLF.forutsi ([[1.5, 1, 0.5, -0.5]]))
trykk ("Klassifiseringspoeng er", CLF.poengsum (x, y))

Produksjon

Utgangsetiketten er [1]
Klassifiseringspoeng er 0.94

Konklusjon

Vi diskuterte Adaboost -algoritmen i maskinlæring, inkludert ensemblelæring, fordeler og implementering i Sklearn. Dette er en nyttig algoritme ettersom den bruker et sett med modeller for å bestemme utgangen i stedet for en og også konverterer de svake elevene til sterke elever. Sklearn tilbyr adaboost -implementering i "Ensemble" -klassen, hvor vi gir tilpassede parametere for modellen.