R Stegvis och multipel linjär regression [Steg för steg exempel]
Enkel linjär regression i R
Linjär regression svarar på en enkel fråga: Kan du mäta ett exakt samband mellan en målvariabel och en uppsättning prediktorer?
Den enklaste probabilistiska modellen är den raka modellen:
var
- y = Beroende variabel
- x = Oberoende variabel
-
= slumpmässig felkomponent
-
= avlyssna
-
= Koefficient för x
Tänk på följande plot:
Ekvationen är är avlyssningen. Om x är lika med 0 kommer y att vara lika med skärningen, 4.77. är linjens lutning. Den talar om i vilken proportion y varierar när x varierar.
Att uppskatta de optimala värdena på och
, använder du en metod som heter Vanliga minsta kvadrater (OLS). Denna metod försöker hitta de parametrar som minimerar summan av kvadratfelen, det vill säga det vertikala avståndet mellan de förutsagda y-värdena och de faktiska y-värdena. Skillnaden är känd som felterm.
Innan du uppskattar modellen kan du avgöra om ett linjärt samband mellan y och x är rimligt genom att plotta ett spridningsdiagram.
Scatterplot
Vi kommer att använda ett mycket enkelt dataset för att förklara konceptet med enkel linjär regression. Vi kommer att importera de genomsnittliga höjderna och vikterna för amerikanska kvinnor. Datauppsättningen innehåller 15 observationer. Du vill mäta om höjder är positivt korrelerade med vikter.
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()
Produktion:
Spridningsdiagrammet antyder en generell tendens för y att öka när x ökar. I nästa steg kommer du att mäta med hur mycket ökningar för varje ytterligare .
Minsta kvadraters uppskattningar
I en enkel OLS-regression, beräkningen av och
är okomplicerad. Målet är inte att visa härledningen i denna handledning. Du kommer bara att skriva formeln.
Du vill uppskatta:
Målet med OLS-regressionen är att minimera följande ekvation:
var
är det faktiska värdet och
är det förutsagda värdet.
Lösningen för is
Observera att betyder medelvärdet av x
Lösningen för is
I R kan du använda funktionen cov() och var() för att uppskatta och du kan använda funktionen mean() för att uppskatta
beta <- cov(df$height, df$weight) / var (df$height) beta
Produktion:
##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height) alpha
Produktion:
## [1] -87.51667
Betakoefficienten innebär att för varje ytterligare höjd ökar vikten med 3.45.
Att uppskatta enkel linjär ekvation manuellt är inte idealiskt. R ger en lämplig funktion för att uppskatta dessa parametrar. Du kommer att se denna funktion inom kort. Dessförinnan kommer vi att introducera hur man för hand beräknar en enkel linjär regressionsmodell. På din resa som dataforskare kommer du knappt eller aldrig att uppskatta en enkel linjär modell. I de flesta situationer utförs regressionsuppgifter på många estimatorer.
Multipel linjär regression i R
Mer praktiska tillämpningar av regressionsanalys använder modeller som är mer komplexa än den enkla linjära modellen. Den probabilistiska modellen som innehåller mer än en oberoende variabel kallas flera regressionsmodeller. Den allmänna formen för denna modell är:
I matrisnotation kan du skriva om modellen:
Den beroende variabeln y är nu en funktion av k oberoende variabler. Värdet av koefficienten bestämmer bidraget från den oberoende variabeln
och
.
Vi presenterar kort antagandet vi gjorde om det slumpmässiga felet av OLS:
- Medelvärde lika med 0
- Varians lika med
- Normal distribution
- Slumpmässiga fel är oberoende (i en probabilistisk mening)
Du måste lösa för , vektorn av regressionskoefficienter som minimerar summan av de kvadratiska felen mellan de förutsagda och faktiska y-värdena.
Lösningen i sluten form är:
med:
- indikerar transponering av matrisen X
indikerar inverterbar matris
Vi använder mtcars dataset. Du är redan bekant med datamängden. Vårt mål är att förutsäga milen per gallon över en uppsättning funktioner.
Kontinuerliga variabler i R
För närvarande kommer du bara att använda de kontinuerliga variablerna och lägga undan kategoriska funktioner. Variabeln am är en binär variabel som tar värdet 1 om växellådan är manuell och 0 för automatiska bilar; vs är också en binär variabel.
library(dplyr) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) glimpse(df)
Produktion:
## 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 använda lm()-funktionen för att beräkna parametrarna. Den grundläggande syntaxen för denna funktion är:
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
Kom ihåg att en ekvation har följande form
i R
- Symbolen = ersätts med ~
- Varje x ersätts av variabelnamnet
- Om du vill släppa konstanten, lägg till -1 i slutet av formeln
Exempelvis:
Du vill uppskatta vikten av individer baserat på deras längd och inkomst. Ekvationen är
Ekvationen i R skrivs så här:
y ~ X1+ X2+…+Xn # Med skärning
Så för vårt exempel:
- Väg ~ höjd + intäkter
Ditt mål är att uppskatta milen per gallon baserat på en uppsättning variabler. Ekvationen att uppskatta är:
Du kommer att uppskatta din första linjära regression och lagra resultatet i passningsobjektet.
model <- mpg~.disp + hp + drat + wt fit <- lm(model, df) fit
Kodförklaring
- modell <- mpg ~. disp + hp + drat+ wt: Lagra modellen för att uppskatta
- lm(modell, df): Uppskatta modellen med dataramen 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
Utdata ger inte tillräckligt med information om kvaliteten på passformen. Du kan komma åt fler detaljer såsom betydelsen av koefficienterna, graden av frihet och formen på residualerna med summary()-funktionen.
summary(fit)
Produktion:
## 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
Slutledning från tabellen ovan
- Tabellen ovan bevisar att det finns ett starkt negativt samband mellan vikt och körsträcka och positivt samband med drat.
- Endast variabeln wt har en statistisk inverkan på mpg. Kom ihåg att för att testa en hypotes i statistik använder vi:
- H0: Ingen statistisk påverkan
- H3: Prediktorn har en meningsfull inverkan på y
- Om p-värdet är lägre än 0.05 indikerar det att variabeln är statistiskt signifikant
- Justerad R-kvadrat: Varians förklaras av modellen. I din modell förklarade modellen 82 procent av variansen av y. R i kvadrat är alltid mellan 0 och 1. Ju högre desto bättre
Du kan köra ANOVA test för att uppskatta effekten av varje funktion på varianserna med funktionen anova().
anova(fit)
Produktion:
## 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
Ett mer konventionellt sätt att uppskatta modellens prestanda är att visa restprodukten mot olika mått.
Du kan använda funktionen plot() för att visa fyra grafer:
– Residualer vs Fitted värden
– Normal QQ-plot: Teoretisk kvartil vs standardiserade residualer
– Skala-placering: Inpassade värden vs kvadratrötter av de standardiserade residualerna
– Residualer vs Hävstång: Hävstång vs Standardiserade residualer
Du lägger till koden par(mfrow=c(2,2)) före plot(fit). Om du inte lägger till denna kodrad uppmanar R dig att trycka på enter-kommandot för att visa nästa graf.
par(mfrow=(2,2))
Kodförklaring
- (mfrow=c(2,2)): returnera ett fönster med de fyra graferna sida vid sida.
- De första 2 lägger till antalet rader
- Den andra 2 lägger till antalet kolumner.
- Om du skriver (mfrow=c(3,2)): skapar du ett fönster med 3 rader och 2 kolumner
plot(fit)
Produktion:
Formeln lm() returnerar en lista som innehåller mycket användbar information. Du kan komma åt dem med passningsobjektet du har skapat, följt av $-tecknet och informationen du vill extrahera.
– koefficienter: "fit$koefficienter".
– residualer: `fit$residuals`
– anpassat värde: `fit$fitted.values`
Faktorer regression i R
I den senaste modelluppskattningen regresserar du mpg endast på kontinuerliga variabler. Det är enkelt att lägga till faktorvariabler till modellen. Du lägger till variabeln am till din modell. Det är viktigt att vara säker på att variabeln är en faktornivå och inte kontinuerlig.
df <- mtcars % > % mutate(cyl = factor(cyl), vs = factor(vs), am = factor(am), gear = factor(gear), carb = factor(carb)) summary(lm(model, df))
Produktion:
## ## 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 använder den första faktornivån som en basgrupp. Du måste jämföra koefficienterna för den andra gruppen mot basgruppen.
Stegvis linjär regression i R
Den sista delen av denna handledning handlar om stegvis regression algoritm. Syftet med denna algoritm är att lägga till och ta bort potentiella kandidater i modellerna och behålla de som har en betydande inverkan på den beroende variabeln. Denna algoritm är meningsfull när datasetet innehåller en stor lista med prediktorer. Du behöver inte lägga till och ta bort de oberoende variablerna manuellt. Den stegvisa regressionen är byggd för att välja ut de bästa kandidaterna för att passa modellen.
Låt oss se i praktiken hur det fungerar. Du använder mtcars dataset med de kontinuerliga variablerna endast för pedagogisk illustration. Innan du börjar analysera är det bra att fastställa variationer mellan data med en korrelationsmatris. GGally-biblioteket är en förlängning av ggplot2.
Biblioteket innehåller olika funktioner för att visa sammanfattande statistik såsom korrelation och fördelning av alla variabler i en matris. Vi kommer att använda ggscatmat-funktionen, men du kan referera till karikatyrerna för mer information om GGally-biblioteket.
Den grundläggande syntaxen för ggscatmat() är:
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 visar korrelationen för alla dina variabler och bestämmer vilken som kommer att vara de bästa kandidaterna för det första steget av den stegvisa regressionen. Det finns några starka samband mellan dina variabler och den beroende variabeln mpg.
library(GGally) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) ggscatmat(df, columns = 1: ncol(df))
Produktion:
Stegvis regression Steg för steg Exempel
Variabelval är en viktig del för att passa en modell. Den stegvisa regressionen kommer att utföra sökningsprocessen automatiskt. För att uppskatta hur många möjliga val det finns i datasetet, beräknar du med k är antalet prediktorer. Mängden möjligheter växer sig större med antalet oberoende variabler. Det är därför du behöver ha en automatisk sökning.
Du måste installera olsrr-paketet från CRAN. Paketet är ännu inte tillgängligt i Anaconda. Därför installerar du det direkt från kommandoraden:
install.packages("olsrr")
Du kan plotta alla delmängder av möjligheter med anpassningskriterierna (dvs. R-kvadrat, Justerat R-kvadrat, Bayesianska kriterier). Modellen med de lägsta AIC-kriterierna blir den slutliga modellen.
library(olsrr) model <- mpg~. fit <- lm(model, df) test <- ols_all_subset(fit) plot(test)
Kodförklaring
- mpg ~.: Konstruera modellen för att uppskatta
- lm(modell, df): Kör OLS-modellen
- ols_all_subset(passning): Konstruera graferna med relevant statistisk information
- plot(test): Rita graferna
Produktion:
Linjära regressionsmodeller använder t-test att uppskatta den statistiska inverkan av en oberoende variabel på den beroende variabeln. Forskare satte den maximala tröskeln till 10 procent, med lägre värden indikerar en starkare statistisk koppling. Strategin för den stegvisa regressionen är konstruerad kring detta test för att lägga till och ta bort potentiella kandidater. Algoritmen fungerar enligt följande:
- steg 1: Regressera varje prediktor på y separat. Nämligen, regress x_1 på y, x_2 på y till x_n. Förvara p-värde och håll regressorn med ett p-värde lägre än ett definierat tröskelvärde (0.1 som standard). Prediktorerna med en signifikans lägre än tröskeln kommer att läggas till den slutliga modellen. Om ingen variabel har ett p-värde som är lägre än ingångströskeln, så stannar algoritmen, och du har din slutliga modell med endast en konstant.
- steg 2: Använd prediktorn med det lägsta p-värdet och lägg till en variabel separat. Du regresserar en konstant, den bästa prediktorn för steg ett och en tredje variabel. Till den stegvisa modellen lägger du till de nya prediktorerna med ett värde som är lägre än ingångströskeln. Om ingen variabel har ett p-värde lägre än 0.1, så stannar algoritmen och du har din slutliga modell med endast en prediktor. Du regresserar den stegvisa modellen för att kontrollera betydelsen av de bästa prediktorerna i steg 1. Om den är högre än borttagningströskeln behåller du den i den stegvisa modellen. Annars utesluter du det.
- steg 3: Du replikerar steg 2 på den nya bästa stegvisa modellen. Algoritmen lägger till prediktorer till den stegvisa modellen baserat på inmatningsvärdena och exkluderar prediktor från den stegvisa modellen om den inte uppfyller exkluderingströskeln.
- Algoritmen fortsätter tills ingen variabel kan läggas till eller exkluderas.
Du kan utföra algoritmen med funktionen ols_stepwise() från olsrr-paketet.
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
Innan det visar vi dig stegen i algoritmen. Nedan finns en tabell med de beroende och oberoende variablerna:
Beroende variabel | Oberoende variabler |
---|---|
mpg | disp |
hp | |
råtta | |
wt | |
qsec |
Start
Till att börja med börjar algoritmen med att köra modellen på varje oberoende variabel separat. Tabellen visar p-värdet för varje 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
För att komma in i modellen behåller algoritmen variabeln med det lägsta p-värdet. Från ovanstående utdata är det wt
steg 1
I det första steget kör algoritmen mpg på wt och de andra variablerna oberoende.
## [[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
Varje variabel är en potentiell kandidat för att komma in i den slutliga modellen. Algoritmen behåller dock endast variabeln med det lägre p-värdet. Det visar sig att hp har ett något lägre p-värde än qsec. Därför går hp in i den slutliga modellen
steg 2
Algoritmen upprepar det första steget men denna gång med två oberoende variabler i den slutliga 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 variablerna som kom in i den slutliga modellen har ett tillräckligt lågt p-värde. Algoritmen stannar här; vi har den slutliga 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 använda funktionen ols_stepwise() för att jämföra resultaten.
stp_s <-ols_stepwise(fit, details=TRUE)
Produktion:
Algoritmen hittar en lösning efter 2 steg och returnerar samma utdata som vi hade tidigare.
I slutet kan du säga att modellerna förklaras av två variabler och en intercept. Mile per gallon är negativt korrelerad med brutto hästkrafter och vikt
## 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.
Maskininlärning
Maskininlärning håller på att bli utbredd bland dataforskare och används i hundratals produkter du använder dagligen. En av de första ML-ansökningarna var spam filter.
Följande är andra tillämpningar av Machine Learning-
- Identifiering av oönskade spammeddelanden i e-post
- Segmentering av kundbeteende för riktad annonsering
- Minskning av bedrägliga kreditkortstransaktioner
- Optimering av energianvändning i hem- och kontorsbyggnader
- Ansiktsigenkänning
Övervakat lärande
In Övervakat lärande, innehåller träningsdatan du matar till algoritmen en etikett.
Klassificering är förmodligen den mest använda tekniken för övervakad inlärning. En av de första klassificeringsuppgifter som forskare tog sig an var spamfiltret. Målet med inlärningen är att förutsäga om ett e-postmeddelande klassificeras som spam eller skinka (bra e-post). Maskinen kan efter träningssteget upptäcka e-postklassen.
regressioner används ofta inom maskininlärning för att förutsäga kontinuerligt värde. Regressionsuppgift kan förutsäga värdet av en beroende variabel baserat på en uppsättning av oberoende variabler (även kallade prediktorer eller regressorer). Till exempel kan linjära regressioner förutsäga en aktiekurs, väderprognos, försäljning och så vidare.
Här är listan över några grundläggande övervakade inlärningsalgoritmer.
- Linjär regression
- Logistisk återgång
- Närmaste grannar
- Support Vector Machine (SVM)
- Beslutsträd och Random Forest
- Neurala nätverk
Oövervakat lärande
In Oövervakat lärande, är träningsdata omärkta. Systemet försöker lära sig utan referens. Nedan finns en lista över oövervakade inlärningsalgoritmer.
- K-medelvärde
- Hierarkisk Cluster Analys
- Förväntningsmaximering
- Visualisering och dimensionsreduktion
- Huvudkomponentanalys
- Kärna PCA
- Lokalt-linjär inbäddning
Sammanfattning
- Linjär regression svarar på en enkel fråga: Kan du mäta ett exakt samband mellan en målvariabel och en uppsättning prediktorer?
- Den vanliga minsta kvadratmetoden försöker hitta de parametrar som minimerar summan av kvadratfelen, det vill säga det vertikala avståndet mellan de förutsagda y-värdena och de faktiska y-värdena.
- Den sannolikhetsmodell som innehåller mer än en oberoende variabel kallas multipla regressionsmodeller.
- Syftet med Stepwise Linear Regression-algoritmen är att lägga till och ta bort potentiella kandidater i modellerna och behålla de som har en betydande inverkan på den beroende variabeln.
- Variabelval är en viktig del för att passa en modell. Den stegvisa regressionen utför sökningsprocessen automatiskt.
Vanlig minsta kvadratregression kan sammanfattas i tabellen nedan:
Bibliotek | Mål | Funktion | Argument |
---|---|---|---|
bas | Beräkna en linjär regression | lm() | formel, data |
bas | Sammanfatta modellen | summera() | passa |
bas | Extrahera koefficienter | lm()$koefficient | |
bas | Extrahera rester | lm()$rester | |
bas | Ta ut inpassat värde | lm()$fitted.values | |
olsrr | Kör stegvis regression | ols_stepwise() | passform, pent = 0.1, prem = 0.3, detaljer = FALSK |
Anmärkningar: Kom ihåg att transformera kategorisk variabel i faktor innan för att passa modellen.