R Постепенна и множествена линейна регресия [Пример стъпка по стъпка]
Проста линейна регресия в R
Линейната регресия отговаря на прост въпрос: Можете ли да измерите точна връзка между една целева променлива и набор от предиктори?
Най-простият вероятностен модел е моделът с права линия:
където
- y = Зависима променлива
- x = независима променлива
-
= случайна грешка компонент
-
= прихващане
-
= Коефициент на x
Помислете за следния сюжет:
Уравнението е е прихващането. Ако x е равно на 0, y ще бъде равно на пресечната точка, 4.77. е наклонът на линията. Той показва в каква пропорция варира y, когато x варира.
За оценка на оптималните стойности на намлява
, използвате метод, наречен Обикновени най-малки квадрати (OLS). Този метод се опитва да намери параметрите, които минимизират сумата от грешките на квадрат, което е вертикалното разстояние между прогнозираните стойности на y и действителните стойности на y. Разликата е известна като термин за грешка.
Преди да оцените модела, можете да определите дали линейната връзка между y и x е правдоподобна, като начертаете диаграма на разсейване.
Точкова диаграма
Ще използваме много прост набор от данни, за да обясним концепцията за проста линейна регресия. Ще импортираме средните ръстове и тегло за американските жени. Наборът от данни съдържа 15 наблюдения. Искате да измерите дали височините са в положителна корелация с теглата.
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()
Изход:
Диаграмата на разсейване предполага обща тенденция y да се увеличава с нарастването на x. В следващата стъпка ще измерите с колко се увеличава за всеки допълнителен .
Оценки на най-малките квадрати
При проста OLS регресия, изчислението на намлява
е ясна. Целта не е да се покаже извеждането в този урок. Ще напишете само формулата.
Искате да оцените:
Целта на OLS регресията е да минимизира следното уравнение:
където
е действителната стойност и
е предвидената стойност.
Решението за is
Имайте предвид, че означава средната стойност на x
Решението за is
В R можете да използвате функцията cov() и var() за оценка и можете да използвате функцията mean() за оценка
beta <- cov(df$height, df$weight) / var (df$height) beta
Изход:
##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height) alpha
Изход:
## [1] -87.51667
Бета коефициентът предполага, че за всяка допълнителна височина теглото се увеличава с 3.45.
Ръчното оценяване на просто линейно уравнение не е идеално. R осигурява подходяща функция за оценка на тези параметри. Ще видите тази функция скоро. Преди това ще представим как да изчисляваме на ръка прост модел на линейна регресия. Във вашето пътуване на учен по данни едва или никога няма да оцените прост линеен модел. В повечето ситуации задачите за регресия се изпълняват с много оценители.
Множествена линейна регресия в R
По-практичните приложения на регресионния анализ използват модели, които са по-сложни от простия модел с права линия. Вероятностният модел, който включва повече от една независима променлива, се нарича множествени регресионни модели. Общата форма на този модел е:
В матрична нотация можете да пренапишете модела:
Зависимата променлива y сега е функция на k независими променливи. Стойността на коеф определя приноса на независимата променлива
намлява
.
Представяме накратко предположението, което направихме за случайната грешка на OLS:
- Средно равно на 0
- Дисперсия, равна на
- Нормална дистрибуция
- Случайните грешки са независими (във вероятностен смисъл)
Трябва да решите за , векторът на регресионните коефициенти, които минимизират сумата от квадратните грешки между прогнозираните и действителните стойности на y.
Решението със затворена форма е:
с:
- показва транспониране на матрицата X
показва обратима матрица
Ние използваме набора от данни на mtcars. Вече сте запознати с набора от данни. Нашата цел е да предвидим миля на галон за набор от характеристики.
Непрекъснати променливи в R
Засега ще използвате само непрекъснатите променливи и ще оставите настрана категоричните характеристики. Променливата am е двоична променлива, приемаща стойност 1, ако трансмисията е ръчна, и 0 за автоматични автомобили; vs също е двоична променлива.
library(dplyr) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) glimpse(df)
Изход:
## 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...
Можете да използвате функцията lm(), за да изчислите параметрите. Основният синтаксис на тази функция е:
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
Запомнете, че уравнението има следната форма
в R
- Символът = се заменя с ~
- Всеки x се заменя с името на променливата
- Ако искате да премахнете константата, добавете -1 в края на формулата
Пример:
Искате да оцените теглото на хората въз основа на техния ръст и приходи. Уравнението е
Уравнението в R е написано, както следва:
y ~ X1+ X2+…+Xn # С пресичане
Така че за нашия пример:
- Претеглете ~ височина + приходи
Вашата цел е да оцените миля на галон въз основа на набор от променливи. Уравнението за оценка е:
Ще изчислите първата си линейна регресия и ще съхраните резултата в подходящия обект.
model <- mpg~.disp + hp + drat + wt fit <- lm(model, df) fit
Обяснение на кода
- модел <- mpg ~. disp + hp + drat+ wt: Съхранявайте модела за оценка
- lm(модел, df): Оценка на модела с рамката на данни 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
Резултатът не предоставя достатъчно информация за качеството на прилягането. Можете да получите достъп до повече подробности като значението на коефициентите, степента на свобода и формата на остатъците с функцията summary().
summary(fit)
Изход:
## 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
Извод от резултата от горната таблица
- Горната таблица доказва, че има силна отрицателна връзка между теглото и пробега и положителна връзка с драта.
- Само променливата wt има статистическо въздействие върху mpg. Не забравяйте, че за да тестваме хипотеза в статистиката, ние използваме:
- H0: Няма статистическо въздействие
- H3: Предикторът има значимо въздействие върху y
- Ако стойността на p е по-ниска от 0.05, това показва, че променливата е статистически значима
- Коригиран R-квадрат: Дисперсия, обяснена от модела. Във вашия модел моделът обяснява 82 процента от дисперсията на y. R на квадрат винаги е между 0 и 1. Колкото по-високо, толкова по-добре
Можете да стартирате ANOVA тест за оценка на ефекта на всяка характеристика върху дисперсиите с функцията anova().
anova(fit)
Изход:
## 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
По-традиционен начин за оценка на производителността на модела е да се покаже остатъкът спрямо различни мерки.
Можете да използвате функцията plot(), за да покажете четири графики:
– Остатъци срещу монтирани стойности
– Графика на нормален QQ: теоретичен квартил срещу стандартизирани остатъци
– Разположение на мащаба: Напаснати стойности спрямо квадратни корени на стандартизираните остатъци
– Остатъци срещу ливъридж: ливъридж срещу стандартизирани остатъци
Добавяте кода par(mfrow=c(2,2)) преди plot(fit). Ако не добавите този ред код, R ви подканва да натиснете командата enter, за да се покаже следващата графика.
par(mfrow=(2,2))
Обяснение на кода
- (mfrow=c(2,2)): връща прозорец с четирите графики една до друга.
- Първите 2 добавят броя на редовете
- Вторите 2 добавят броя на колоните.
- Ако напишете (mfrow=c(3,2)): ще създадете прозорец с 3 реда и 2 колони
plot(fit)
Изход:
Формулата lm() връща списък, съдържащ много полезна информация. Можете да получите достъп до тях с подходящия обект, който сте създали, последван от знака $ и информацията, която искате да извлечете.
– коефициенти: `fit$coefficients`
– остатъци: `fit$residuals`
– монтирана стойност: `fit$fitted.values`
Фактори на регресия в R
В последната оценка на модела вие регресирате мили на галон само върху непрекъснати променливи. Лесно е да добавите факторни променливи към модела. Добавяте променливата am към вашия модел. Важно е да сте сигурни, че променливата е факторно ниво, а не непрекъсната.
df <- mtcars % > % mutate(cyl = factor(cyl), vs = factor(vs), am = factor(am), gear = factor(gear), carb = factor(carb)) summary(lm(model, df))
Изход:
## ## 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 използва първото факторно ниво като базова група. Трябва да сравните коефициентите на другата група спрямо основната група.
Постепенна линейна регресия в R
Последната част от този урок се занимава с стъпаловидна регресия алгоритъм. Целта на този алгоритъм е да добавя и премахва потенциални кандидати в моделите и да запазва тези, които имат значително влияние върху зависимата променлива. Този алгоритъм е смислен, когато наборът от данни съдържа голям списък от предиктори. Не е необходимо ръчно да добавяте и премахвате независимите променливи. Постепенната регресия е изградена, за да избере най-добрите кандидати, които да отговарят на модела.
Нека да видим в действие как работи. Използвате набора от данни mtcars с непрекъснатите променливи само за педагогическа илюстрация. Преди да започнете анализ, добре е да установите вариациите между данните с корелационна матрица. Библиотеката GGally е разширение на ggplot2.
Библиотеката включва различни функции за показване на обобщена статистика като корелация и разпределение на всички променливи в матрица. Ще използваме функцията ggscatmat, но можете да се обърнете към винетка за повече информация относно библиотеката GGally.
Основният синтаксис за ggscatmat() е:
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
Вие показвате корелацията за всички ваши променливи и решавате коя от тях ще бъде най-добрият кандидат за първата стъпка на поетапната регресия. Има някои силни корелации между вашите променливи и зависимата променлива, mpg.
library(GGally) df <- mtcars % > % select(-c(am, vs, cyl, gear, carb)) ggscatmat(df, columns = 1: ncol(df))
Изход:
Пример за поетапна регресия стъпка по стъпка
Изборът на променливи е важна част за напасване на модел. Постепенната регресия ще извърши процеса на търсене автоматично. За да оцените колко възможни избора има в набора от данни, вие изчислявате с k е броят на предикторите. Броят на възможностите нараства с броя на независимите променливи. Ето защо трябва да имате автоматично търсене.
Трябва да инсталирате пакета olsrr от CRAN. Пакетът все още не е наличен в Anaconda. Следователно го инсталирате директно от командния ред:
install.packages("olsrr")
Можете да начертаете всички подмножества от възможности с критериите за прилягане (т.е. R-квадрат, коригиран R-квадрат, байесови критерии). Моделът с най-ниските критерии за AIC ще бъде окончателният модел.
library(olsrr) model <- mpg~. fit <- lm(model, df) test <- ols_all_subset(fit) plot(test)
Обяснение на кода
- MPG ~.: Конструирайте модела за оценка
- lm(модел, df): Стартирайте OLS модела
- ols_all_subset(fit): Изградете графиките със съответната статистическа информация
- графика (тест): Начертайте графиките
Изход:
Моделите на линейна регресия използват t-тест за оценка на статистическото влияние на независима променлива върху зависимата променлива. Изследователите определят максималния праг на 10%, като по-ниските стойности показват по-силна статистическа връзка. Стратегията на поетапната регресия е изградена около този тест за добавяне и премахване на потенциални кандидати. Алгоритъмът работи по следния начин:
- Стъпка : Регресия на всеки предиктор по y поотделно. А именно, регресия x_1 върху y, x_2 върху y до x_n. Съхранявайте р-стойност и поддържайте регресора с p-стойност по-ниска от определен праг (0.1 по подразбиране). Предикторите със значимост по-ниска от прага ще бъдат добавени към крайния модел. Ако никоя променлива няма p-стойност, по-ниска от входния праг, тогава алгоритъмът спира и имате своя окончателен модел само с константа.
- Стъпка : Използвайте предиктора с най-ниската p-стойност и добавя отделно една променлива. Регресирате константа, най-добрият предиктор на стъпка едно и трета променлива. Добавяте към поетапния модел новите предиктори със стойност, по-ниска от входния праг. Ако никоя променлива няма p-стойност по-ниска от 0.1, тогава алгоритъмът спира и имате окончателния си модел само с един предиктор. Регресирате поетапния модел, за да проверите значимостта на най-добрите предиктори за стъпка 1. Ако е по-висок от прага за премахване, вие го запазвате в стъпаловиден модел. В противен случай го изключвате.
- Стъпка : Повторете стъпка 2 на новия най-добър поетапен модел. Алгоритъмът добавя предиктори към поетапния модел въз основа на въведените стойности и изключва предиктора от поетапния модел, ако не отговаря на прага за изключване.
- Алгоритъмът продължава да работи, докато не може да се добави или изключи променлива.
Можете да изпълните алгоритъма с функцията ols_stepwise() от пакета olsrr.
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
Преди това ви показваме стъпките на алгоритъма. По-долу е дадена таблица със зависимите и независимите променливи:
Зависима променлива | Независими променливи |
---|---|
MPG | депо |
hp | |
драт | |
wt | |
qsec |
Начало
Като начало, алгоритъмът започва с изпълнение на модела върху всяка независима променлива поотделно. Таблицата показва p-стойността за всеки модел.
## [[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
За да влезе в модела, алгоритъмът запазва променливата с най-ниска p-стойност. От горния резултат, той е тегл
Стъпка
В първата стъпка алгоритъмът изпълнява mpg върху wt и другите променливи независимо.
## [[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
Всяка променлива е потенциален кандидат за влизане в крайния модел. Въпреки това, алгоритъмът запазва само променливата с по-ниска p-стойност. Оказва се, че hp има малко по-ниска p-стойност от qsec. Следователно hp влиза във финалния модел
Стъпка
Алгоритъмът повтаря първата стъпка, но този път с две независими променливи в крайния модел.
## [[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
Нито една от променливите, които са влезли в крайния модел, няма достатъчно ниска p-стойност. Алгоритъмът спира тук; имаме окончателния модел:
## ## 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
Можете да използвате функцията ols_stepwise(), за да сравните резултатите.
stp_s <-ols_stepwise(fit, details=TRUE)
Изход:
Алгоритъмът намира решение след 2 стъпки и връща същия резултат, както преди.
В крайна сметка можете да кажете, че моделите се обясняват с две променливи и пресечна точка. Миля на галон е отрицателно свързана с брутните конски сили и теглото
## 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.
Machine Learning
Machine Learning става широко разпространен сред специалистите по данни и се внедрява в стотици продукти, които използвате ежедневно. Едно от първите ML приложения беше спам филтър.
Следват други приложения на машинното обучение-
- Идентифициране на нежелани спам съобщения в имейл
- Сегментиране на клиентското поведение за таргетирана реклама
- Намаляване на измамни транзакции с кредитни карти
- Оптимизиране на използването на енергия в жилищни и офис сгради
- разпознаване на лица
Контролирано обучение
In Контролирано обучение, данните за обучение, които подавате към алгоритъма, включват етикет.
Класификация е може би най-използваната техника за контролирано обучение. Една от първите задачи за класификация, с която се захванаха изследователите, беше спам филтърът. Целта на обучението е да се предвиди дали даден имейл е класифициран като спам или хам (добър имейл). Машината, след стъпката на обучение, може да открие класа на имейла.
Регресии обикновено се използват в областта на машинното обучение за прогнозиране на непрекъсната стойност. Регресионната задача може да предвиди стойността на a зависима променлива въз основа на набор от независими променливи (наричани още предиктори или регресори). Например линейните регресии могат да предвидят цена на акции, прогноза за времето, продажби и т.н.
Ето списъка с някои основни алгоритми за контролирано обучение.
- Линейна регресия
- Логистична регресия
- Най-близки съседи
- Поддържаща векторна машина (SVM)
- Дървета на решенията и произволна гора
- Невронни мрежи
Неуправляемо обучение
In Неуправляемо обучение, данните за обучението не са етикетирани. Системата се опитва да научи без справка. По-долу е даден списък с алгоритми за обучение без надзор.
- К-средно
- йерархически Cluster Анализ
- Максимизиране на очакванията
- Визуализация и намаляване на размерността
- Анализ на главния компонент
- PCA на ядрото
- Локално-линейно вграждане
Oбобщение
- Линейната регресия отговаря на прост въпрос: Можете ли да измерите точна връзка между една целева променлива и набор от предиктори?
- Обикновеният метод на най-малките квадрати се опитва да намери параметрите, които минимизират сумата от грешките на квадрат, което е вертикалното разстояние между прогнозираните стойности на y и действителните стойности на y.
- Вероятностният модел, който включва повече от една независима променлива, се нарича модели на множествена регресия.
- Целта на алгоритъма за поетапна линейна регресия е да добавя и премахва потенциални кандидати в моделите и да запазва онези, които имат значително влияние върху зависимата променлива.
- Изборът на променливи е важна част за напасване на модел. Постепенната регресия извършва процеса на търсене автоматично.
Обикновената регресия на най-малък квадрат може да бъде обобщена в таблицата по-долу:
Библиотека | Цел | функция | Аргументи |
---|---|---|---|
база | Изчислете линейна регресия | лм() | формула, данни |
база | Обобщаване на модела | обобщавам() | годен |
база | Извличане на коефициенти | lm()$коефициент | |
база | Извлечете остатъците | lm()$ остатъци | |
база | Извличане на монтирана стойност | lm()$fitted.values | |
olsrr | Изпълнете поетапна регресия | ols_stepwise() | годност, pent = 0.1, prem = 0.3, детайли = FALSE |
Забележка: Не забравяйте да трансформирате категориалната променлива във фактор, преди да паснете на модела.