R Trinnvis og multippel lineær regresjon [Trinn for trinn eksempel]
Enkel lineær regresjon i R
Lineær regresjon svarer på et enkelt spørsmål: Kan du måle en nøyaktig sammenheng mellom én målvariabel og et sett med prediktorer?
Den enkleste sannsynlighetsmodellen er den rette linjemodellen:
hvor
- y = Avhengig variabel
- x = Uavhengig variabel
- = tilfeldig feilkomponent
- = avskjære
- = Koeffisient av x
Tenk på følgende plot:
Ligningen er er avskjæringen. Hvis x er lik 0, vil y være lik skjæringspunktet, 4.77. er helningen på linjen. Den forteller i hvilken andel y varierer når x varierer.
For å estimere de optimale verdiene av og , bruker du en metode som heter Vanlige minste kvadrater (OLS). Denne metoden prøver å finne parameterne som minimerer summen av kvadratfeilene, det vil si den vertikale avstanden mellom de predikerte y-verdiene og de faktiske y-verdiene. Forskjellen er kjent som feilbegrep.
Før du estimerer modellen, kan du bestemme om en lineær sammenheng mellom y og x er plausibel ved å plotte et spredningsplott.
Scatterplot
Vi vil bruke et veldig enkelt datasett for å forklare begrepet enkel lineær regresjon. Vi vil importere gjennomsnittlige høyder og vekter for amerikanske kvinner. Datasettet inneholder 15 observasjoner. Du vil måle om høyder er positivt korrelert med vekter.
library(ggplot2) path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/women.csv' df <-read.csv(path) ggplot(df,aes(x=height, y = weight))+ geom_point()
Utgang:
Spredningsdiagrammet antyder en generell tendens til at y øker når x øker. I neste trinn vil du måle etter hvor mye økning for hver ekstra .
Minste kvadraters estimater
I en enkel OLS regresjon, beregningen av og er grei. Målet er ikke å vise avledningen i denne opplæringen. Du vil bare skrive formelen.
Du vil anslå:
Målet med OLS-regresjonen er å minimere følgende ligning:
hvor
er den faktiske verdien og er den anslåtte verdien.
Løsningen for is
Legg merke til at betyr gjennomsnittsverdien av x
Løsningen for is
I R kan du bruke cov()og var()funksjonen for å estimere og du kan bruke mean()-funksjonen for å estimere
beta <- cov(df$height, df$weight) / var (df$height) beta
Utgang:
##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height) alpha
Utgang:
## [1] -87.51667
Beta-koeffisienten innebærer at for hver ekstra høyde øker vekten med 3.45.
Å estimere enkel lineær ligning manuelt er ikke ideelt. R gir en passende funksjon for å estimere disse parameterne. Du vil se denne funksjonen snart. Før det vil vi introdusere hvordan man beregner for hånd en enkel lineær regresjonsmodell. På reisen som dataforsker vil du knapt eller aldri estimere en enkel lineær modell. I de fleste situasjoner utføres regresjonsoppgaver på mange estimatorer.
Multippel lineær regresjon i R
Mer praktiske anvendelser av regresjonsanalyse bruker modeller som er mer komplekse enn den enkle lineære modellen. Den sannsynlige modellen som inkluderer mer enn én uavhengig variabel kalles flere regresjonsmodeller. Den generelle formen for denne modellen er:
I matrisenotasjon kan du skrive om modellen:
Den avhengige variabelen y er nå en funksjon av k uavhengige variabler. Verdien av koeffisienten bestemmer bidraget til den uavhengige variabelen og .
Vi introduserer kort antagelsen vi gjorde om den tilfeldige feilen av OLS:
- Gjennomsnitt lik 0
- Varians lik
- Normal distribusjon
- Tilfeldige feil er uavhengige (i en sannsynlighet)
Du må løse for , vektoren av regresjonskoeffisienter som minimerer summen av kvadratfeilene mellom de predikerte og faktiske y-verdiene.
Løsningen i lukket form er:
med:
- indikerer transponere av matrisen X
- indikerer inverterbar matrise
Vi bruker mtcars-datasettet. Du er allerede kjent med datasettet. Målet vårt er å forutsi mile per gallon over et sett med funksjoner.
Kontinuerlige variabler i R
Foreløpig vil du bare bruke de kontinuerlige variablene og legge til side kategoriske funksjoner. Variabelen am er en binær variabel som tar verdien av 1 hvis girkassen er manuell og 0 for automatiske biler; vs er også en binær variabel.
library(dplyr) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) glimpse(df)
Utgang:
## Observations: 32 ## Variables: 6 ## $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.... ## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1... ## $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ... ## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9... ## $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3... ## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 2...
Du kan bruke lm()-funksjonen til å beregne parameterne. Den grunnleggende syntaksen til denne funksjonen er:
lm(formula, data, subset) Arguments: -formula: The equation you want to estimate -data: The dataset used -subset: Estimate the model on a subset of the dataset
Husk at en ligning har følgende form
i R
- Symbolet = erstattes av ~
- Hver x er erstattet av variabelnavnet
- Hvis du vil slippe konstanten, legger du til -1 på slutten av formelen
Eksempel:
Du vil estimere vekten til enkeltpersoner basert på deres høyde og inntekt. Ligningen er
Ligningen i R er skrevet som følger:
y ~ X1+ X2+…+Xn # Med avskjæring
Så for vårt eksempel:
- Vei ~ høyde + inntekt
Målet ditt er å estimere milen per gallon basert på et sett med variabler. Ligningen som skal estimeres er:
Du vil estimere din første lineære regresjon og lagre resultatet i tilpasningsobjektet.
model <- mpg~.disp + hp + drat + wt fit <- lm(model, df) fit
Kode Forklaring
- modell <- mpg ~. disp + hp + drat+ wt: Lagre modellen for å estimere
- lm(modell, df): Estimer modellen med datarammen df
## ## Call: ## lm(formula = model, data = df) ## ## Coefficients: ## (Intercept) disp hp drat wt ## 16.53357 0.00872 -0.02060 2.01577 -4.38546 ## qsec ## 0.64015
Utdataene gir ikke nok informasjon om kvaliteten på passformen. Du kan få tilgang til flere detaljer som betydningen av koeffisientene, graden av frihet og formen på residualene med summary()-funksjonen.
summary(fit)
Utgang:
## return the p-value and coefficient ## ## Call: ## lm(formula = model, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.5404 -1.6701 -0.4264 1.1320 5.4996 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 16.53357 10.96423 1.508 0.14362 ## disp 0.00872 0.01119 0.779 0.44281 ## hp -0.02060 0.01528 -1.348 0.18936 ## drat 2.01578 1.30946 1.539 0.13579 ## wt -4.38546 1.24343 -3.527 0.00158 ** ## qsec 0.64015 0.45934 1.394 0.17523 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.558 on 26 degrees of freedom ## Multiple R-squared: 0.8489, Adjusted R-squared: 0.8199 ## F-statistic: 29.22 on 5 and 26 DF, p-value: 6.892e-10
Konklusjon fra tabellen ovenfor
- Tabellen ovenfor viser at det er en sterk negativ sammenheng mellom vekt og kjørelengde og positiv sammenheng med drat.
- Bare variabelen wt har en statistisk innvirkning på mpg. Husk at for å teste en hypotese i statistikk bruker vi:
- H0: Ingen statistisk effekt
- H3: Prediktoren har en meningsfull innvirkning på y
- Hvis p-verdien er lavere enn 0.05, indikerer det at variabelen er statistisk signifikant
- Justert R-kvadrat: Varians forklart av modellen. I modellen din forklarte modellen 82 prosent av variansen til y. R i annen er alltid mellom 0 og 1. Jo høyere jo bedre
Du kan kjøre ANOVA test for å estimere effekten av hver funksjon på variansene med anova()-funksjonen.
anova(fit)
Utgang:
## Analysis of Variance Table ## ## Response: mpg ## Df Sum Sq Mean Sq F value Pr(>F) ## disp 1 808.89 808.89 123.6185 2.23e-11 *** ## hp 1 33.67 33.67 5.1449 0.031854 * ## drat 1 30.15 30.15 4.6073 0.041340 * ## wt 1 70.51 70.51 10.7754 0.002933 ** ## qsec 1 12.71 12.71 1.9422 0.175233 ## Residuals 26 170.13 6.54 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
En mer konvensjonell måte å estimere modellytelsen på er å vise residuet mot ulike mål.
Du kan bruke plot()-funksjonen til å vise fire grafer:
– Residualer vs. tilpassede verdier
– Normal QQ-plott: Teoretisk kvartil vs standardiserte residualer
– Skala-plassering: Tilpassede verdier vs kvadratrøtter av de standardiserte residualene
– Residualer vs gearing: gearing vs standardiserte rester
Du legger til koden par(mfrow=c(2,2)) før plot(fit). Hvis du ikke legger til denne kodelinjen, ber R deg trykke enter-kommandoen for å vise neste graf.
par(mfrow=(2,2))
Kode Forklaring
- (mfrow=c(2,2)): returner et vindu med de fire grafene side om side.
- De 2 første legger til antall rader
- Den andre 2 legger til antall kolonner.
- Hvis du skriver (mfrow=c(3,2)): vil du lage et vindu med 3 rader og 2 kolonner
plot(fit)
Utgang:
Formelen lm() returnerer en liste som inneholder mye nyttig informasjon. Du får tilgang til dem med tilpasningsobjektet du har laget, etterfulgt av $-tegnet og informasjonen du vil trekke ut.
– koeffisienter: `fit$coefficients`
– residualer: `fit$residuals`
– tilpasset verdi: `fit$fitted.values`
Faktorer regresjon i R
I den siste modellestimeringen regresserer du bare mpg på kontinuerlige variabler. Det er enkelt å legge til faktorvariabler i modellen. Du legger til variabelen am til modellen din. Det er viktig å være sikker på at variabelen er et faktornivå og ikke kontinuerlig.
df <- mtcars % > % mutate(cyl = factor(cyl), vs = factor(vs), am = factor(am), gear = factor(gear), carb = factor(carb)) summary(lm(model, df))
Utgang:
## ## Call: ## lm(formula = model, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.5087 -1.3584 -0.0948 0.7745 4.6251 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 23.87913 20.06582 1.190 0.2525 ## cyl6 -2.64870 3.04089 -0.871 0.3975 ## cyl8 -0.33616 7.15954 -0.047 0.9632 ## disp 0.03555 0.03190 1.114 0.2827 ## hp -0.07051 0.03943 -1.788 0.0939 . ## drat 1.18283 2.48348 0.476 0.6407 ## wt -4.52978 2.53875 -1.784 0.0946 . ## qsec 0.36784 0.93540 0.393 0.6997 ## vs1 1.93085 2.87126 0.672 0.5115 ## am1 1.21212 3.21355 0.377 0.7113 ## gear4 1.11435 3.79952 0.293 0.7733 ## gear5 2.52840 3.73636 0.677 0.5089 ## carb2 -0.97935 2.31797 -0.423 0.6787 ## carb3 2.99964 4.29355 0.699 0.4955 ## carb4 1.09142 4.44962 0.245 0.8096 ## carb6 4.47757 6.38406 0.701 0.4938 ## carb8 7.25041 8.36057 0.867 0.3995 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.833 on 15 degrees of freedom ## Multiple R-squared: 0.8931, Adjusted R-squared: 0.779 ## F-statistic: 7.83 on 16 and 15 DF, p-value: 0.000124
R bruker det første faktornivået som en basisgruppe. Du må sammenligne koeffisientene til den andre gruppen med basisgruppen.
Trinnvis lineær regresjon i R
Den siste delen av denne opplæringen omhandler trinnvis regresjon algoritme. Hensikten med denne algoritmen er å legge til og fjerne potensielle kandidater i modellene og beholde de som har en betydelig innvirkning på den avhengige variabelen. Denne algoritmen er meningsfull når datasettet inneholder en stor liste med prediktorer. Du trenger ikke å legge til og fjerne de uavhengige variablene manuelt. Den trinnvise regresjonen er bygget for å velge de beste kandidatene for å passe til modellen.
La oss se i aksjon hvordan det fungerer. Du bruker mtcars-datasettet med de kontinuerlige variablene kun for pedagogisk illustrasjon. Før du begynner å analysere, er det greit å etablere variasjoner mellom dataene med en korrelasjonsmatrise. GGally-biblioteket er en utvidelse av ggplot2.
Biblioteket inneholder ulike funksjoner for å vise oppsummerende statistikk som korrelasjon og distribusjon av alle variablene i en matrise. Vi vil bruke ggscatmat-funksjonen, men du kan referere til vignett for mer informasjon om GGally-biblioteket.
Den grunnleggende syntaksen for ggscatmat() er:
ggscatmat(df, columns = 1:ncol(df), corMethod = "pearson") arguments: -df: A matrix of continuous variables -columns: Pick up the columns to use in the function. By default, all columns are used -corMethod: Define the function to compute the correlation between variable. By default, the algorithm uses the Pearson formula
Du viser korrelasjonen for alle variablene dine og bestemmer hvilken som vil være de beste kandidatene for det første trinnet i den trinnvise regresjonen. Det er noen sterke korrelasjoner mellom variablene dine og den avhengige variabelen, mpg.
library(GGally) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) ggscatmat(df, columns = 1: ncol(df))
Utgang:
Trinnvis regresjon Trinnvis eksempel
Variablevalg er en viktig del for å passe til en modell. Den trinnvise regresjonen vil utføre søkeprosessen automatisk. For å estimere hvor mange mulige valg det er i datasettet, beregner du med k er antall prediktorer. Mengden av muligheter vokser seg større med antall uavhengige variabler. Det er derfor du må ha et automatisk søk.
Du må installere olsrr-pakken fra CRAN. Pakken er ennå ikke tilgjengelig i Anaconda. Derfor installerer du den direkte fra kommandolinjen:
install.packages("olsrr")
Du kan plotte alle undersettene av muligheter med tilpasningskriteriene (dvs. R-kvadrat, Justert R-kvadrat, Bayesianske kriterier). Modellen med de laveste AIC-kriteriene vil være den endelige modellen.
library(olsrr) model <- mpg~. fit <- lm(model, df) test <- ols_all_subset(fit) plot(test)
Kode Forklaring
- mpg ~.: Konstruer modellen for å estimere
- lm(modell, df): Kjør OLS-modellen
- ols_all_subset(tilpasning): Konstruer grafene med relevant statistisk informasjon
- plot (test): Tegn grafene
Utgang:
Lineære regresjonsmodeller bruker t-test å estimere den statistiske innvirkningen av en uavhengig variabel på den avhengige variabelen. Forskere satte den maksimale terskelen til 10 prosent, med lavere verdier indikerer en sterkere statistisk kobling. Strategien for den trinnvise regresjonen er konstruert rundt denne testen for å legge til og fjerne potensielle kandidater. Algoritmen fungerer som følger:
- Trinn 1: Regress hver prediktor på y separat. Nemlig, regress x_1 på y, x_2 på y til x_n. Lagre p-verdien og hold regressoren med en p-verdi lavere enn en definert terskel (0.1 som standard). Prediktorene med signifikans lavere enn terskelen vil bli lagt til den endelige modellen. Hvis ingen variabel har en p-verdi lavere enn inngangsterskelen, stopper algoritmen, og du har den endelige modellen med kun en konstant.
- Trinn 2: Bruk prediktoren med den laveste p-verdien og legg til én variabel separat. Du regresserer en konstant, den beste prediktoren for trinn én og en tredje variabel. Du legger til den trinnvise modellen, de nye prediktorene med en verdi lavere enn inngangsterskelen. Hvis ingen variabel har en p-verdi lavere enn 0.1, stopper algoritmen, og du har den endelige modellen med kun én prediktor. Du regresserer den trinnvise modellen for å sjekke betydningen av trinn 1 beste prediktorer. Hvis den er høyere enn fjerningsterskelen, beholder du den i den trinnvise modellen. Ellers utelukker du det.
- Trinn 3: Du replikerer trinn 2 på den nye beste trinnvise modellen. Algoritmen legger til prediktorer til den trinnvise modellen basert på inntastingsverdiene og ekskluderer prediktoren fra den trinnvise modellen hvis den ikke tilfredsstiller ekskluderingsterskelen.
- Algoritmen fortsetter til ingen variabel kan legges til eller ekskluderes.
Du kan utføre algoritmen med funksjonen ols_stepwise() fra olsrr-pakken.
ols_stepwise(fit, pent = 0.1, prem = 0.3, details = FALSE) arguments: -fit: Model to fit. Need to use `lm()`before to run `ols_stepwise() -pent: Threshold of the p-value used to enter a variable into the stepwise model. By default, 0.1 -prem: Threshold of the p-value used to exclude a variable into the stepwise model. By default, 0.3 -details: Print the details of each step
Før det viser vi deg trinnene til algoritmen. Nedenfor er en tabell med de avhengige og uavhengige variablene:
Avhengig variabel | Uavhengige variabler |
---|---|
mpg | disp |
hp | |
rotte | |
wt | |
qsec |
Start
Til å begynne med starter algoritmen med å kjøre modellen på hver uavhengig variabel separat. Tabellen viser p-verdien for hver modell.
## [[1]] ## (Intercept) disp ## 3.576586e-21 9.380327e-10 ## ## [[2]] ## (Intercept) hp ## 6.642736e-18 1.787835e-07 ## ## [[3]] ## (Intercept) drat ## 0.1796390847 0.0000177624 ## ## [[4]] ## (Intercept) wt ## 8.241799e-19 1.293959e-10 ## ## [[5] ## (Intercept) qsec ## 0.61385436 0.01708199
For å gå inn i modellen beholder algoritmen variabelen med den laveste p-verdien. Fra utgangen ovenfor er det wt
Trinn 1
I det første trinnet kjører algoritmen mpg på wt og de andre variablene uavhengig.
## [[1]] ## (Intercept) wt disp ## 4.910746e-16 7.430725e-03 6.361981e-02 ## ## [[2]] ## (Intercept) wt hp ## 2.565459e-20 1.119647e-06 1.451229e-03 ## ## [[3]] ## (Intercept) wt drat ## 2.737824e-04 1.589075e-06 3.308544e-01 ## ## [[4]] ## (Intercept) wt qsec ## 7.650466e-04 2.518948e-11 1.499883e-03
Hver variabel er en potensiell kandidat til å gå inn i den endelige modellen. Algoritmen beholder imidlertid bare variabelen med den lavere p-verdien. Det viser seg at hk har en litt lavere p-verdi enn qsec. Derfor går hp inn i den endelige modellen
Trinn 2
Algoritmen gjentar det første trinnet, men denne gangen med to uavhengige variabler i den endelige modellen.
## [[1]] ## (Intercept) wt hp disp ## 1.161936e-16 1.330991e-03 1.097103e-02 9.285070e-01 ## ## [[2]] ## (Intercept) wt hp drat ## 5.133678e-05 3.642961e-04 1.178415e-03 1.987554e-01 ## ## [[3]] ## (Intercept) wt hp qsec ## 2.784556e-03 3.217222e-06 2.441762e-01 2.546284e-01
Ingen av variablene som kom inn i den endelige modellen har en p-verdi som er tilstrekkelig lav. Algoritmen stopper her; vi har den endelige modellen:
## ## Call: ## lm(formula = mpg ~ wt + hp, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -3.941 -1.600 -0.182 1.050 5.854 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 37.22727 1.59879 23.285 < 2e-16 *** ## wt -3.87783 0.63273 -6.129 1.12e-06 *** ## hp -0.03177 0.00903 -3.519 0.00145 ** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 2.593 on 29 degrees of freedom ## Multiple R-squared: 0.8268, Adjusted R-squared: 0.8148 ## F-statistic: 69.21 on 2 and 29 DF, p-value: 9.109e-12
Du kan bruke funksjonen ols_stepwise() for å sammenligne resultatene.
stp_s <-ols_stepwise(fit, details=TRUE)
Utgang:
Algoritmen finner en løsning etter 2 trinn, og returnerer samme utgang som vi hadde tidligere.
På slutten kan du si at modellene er forklart av to variabler og en avskjæring. Mile per gallon er negativt korrelert med brutto hestekrefter og vekt
## You are selecting variables based on p value... ## 1 variable(s) added.... ## Variable Selection Procedure ## Dependent Variable: mpg ## ## Stepwise Selection: Step 1 ## ## Variable wt Entered ## ## Model Summary ## -------------------------------------------------------------- ## R 0.868 RMSE 3.046 ## R-Squared 0.753 Coef. Var 15.161 ## Adj. R-Squared 0.745 MSE 9.277 ## Pred R-Squared 0.709 MAE 2.341 ## -------------------------------------------------------------- ## RMSE: Root Mean Square Error ## MSE: Mean Square Error ## MAE: Mean Absolute Error ## ANOVA ## -------------------------------------------------------------------- ## Sum of ## Squares DF Mean Square F Sig. ## -------------------------------------------------------------------- ## Regression 847.725 1 847.725 91.375 0.0000 ## Residual 278.322 30 9.277 ## Total 1126.047 31 ## -------------------------------------------------------------------- ## ## Parameter Estimates ## ---------------------------------------------------------------------------------------- ## model Beta Std. Error Std. Beta t Sig lower upper ## ---------------------------------------------------------------------------------------- ## (Intercept) 37.285 1.878 19.858 0.000 33.450 41.120 ## wt -5.344 0.559 -0.868 -9.559 0.000 -6.486 -4.203 ## ---------------------------------------------------------------------------------------- ## 1 variable(s) added... ## Stepwise Selection: Step 2 ## ## Variable hp Entered ## ## Model Summary ## -------------------------------------------------------------- ## R 0.909 RMSE 2.593 ## R-Squared 0.827 Coef. Var 12.909 ## Adj. R-Squared 0.815 MSE 6.726 ## Pred R-Squared 0.781 MAE 1.901 ## -------------------------------------------------------------- ## RMSE: Root Mean Square Error ## MSE: Mean Square Error ## MAE: Mean Absolute Error ## ANOVA ## -------------------------------------------------------------------- ## Sum of ## Squares DF Mean Square F Sig. ## -------------------------------------------------------------------- ## Regression 930.999 2 465.500 69.211 0.0000 ## Residual 195.048 29 6.726 ## Total 1126.047 31 ## -------------------------------------------------------------------- ## ## Parameter Estimates ## ---------------------------------------------------------------------------------------- ## model Beta Std. Error Std. Beta t Sig lower upper ## ---------------------------------------------------------------------------------------- ## (Intercept) 37.227 1.599 23.285 0.000 33.957 40.497 ## wt -3.878 0.633 -0.630 -6.129 0.000 -5.172 -2.584 ## hp -0.032 0.009 -0.361 -3.519 0.001 -0.050 -0.013 ## ---------------------------------------------------------------------------------------- ## No more variables to be added or removed.
Maskinlæring
Maskinlæring er i ferd med å bli utbredt blant dataforskere og distribueres i hundrevis av produkter du bruker daglig. En av de første ML-søknadene var spamfilter.
Følgende er annen anvendelse av maskinlæring-
- Identifikasjon av uønskede spam-meldinger i e-post
- Segmentering av kundeatferd for målrettet annonsering
- Reduksjon av falske kredittkorttransaksjoner
- Optimalisering av energibruk i bolig- og kontorbygg
- Ansiktsgjenkjenning
Veiledet læring
In Veiledet læring, inkluderer treningsdataene du mater til algoritmen en etikett.
Klassifisering er trolig den mest brukte veiledede læringsteknikken. En av de første klassifiseringsoppgavene forskerne tok tak i var spamfilteret. Målet med læringen er å forutsi om en e-post er klassifisert som spam eller ham (god e-post). Maskinen kan, etter treningstrinnet, oppdage e-postklassen.
Regresjoner brukes ofte i maskinlæringsfeltet for å forutsi kontinuerlig verdi. Regresjonsoppgave kan forutsi verdien av en avhengig variabel basert på et sett med uavhengige variabler (også kalt prediktorer eller regressorer). For eksempel kan lineære regresjoner forutsi en aksjekurs, værmelding, salg og så videre.
Her er listen over noen grunnleggende overvåket læringsalgoritmer.
- Lineær regresjon
- Logistisk regresjon
- Nærmeste naboer
- Støtte Vector Machine (SVM)
- Beslutningstrær og Random Forest
- Nevrale nettverk
Uovervåket læring
In Uovervåket læring, er treningsdataene umerket. Systemet prøver å lære uten referanse. Nedenfor er en liste over læringsalgoritmer uten tilsyn.
- K-gjennomsnitt
- Hierarkisk Cluster Analyse
- Forventningsmaksimering
- Visualisering og dimensjonalitetsreduksjon
- Hovedkomponentanalyse
- Kjerne PCA
- Lokalt-lineær innebygging
Oppsummering
- Lineær regresjon svarer på et enkelt spørsmål: Kan du måle en nøyaktig sammenheng mellom én målvariabel og et sett med prediktorer?
- Ordinær minste kvadraters metode prøver å finne parameterne som minimerer summen av kvadratfeilene, det vil si den vertikale avstanden mellom de predikerte y-verdiene og de faktiske y-verdiene.
- Den sannsynlighetsmodellen som inkluderer mer enn én uavhengig variabel kalles multiple regresjonsmodeller.
- Hensikten med trinnvis lineær regresjonsalgoritme er å legge til og fjerne potensielle kandidater i modellene og beholde de som har en betydelig innvirkning på den avhengige variabelen.
- Variablevalg er en viktig del for å passe til en modell. Den trinnvise regresjonen utfører søkeprosessen automatisk.
Vanlig minste kvadraters regresjon kan oppsummeres i tabellen nedenfor:
Bibliotek | Målet | Funksjon | argumenter |
---|---|---|---|
basen | Beregn en lineær regresjon | lm() | formel, data |
basen | Oppsummer modellen | oppsummere() | passer |
basen | Trekk ut koeffisienter | lm()$koeffisient | |
basen | Trekk ut rester | lm()$rester | |
basen | Trekk ut tilpasset verdi | lm()$fitted.values | |
olsrr | Kjør trinnvis regresjon | ols_stepwise() | passform, pent = 0.1, prem = 0.3, detaljer = FALSE |
Merknader: Husk å transformere kategorisk variabel i faktor før for å passe til modellen.