vtreat på ett litet exempel
I den här övningen använder du vtreat för att one-hot-koda en kategorisk variabel på ett litet exempel.
vtreat skapar en behandlingsplan för att omvandla kategoriska variabler till indikatorvariabler (kodade "lev"), och för att rensa bort ogiltiga värden från numeriska variabler (kodade "clean").
Använd funktionen designTreatmentsZ() (docs) för att skapa en behandlingsplan:
treatplan <- designTreatmentsZ(data, varlist)
data: den ursprungliga träningsdataramenvarlist: en vektor med indatavariabler som ska behandlas (som strängar).
designTreatmentsZ() returnerar en lista med elementet scoreFrame: en dataram som innehåller namn och typer för de nya variablerna:
scoreFrame <- treatplan %>%
magrittr::use_series(scoreFrame) %>%
select(varName, origName, code)
varName: namnet på den nya behandlade variabelnorigName: namnet på den ursprungliga variabel som den behandlade variabeln härstammar fråncode: typen av den nya variabeln."clean": en numerisk variabel utan NA eller NaN"lev": en indikatorvariabel för en specifik nivå av den ursprungliga kategoriska variabeln.
(magrittr::use_series() (docs) är ett alias för $ som du kan använda i pipes.)
I dessa övningar vill vi ha varName där code är antingen "clean" eller "lev":
newvarlist <- scoreFrame %>%
filter(code %in% c("clean", "lev") %>%
magrittr::use_series(varName)
Använd prepare() (docs) för att omvandla datamängden till enbart numeriska och one-hot-kodade variabler:
data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
treatplan: behandlingsplanendata: den dataram som ska behandlasvarRestrictions: de variabler som önskas i den behandlade datan
Dataramen dframe och paketet magrittr har förinslästs.
Den här övningen är en del av kursen
Övervakad inlärning i R: Regression
Övningsinstruktioner
- Skriv ut
dframe. Vi antar attcolorochsizeär indatavariabler och attpopularityär det utfall som ska förutsägas. - Skapa en vektor kallad
varsmed namnen på indatavariablerna (som strängar). - Läs in paketet
vtreat. - Använd
designTreatmentsZ()för att skapa en behandlingsplan för variablerna ivars. Tilldela den till variabelntreatplan. - Hämta och granska
scoreFramefrån behandlingsplanen för att se mappningen från gamla variabler till nya variabler.- Du behöver bara kolumnerna
varName,origNameochcode. - Vad heter de nya indikatorvariablerna? Och den kontinuerliga variabeln?
- Du behöver bara kolumnerna
- Skapa en vektor
newvarssom innehåller variabelnvarNamedärcodeär antingencleanellerlev. Skriv ut den. - Använd
prepare()för att skapa en ny dataramdframe.treatsom är en one-hot-kodad version avdframe(utan utfallskolumnen).- Skriv ut den och jämför med
dframe.
- Skriv ut den och jämför med
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Print dframe
dframe
# Create and print a vector of variable names
(vars <- ___)
# Load the package vtreat
___
# Create the treatment plan
treatplan <- ___(___, ___)
# Examine the scoreFrame
(scoreFrame <- treatplan %>%
use_series(scoreFrame) %>%
select(___, ___, ___))
# We only want the rows with codes "clean" or "lev"
(newvars <- scoreFrame %>%
filter(code %in% ___) %>%
use_series(varName))
# Create the treated training data
(dframe.treat <- ___(___, ___, varRestriction = newvars))