R Покрокова та множинна лінійна регресія [Приклад кроків]
Проста лінійна регресія в R
Лінійна регресія відповідає на просте запитання: чи можете ви виміряти точний зв’язок між однією цільовою змінною та набором предикторів?
Найпростішою імовірнісною моделлю є прямолінійна модель:
де
- y = залежна змінна
- 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. На наступному кроці ви виміряєте, на скільки збільшується кожен додатковий .
Оцінки методом найменших квадратів
У простій регресії МНК обчислення та є прямим. Мета полягає не в тому, щоб показати виведення в цьому посібнику. Ви тільки напишете формулу.
Ви хочете оцінити:
Метою регресії МНК є мінімізація наступного рівняння:
де
є фактичним значенням і є прогнозованим значенням.
Рішення для 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
Пам’ятайте, що рівняння має такий вигляд
в Р
- Символ = замінюється на ~
- Кожен 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)
Пояснення коду
- милі на галон ~.: Побудуйте модель для оцінки
- lm(модель, df): Запустіть модель OLS
- ols_all_subset(підходить): Побудуйте графіки з відповідною статистичною інформацією
- ділянка (тест): Побудуйте графіки
вихід:
Моделі лінійної регресії використовують t-тест оцінити статистичний вплив незалежної змінної на залежну змінну. Дослідники встановили максимальний поріг у 10 відсотків, причому нижчі значення вказують на сильніший статистичний зв’язок. Стратегія поетапної регресії побудована навколо цього тесту для додавання та видалення потенційних кандидатів. Алгоритм роботи наступний:
- крок 1: Регресія кожного предиктора на y окремо. А саме, регресія x_1 на y, x_2 на y до x_n. Зберігайте р-значення і підтримувати регресор із значенням p, нижчим за визначене порогове значення (0.1 за замовчуванням). Предиктори зі значущістю, нижчою за порогове значення, будуть додані до остаточної моделі. Якщо жодна змінна не має p-значення, нижче за вхідний поріг, тоді алгоритм зупиняється, і ви маєте остаточну модель лише з константою.
- крок 2: Використовуйте предиктор із найнижчим p-значенням і додайте окремо одну змінну. Ви регресуєте константу, найкращий предиктор першого кроку та третьої змінної. Ви додаєте до покрокової моделі нові предиктори зі значенням, нижчим за вхідний поріг. Якщо жодна змінна не має p-значення нижче 0.1, тоді алгоритм зупиняється, і ви маєте остаточну модель лише з одним предиктором. Ви регресуєте поетапну модель, щоб перевірити значущість найкращих предикторів кроку 1. Якщо він вищий за поріг видалення, ви зберігаєте його в поетапній моделі. В іншому випадку ви виключаєте його.
- крок 3: Ви повторюєте крок 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
Перед цим ми покажемо вам кроки алгоритму. Нижче наведено таблицю із залежними та незалежними змінними:
Залежна змінна | Незалежні змінні |
---|---|
милі на галон | розсилка |
hp | |
драт | |
wt | |
qsec |
Start
Почнемо з того, що алгоритм починається з запуску моделі для кожної незалежної змінної окремо. У таблиці показано 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-значенням. З наведеного вище результату це мас
крок 1
На першому кроці алгоритм незалежно запускає 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 входить до остаточної моделі
крок 2
Алгоритм повторює перший крок, але цього разу з двома незалежними змінними в остаточній моделі.
## [[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.
машинне навчання
машинне навчання стає широко поширеним серед науковців із обробки даних і розгортається в сотнях продуктів, якими ви користуєтеся щодня. Одним із перших додатків ML був спам-фільтр.
Нижче наведено інші програми машинного навчання –
- Виявлення небажаних повідомлень спаму в електронній пошті
- Сегментація поведінки клієнтів для таргетованої реклами
- Зменшення кількості шахрайських операцій з кредитними картками
- Оптимізація енергоспоживання в будинку та офісі
- Розпізнавання обличчя
Навчання під наглядом
In Навчання під наглядом, навчальні дані, які ви подаєте в алгоритм, містять мітку.
Класифікація це, ймовірно, найбільш використовувана методика навчання під наглядом. Одним із перших завдань класифікації, за яке взялися дослідники, був фільтр спаму. Мета навчання полягає в тому, щоб передбачити, чи класифікуватиме електронний лист як спам або як ветку (хороший електронний лист). Машина після етапу навчання може визначити клас електронної пошти.
Регресії зазвичай використовуються в галузі машинного навчання для прогнозування постійного значення. Завдання регресії може передбачити значення a залежна змінна на основі набору незалежні змінні (їх також називають предикторами або регресорами). Наприклад, лінійна регресія може передбачити курс акцій, прогноз погоди, продажі тощо.
Ось список деяких основних алгоритмів навчання під наглядом.
- Лінійна регресія
- Логістична регресія
- Найближчі сусіди
- Машина опорних векторів (SVM)
- Дерева рішень і випадковий ліс
- Нейронні мережі
Навчання без нагляду
In Навчання без нагляду, дані навчання не позначені. Система намагається вчитися без посилання. Нижче наведено список алгоритмів неконтрольованого навчання.
- K-середнє
- Ієрархічна Cluster Аналіз
- Максимізація очікування
- Візуалізація та зменшення розмірності
- Аналіз основних компонентів
- Ядро PCA
- Локально-лінійне вбудовування
Підсумки
- Лінійна регресія відповідає на просте запитання: чи можете ви виміряти точний зв’язок між однією цільовою змінною та набором предикторів?
- Звичайний метод найменших квадратів намагається знайти параметри, які мінімізують суму квадратів помилок, тобто вертикальну відстань між прогнозованими значеннями y і фактичними значеннями y.
- Імовірнісна модель, яка включає більше однієї незалежної змінної, називається моделлю множинної регресії.
- Метою алгоритму покрокової лінійної регресії є додавання та видалення потенційних кандидатів у моделі та збереження тих, хто має значний вплив на залежну змінну.
- Вибір змінних є важливою частиною підбору моделі. Покрокова регресія виконує процес пошуку автоматично.
Звичайну регресію найменших квадратів можна підсумувати в таблиці нижче:
Library | мета | функція | Аргументи |
---|---|---|---|
база | Обчисліть лінійну регресію | lm() | формула, дані |
база | Узагальніть модель | підсумувати() | відповідати |
база | Витягти коефіцієнти | lm()$коефіцієнт | |
база | Витягніть залишки | lm()$залишки | |
база | Витягти підігнане значення | lm()$fitted.values | |
olsrr | Запустіть покрокову регресію | ols_stepwise() | fit, pent = 0.1, prem = 0.3, деталі = FALSE |
Примітка:: не забудьте перетворити категоріальну змінну в фактор, перш ніж відповідати моделі.