R Trinvis og multipel lineær regression [trin for trin eksempel]
Simpel lineær regression i R
Lineær regression besvarer et simpelt spørgsmål: Kan du måle en nøjagtig sammenhæng mellem en målvariabel og et sæt forudsigere?
Den enkleste probabilistiske model er den lige linjemodel:
hvor
- y = Afhængig variabel
- x = Uafhængig variabel
- = tilfældig fejlkomponent
- = opsnappe
- = Koefficient af x
Overvej følgende plot:
Ligningen er er opskæringen. Hvis x er lig med 0, vil y være lig med skæringspunktet, 4.77. er linjens hældning. Den fortæller i hvilken proportion y varierer, når x varierer.
At estimere de optimale værdier af og , bruger du en metode kaldet Almindelige mindste kvadrater (OLS). Denne metode forsøger at finde de parametre, der minimerer summen af de kvadrerede fejl, det vil sige den lodrette afstand mellem de forudsagte y-værdier og de faktiske y-værdier. Forskellen er kendt som fejlterm.
Før du estimerer modellen, kan du afgøre, om en lineær sammenhæng mellem y og x er plausibel ved at plotte et spredningsdiagram.
Scatterplot
Vi vil bruge et meget simpelt datasæt til at forklare begrebet simpel lineær regression. Vi importerer de gennemsnitlige højder og vægte for amerikanske kvinder. Datasættet indeholder 15 observationer. Du vil måle, om højder er positivt korreleret med vægte.
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()
Output:
Spredningsplottet antyder en generel tendens til, at y stiger, når x øges. I næste trin vil du måle efter, hvor meget stigninger for hver yderligere .
Mindste kvadraters skøn
I en simpel OLS-regression kan beregningen af og er ligetil. Målet er ikke at vise afledningen i denne tutorial. Du skriver kun formlen.
Du vil anslå:
Målet med OLS-regressionen er at minimere følgende ligning:
hvor
er den faktiske værdi og er den forudsagte værdi.
Løsningen til is
Bemærk, at betyder gennemsnitsværdien af x
Løsningen til is
I R kan du bruge funktionen cov() og var() til at estimere og du kan bruge funktionen mean() til at estimere
beta <- cov(df$height, df$weight) / var (df$height) beta
Output:
##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height) alpha
Output:
## [1] -87.51667
Beta-koefficienten indebærer, at for hver ekstra højde øges vægten med 3.45.
Det er ikke ideelt at estimere simpel lineær ligning manuelt. R giver en passende funktion til at estimere disse parametre. Du vil snart se denne funktion. Inden da vil vi introducere, hvordan man håndberegner en simpel lineær regressionsmodel. På din rejse som dataforsker vil du knap eller aldrig estimere en simpel lineær model. I de fleste situationer udføres regressionsopgaver på mange estimatorer.
Multipel lineær regression i R
Mere praktiske anvendelser af regressionsanalyse anvender modeller, der er mere komplekse end den simple lineære model. Den probabilistiske model, der omfatter mere end én uafhængig variabel kaldes flere regressionsmodeller. Den generelle form for denne model er:
I matrixnotation kan du omskrive modellen:
Den afhængige variabel y er nu en funktion af k uafhængige variable. Værdien af koefficienten bestemmer bidraget fra den uafhængige variabel og .
Vi introducerer kort den antagelse, vi lavede om den tilfældige fejl af OLS:
- Gennemsnit lig med 0
- Varians lig med
- Normal fordeling
- Tilfældige fejl er uafhængige (i en sandsynlig forstand)
Du skal løse for , vektoren af regressionskoefficienter, der minimerer summen af de kvadrerede fejl mellem de forudsagte og faktiske y-værdier.
Løsningen i lukket form er:
med:
- angiver omsætte af matrixen X
- angiver inverterbar matrix
Vi bruger mtcars-datasættet. Du er allerede bekendt med datasættet. Vores mål er at forudsige mile per gallon over et sæt funktioner.
Kontinuerlige variable i R
Indtil videre vil du kun bruge de kontinuerlige variable og lægge kategoriske træk til side. Variablen am er en binær variabel, der tager værdien 1, hvis gearkassen er manuel, 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)
Output:
## 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 bruge lm()-funktionen til at beregne parametrene. Den grundlæggende syntaks for denne funktion 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 en ligning er af følgende form
i R
- Symbolet = erstattes af ~
- Hvert x erstattes af variabelnavnet
- Hvis du vil droppe konstanten, skal du tilføje -1 i slutningen af formlen
Eksempel:
Du ønsker at estimere vægten af individer baseret på deres højde og indtjening. Ligningen er
Ligningen i R er skrevet som følger:
y ~ X1+ X2+…+Xn # Med skæring
Så for vores eksempel:
- Vej ~ højde + omsætning
Dit mål er at estimere mile per gallon baseret på et sæt variabler. Ligningen der skal estimeres er:
Du vil estimere din første lineære regression og gemme resultatet i tilpasningsobjektet.
model <- mpg~.disp + hp + drat + wt fit <- lm(model, df) fit
Kode Forklaring
- model <- mpg ~. disp + hp + drat+ wt: Gem modellen for at estimere
- lm(model, 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
Outputtet giver ikke nok information om kvaliteten af pasformen. Du kan få adgang til flere detaljer såsom betydningen af koefficienterne, graden af frihed og formen af residualerne med summary()-funktionen.
summary(fit)
Output:
## 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
Konklusioner fra ovenstående tabeloutput
- Ovenstående tabel beviser, at der er en stærk negativ sammenhæng mellem vægt og kilometertal og positiv sammenhæng med drat.
- Kun variablen wt har en statistisk indvirkning på mpg. Husk, at for at teste en hypotese i statistik, bruger vi:
- H0: Ingen statistisk effekt
- H3: Prædiktoren har en meningsfuld indvirkning på y
- Hvis p-værdien er lavere end 0.05, indikerer det, at variablen er statistisk signifikant
- Justeret R-kvadrat: Varians forklaret af modellen. I din model forklarede modellen 82 procent af variansen af y. R i anden kvadrat er altid mellem 0 og 1. Jo højere jo bedre
Du kan køre ANOVA test for at estimere effekten af hver funktion på varianserne med funktionen anova().
anova(fit)
Output:
## 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 mere konventionel måde at estimere modellens ydeevne på er at vise restproduktet mod forskellige mål.
Du kan bruge plot()-funktionen til at vise fire grafer:
– Residualer vs. tilpassede værdier
– Normal QQ-plot: Teoretisk kvartil vs standardiserede residualer
– Skala-placering: Tilpassede værdier vs. kvadratrødder af de standardiserede residualer
– Residualer vs Gearing: Gearing vs Standardiserede residualer
Du tilføjer koden par(mfrow=c(2,2)) før plot(fit). Hvis du ikke tilføjer denne kodelinje, beder R dig trykke på enter-kommandoen for at få vist den næste graf.
par(mfrow=(2,2))
Kode Forklaring
- (mfrow=c(2,2)): returner et vindue med de fire grafer side om side.
- De første 2 tilføjer antallet af rækker
- Den anden 2 tilføjer antallet af kolonner.
- Hvis du skriver (mfrow=c(3,2)): vil du oprette et 3 rækker 2 kolonner vindue
plot(fit)
Output:
Formlen lm() returnerer en liste, der indeholder en masse nyttig information. Du kan få adgang til dem med det pasobjekt, du har oprettet, efterfulgt af $-tegnet og de oplysninger, du vil udtrække.
– koefficienter: `fit$koefficienter`
– residualer: `fit$residuals`
– tilpasset værdi: `fit$fitted.values`
Faktorer regression i R
I den sidste modelestimering regresserer du kun mpg på kontinuerte variabler. Det er ligetil at tilføje faktorvariable til modellen. Du tilføjer variablen am til din model. Det er vigtigt at være sikker på, at variablen er et faktorniveau og ikke kontinuert.
df <- mtcars % > % mutate(cyl = factor(cyl), vs = factor(vs), am = factor(am), gear = factor(gear), carb = factor(carb)) summary(lm(model, df))
Output:
## ## 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 bruger det første faktorniveau som en basisgruppe. Du skal sammenligne koefficienterne for den anden gruppe med basisgruppen.
Trinvis lineær regression i R
Den sidste del af denne tutorial omhandler trinvis regression algoritme. Formålet med denne algoritme er at tilføje og fjerne potentielle kandidater i modellerne og beholde dem, der har en væsentlig indflydelse på den afhængige variabel. Denne algoritme er meningsfuld, når datasættet indeholder en stor liste af prædiktorer. Du behøver ikke manuelt at tilføje og fjerne de uafhængige variabler. Den trinvise regression er bygget til at vælge de bedste kandidater til at passe til modellen.
Lad os se i aktion, hvordan det virker. Du bruger kun mtcars-datasættet med de kontinuerlige variable til pædagogisk illustration. Før du begynder at analysere, er det godt at etablere variationer mellem dataene med en korrelationsmatrix. GGally-biblioteket er en udvidelse af ggplot2.
Biblioteket indeholder forskellige funktioner til at vise opsummerende statistik såsom korrelation og fordeling af alle variablerne i en matrix. Vi vil bruge ggscatmat-funktionen, men du kan henvise til tegnefilm for mere information om GGally-biblioteket.
Den grundlæggende syntaks 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 korrelationen for alle dine variable og beslutter, hvilken der vil være den bedste kandidat til det første trin af den trinvise regression. Der er nogle stærke sammenhænge mellem dine variabler og den afhængige variabel, mpg.
library(GGally) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) ggscatmat(df, columns = 1: ncol(df))
Output:
Trinvis regression Trin for trin eksempel
Valg af variabler er en vigtig del for at passe til en model. Den trinvise regression vil udføre søgeprocessen automatisk. For at estimere, hvor mange mulige valg der er i datasættet, beregner du med k er antallet af prædiktorer. Mængden af muligheder vokser sig større med antallet af uafhængige variable. Derfor skal du have en automatisk søgning.
Du skal installere olsrr-pakken fra CRAN. Pakken er endnu ikke tilgængelig i Anaconda. Derfor installerer du det direkte fra kommandolinjen:
install.packages("olsrr")
Du kan plotte alle undersæt af muligheder med tilpasningskriterierne (dvs. R-kvadrat, justeret R-kvadrat, Bayesianske kriterier). Modellen med de laveste AIC-kriterier vil være den endelige model.
library(olsrr) model <- mpg~. fit <- lm(model, df) test <- ols_all_subset(fit) plot(test)
Kode Forklaring
- mpg ~.: Konstruer modellen til at estimere
- lm(model, df): Kør OLS-modellen
- ols_all_subset(tilpasning): Konstruer graferne med de relevante statistiske oplysninger
- plot (test): Tegn graferne
Output:
Lineære regressionsmodeller bruger t-test at estimere den statistiske indvirkning af en uafhængig variabel på den afhængige variabel. Forskere sætter den maksimale tærskel til 10 procent, med lavere værdier indikerer en stærkere statistisk sammenhæng. Strategien for den trinvise regression er konstrueret omkring denne test for at tilføje og fjerne potentielle kandidater. Algoritmen fungerer som følger:
- Trin 1: Regresser hver prædiktor på y separat. Nemlig regress x_1 på y, x_2 på y til x_n. Opbevar p-værdi og hold regressoren med en p-værdi lavere end en defineret tærskel (0.1 som standard). Prædiktorerne med en signifikans lavere end tærsklen vil blive tilføjet den endelige model. Hvis ingen variabel har en p-værdi lavere end indtastningstærsklen, stopper algoritmen, og du har din endelige model med kun en konstant.
- Trin 2: Brug prædiktoren med den laveste p-værdi og tilføjer separat én variabel. Du regresserer en konstant, den bedste prædiktor for trin et og en tredje variabel. Du tilføjer til den trinvise model de nye prædiktorer med en værdi lavere end indtastningstærsklen. Hvis ingen variabel har en p-værdi lavere end 0.1, så stopper algoritmen, og du har din endelige model med kun én prædiktor. Du regresserer den trinvise model for at kontrollere betydningen af trin 1 bedste prædiktorer. Hvis den er højere end udtagningstærsklen, beholder du den i den trinvise model. Ellers udelukker du det.
- Trin 3: Du replikerer trin 2 på den nye bedste trinvise model. Algoritmen tilføjer prædiktorer til den trinvise model baseret på de indtastede værdier og udelukker prædiktor fra den trinvise model, hvis den ikke opfylder ekskluderingstærsklen.
- Algoritmen fortsætter, indtil ingen variabel kan tilføjes eller udelukkes.
Du kan udføre algoritmen med funktionen 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 dig trinene i algoritmen. Nedenfor er en tabel med de afhængige og uafhængige variable:
Afhængig variabel | Uafhængige variabler |
---|---|
mpg | disp |
hp | |
rotte | |
wt | |
qsec |
Starten
Til at begynde med starter algoritmen med at køre modellen på hver uafhængig variabel separat. Tabellen viser p-værdien for hver model.
## [[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 at komme ind i modellen beholder algoritmen variablen med den laveste p-værdi. Fra ovenstående output er det wt
Trin 1
I det første trin kører algoritmen mpg på wt og de andre variable uafhængigt.
## [[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 potentiel kandidat til at indgå i den endelige model. Algoritmen beholder dog kun variablen med den lavere p-værdi. Det viser sig, at hp har en lidt lavere p-værdi end qsec. Derfor går hp ind i den endelige model
Trin 2
Algoritmen gentager det første trin, men denne gang med to uafhængige variable i den endelige model.
## [[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 af de variable, der kom ind i den endelige model, har en tilstrækkelig lav p-værdi. Algoritmen stopper her; vi har den endelige model:
## ## 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 bruge funktionen ols_stepwise() til at sammenligne resultaterne.
stp_s <-ols_stepwise(fit, details=TRUE)
Output:
Algoritmen finder en løsning efter 2 trin, og returnerer det samme output, som vi havde før.
I slutningen kan du sige, at modellerne er forklaret af to variable og et skæringspunkt. Mile per gallon er negativt korreleret med brutto hestekræfter og vægt
## 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.
Maskinelæring
Maskinelæring er ved at blive udbredt blandt dataforskere og er implementeret i hundredvis af produkter, du bruger dagligt. En af de første ML ansøgninger var spamfilter.
Følgende er andre anvendelser af Machine Learning-
- Identifikation af uønskede spam-beskeder i e-mail
- Segmentering af kundeadfærd til målrettet annoncering
- Reduktion af svigagtige kreditkorttransaktioner
- Optimering af energiforbrug i bolig- og kontorbygninger
- Ansigtsgenkendelse
Overvåget læring
In Overvåget læring, indeholder de træningsdata, du sender til algoritmen, en etiket.
Klassifikation er nok den mest anvendte superviserede læringsteknik. En af de første klassificeringsopgaver, forskere tog fat på, var spamfilteret. Målet med læringen er at forudsige, om en e-mail er klassificeret som spam eller ham (god e-mail). Maskinen kan efter træningstrinnet registrere klassen af e-mail.
regressioner bruges almindeligvis i maskinlæringsområdet til at forudsige kontinuerlig værdi. Regressionsopgave kan forudsige værdien af en afhængig variabel baseret på et sæt af uafhængige variabler (også kaldet prædiktorer eller regressorer). For eksempel kan lineære regressioner forudsige en aktiekurs, vejrudsigt, salg og så videre.
Her er listen over nogle grundlæggende overvågede læringsalgoritmer.
- Lineær regression
- Logistisk regression
- Nærmeste naboer
- Support Vector Machine (SVM)
- Beslutningstræer og Random Forest
- Neurale netværk
Uovervåget læring
In Uovervåget læring, er træningsdataene umærkede. Systemet forsøger at lære uden reference. Nedenfor er en liste over uovervågede læringsalgoritmer.
- K-middel
- Hierarkisk Cluster Analyse
- Forventningsmaksimering
- Visualisering og dimensionsreduktion
- Hovedkomponentanalyse
- Kernel PCA
- Lokalt-lineær indlejring
Resumé
- Lineær regression besvarer et simpelt spørgsmål: Kan du måle en nøjagtig sammenhæng mellem en målvariabel og et sæt forudsigere?
- Den almindelige mindste kvadraters metode forsøger at finde de parametre, der minimerer summen af de kvadrerede fejl, det vil sige den lodrette afstand mellem de forudsagte y-værdier og de faktiske y-værdier.
- Den probabilistiske model, der omfatter mere end én uafhængig variabel, kaldes multiple regressionsmodeller.
- Formålet med Stepwise Linear Regression-algoritmen er at tilføje og fjerne potentielle kandidater i modellerne og beholde dem, der har en signifikant indflydelse på den afhængige variabel.
- Valg af variabler er en vigtig del for at passe til en model. Den trinvise regression udfører søgeprocessen automatisk.
Almindelig mindste kvadraters regression kan opsummeres i tabellen nedenfor:
Bibliotek | Objektiv | Funktion | argumenter |
---|---|---|---|
bund | Beregn en lineær regression | lm() | formel, data |
bund | Opsummer modellen | sammenfatte() | passer |
bund | Udtræk koefficienter | lm()$koefficient | |
bund | Udtræk rester | lm()$rester | |
bund | Udtræk tilpasset værdi | lm()$fitted.values | |
olsrr | Kør trinvis regression | ols_stepwise() | fit, pent = 0.1, prem = 0.3, detaljer = FALSK |
Bemærk: Husk at transformere kategorisk variabel i faktor før for at passe til modellen.