Forbehandling i Sklearn

Forbehandling i Sklearn
Dataforbehandling, en avgjørende fase i data mining, kan defineres som å endre eller slippe data før bruk for å sikre eller øke ytelsen. Dataforberedelse innebærer flere prosedyrer som utforskende dataanalyse, fjerner unødvendig informasjon og legger til nødvendig informasjon. Vi snakker om forbehandling av data og hvordan det brukes i Sklearn i denne artikkelen.

Hva er databehandling?

Dataforbehandling er et kritisk stadium i maskinlæring som forbedrer datakvaliteten for å oppmuntre til å trekke ut verdifull innsikt fra dataene. Dataforberedelse i maskinlæring er prosessen med å gjøre rå data klar (rengjøre og organisere den) som skal brukes til å lage og trene maskinlæringsmodeller. Dataforbehandling i maskinlæring er, for å si det enkelt en data mining -tilnærming som konverterer rå data til et format som er lesbar og forståelig.

Hvorfor trenger vi forbehandling av data?

Data fra den virkelige verden mangler ofte spesielle attributtverdier eller trender og er ofte inkonsekvente, feilaktige (inneholder feil eller outliers), og ufullstendig. Dataforberedelse kommer i spill i denne situasjonen fordi det hjelper til med å rengjøre, formatere og organisere rå data, noe som gjør den klar til bruk av maskinlæringsmodeller.

Dataforbehandling omhandler følgende:

  • Manglende data: Fjern, riktig og pålegg
  • Ingeniørfunksjoner: ekstrapolere nye funksjoner fra rå data.
  • Dataformatering: Dataene er kanskje ikke tilgjengelig i ønsket format. For eksempel er det en enkel tekstfil vi trenger å konvertere til en dataaframe.
  • Data normalisering: Ikke alle data kan være i normalisert form. Derfor skalerer vi det til det gitte området for effektivitetsformål
  • Nedbryting: Fjerning av overflødige data for å forbedre ytelsen

Standarder for Scikit-Learn API

Det er flere spesifikasjoner for den typen data som Sklearn vil behandle.

  • Konstante verdier (ingen kategoriske variabler).
  • Ingen verdier mangler.
  • Hver kolonne skal inneholde en annen prediktorvariabel.
  • Hver rad skal inneholde en funksjonsobservasjon.
  • Det må være så mange etiketter for hver funksjon som det er observasjoner av det.

Implementering av forbehandling Sklearn

Importere bibliotekene og dataene

# Importere bibliotekene og klassene
Fra Sklearn Import SVM, datasett
Importer pandaer som PD
Fra Sklearn.pålegge import simpleimputer
Fra Sklearn.Forbehandling av importstandardscaler
Fra Sklearn.Forbehandling importerer onehotencoder
# Last inn IRIS -datasettet
data = datasett.LOAD_IRIS ()
df = pd.DataFrame (data = data.data, kolonner = data.Feature_names)

Laster inn de første 5 rader med dataene

df.hode()

Produksjon

sepal lengde (cm) Sepal bredde (cm) kronblad (cm) kronblad bredde (cm)
0 5.1 3.5 1.4 0.2
1 4.9 3.0 1.4 0.2
2 4.7 3.2 1.3 0.2
3 4.6 3.1 1.5 0.2
4 5.0 3.6 1.4 0.2

Få informasjon om typer og nullverdier

df.info ()

Produksjon

RangeIndex: 150 oppføringer, 0 til 149
Datakolonner (totalt 4 kolonner):
# Kolonne ikke-null count dtype
--- ------ -------------- -----
0 Sepal lengde (cm) 150 ikke-null float64
1 sepal bredde (cm) 150 ikke-null float64
2 kronblad (cm) 150 ikke-null float64
3 kronblad bredde (cm) 150 ikke-null float64
Dypes: Float64 (4)

Fylling av manglende verdier av DataFrame ved hjelp av Sklearn:

immuter = simpleimputer (strategi = 'mener')
df ['Sepal bredde (cm)'] = imputer.FIT_TRANSFORM (DF [['Sepal Width (CM)']]))

Vi kan iterere alle kolonnene for å utføre denne oppgaven på alle kolonnene.

Skalere dataene ved hjelp av standard skaler

SCALER = StandardsCaler ()
Skalere.passform (df)
# Transformer dataene
Skalere.Transform (DF) [: 10]

Produksjon

Array ([[-0.90068117, 1.01900435, -1.34022653, -1.3154443],
[-1.14301691, -0.13197948, -1.34022653, -1.3154443],
[-1.38535265, 0.32841405, -1.39706395, -1.3154443],
[-1.50652052, 0.09821729, -1.2833891, -1.3154443],
[-1.02184904, 1.24920112, -1.34022653, -1.3154443],
[-0.53717756, 1.93979142, -1.16971425, -1.05217993],
[-1.50652052, 0.78880759, -1.34022653, -1.18381211],
[-1.02184904, 0.78880759, -1.2833891, -1.3154443],
[-1.74885626, -0.36217625, -1.34022653, -1.3154443],
[-1.14301691, 0.09821729, -1.2833891, -1.44707648]])

En varm koding

Encoder = OneHotencoder (Handle_Unknown = 'Ignore')
X = [['a', 1], ['b', 3], ['b', 2]]
Encoder.passform (x)
trykk (koder.kategorier_)
Encoder.Transform (x).ToArray ()

Produksjon

[Array (['A', 'B'], DType = Object), Array ([1, 2, 3], DType = Object)]
Array ([[1., 0., 1., 0., 0.],
[0., 1., 0., 0., 1.],
[0., 1., 0., 1., 0.]])

Konklusjon

Vi diskuterte forbehandling og implementering av den i Sklearn Python -biblioteket i denne artikkelen. For å lette utvinning av nyttig innsikt fra dataene, er forbehandling av data et avgjørende trinn i maskinlæring. Det hever kvaliteten på dataene. Deretter diskuterte vi implementeringen i Sklearn. Vi hentet først informasjon om data, inkludert de manglende verdiene og datatypene, og fylte deretter ut de manglende verdiene. Vi jobbet også med å skalere dataene og en varm koding.