Редактирование: Вариации регрессии

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 4: Строка 4:
 
{{main|Линейная регрессия}}
 
{{main|Линейная регрессия}}
  
'''Линейная регрессия''' (англ. ''linear regression'') {{---}} разновидность регрессии для моделирования линейной зависимости между зависимой и независимой переменными.
+
'''Линейная регрессия''' (англ. ''Linear regression'') {{---}} разновидность регрессии для моделирования линейной зависимости между зависимой и независимой переменными.
  
 
==Логистическая регрессия==
 
==Логистическая регрессия==
 
{{main|Логистическая регрессия}}
 
{{main|Логистическая регрессия}}
'''Логистическая регрессия''' (англ. ''logistic regression'') {{---}} разновидность регрессии для прогнозирования вероятности некоторого события по значениям независимых переменных. Зависимая переменная <tex>y</tex> в этом случае принимает значения <tex>0</tex> или <tex>1</tex> (рассматриваемое событие не произошло или произошло соответственно).
+
'''Логистическая регрессия''' (англ. ''Logistic regression'') {{---}} разновидность регрессии для моделирования зависимости между зависимой и независимой переменными в случае, когда зависимая переменная <tex>y</tex> принимает значения в диапазоне от <tex>0</tex> до <tex>1</tex>.
  
 
==Гребневая регрессия (ридж-регрессия)==
 
==Гребневая регрессия (ридж-регрессия)==
Строка 16: Строка 16:
 
{{Определение
 
{{Определение
 
|definition =
 
|definition =
'''Мультиколлинеарность''' (англ. ''multicollinearity'') {{---}} наличие линейной зависимости между независимыми переменными регрессионной модели. Различают ''полную коллинеарность'' и ''частичную'' или просто ''мультиколлинеарность'' {{---}} наличие сильной корреляции между независимыми переменными.
+
'''Мультиколлинеарность''' ''(англ. multicollinearity)'' {{---}} наличие линейной зависимости между независимыми переменными регрессионной модели. Различают ''полную коллинеарность'' и ''частичную'' или просто ''мультиколлинеарность'' {{---}} наличие сильной корреляции между независимыми переменными.
 
}}
 
}}
 
Рассмотрим пример линейной модели: <tex>y = b_1 x_1 + b_2 x_2 + b_3 x_3 + \varepsilon</tex>.
 
Рассмотрим пример линейной модели: <tex>y = b_1 x_1 + b_2 x_2 + b_3 x_3 + \varepsilon</tex>.
 
Пусть имеет место зависимость <tex>x_1 = x_2 + x_ 3</tex>. Добавим к первому коэффициенту произвольное число <tex>a</tex>, а из двух других коэффициентов это же число вычтем.
 
Пусть имеет место зависимость <tex>x_1 = x_2 + x_ 3</tex>. Добавим к первому коэффициенту произвольное число <tex>a</tex>, а из двух других коэффициентов это же число вычтем.
 
Получаем (без случайной ошибки):
 
Получаем (без случайной ошибки):
:<tex>y = (b_1 + a)x_1 + (b_2 - a)x_2 + (b_3 - a)x_3 = b_1 x_1 + b_2 x_2 + b_3 x_3 + a(x_1 - x_2 - x_3) = b_1 x_1 + b_2 x_2 + b_3 x_3</tex>
+
 
 +
<tex>y = (b_1 + a)x_1 + (b_2 - a)x_2 + (b_3 - a)x_3 = b_1 x_1 + b_2 x_2 + b_3 x_3 + a(x_1 - x_2 - x_3) = b_1 x_1 + b_2 x_2 + b_3 x_3</tex>
  
 
Несмотря на относительно произвольное изменение коэффициентов модели мы получили исходную модель, то есть такая модель неидентифицируема.
 
Несмотря на относительно произвольное изменение коэффициентов модели мы получили исходную модель, то есть такая модель неидентифицируема.
Строка 29: Строка 30:
 
===Описание===
 
===Описание===
 
Напомним задачу многомерной линейной регрессии:
 
Напомним задачу многомерной линейной регрессии:
 
 
Рассматривается линейная зависимость <tex>f(x, \beta) = \langle \beta, x \rangle</tex>.
 
Рассматривается линейная зависимость <tex>f(x, \beta) = \langle \beta, x \rangle</tex>.
  
 
Находим вектор <tex>\beta^*</tex>, при котором достигается минимум среднего квадрата ошибки:
 
Находим вектор <tex>\beta^*</tex>, при котором достигается минимум среднего квадрата ошибки:
:<tex>Q(\beta) = ||F \beta - y||^2</tex>
+
<center><tex>Q(\beta) = ||F \beta - y||^2</tex></center>
 +
 
  
:<tex>\beta^*=\arg \min\limits_\beta Q(\beta)</tex>
+
<center><tex>\beta^*=\arg \min\limits_\beta Q(\beta)</tex></center>
  
 
Методом наименьших квадратов находим решение:
 
Методом наименьших квадратов находим решение:
:<tex>\beta^* = (F^T F)^{-1} F^T y</tex>
+
<center><tex>\beta^* = (F^T F)^{-1} F^T y</tex></center>
  
 
В условиях мультиколлинеарности матрица <tex>F^T F</tex> становится плохо обусловленной.
 
В условиях мультиколлинеарности матрица <tex>F^T F</tex> становится плохо обусловленной.
  
Для решения этой проблемы наложим ограничение на величину коэффициентов <tex>\beta</tex>: <tex>||\overrightarrow{\beta}||_2^2 \leq t^2</tex>.
+
Для решения этой проблемы добавим к функционалу <tex>Q</tex> регуляризационное слагаемое:
 
+
<center><tex>Q_{\lambda}(\beta) = ||F \beta - y||^2 + \lambda ||\beta||^2</tex>,</center>
Функционал <tex>Q</tex> с учетом ограничения принимает вид:
 
:<tex>Q_{\lambda}(\beta) = ||F \beta - y||^2 + \lambda ||\beta||^2</tex>,
 
 
где <tex>\lambda</tex> {{---}} неотрицательный параметр.
 
где <tex>\lambda</tex> {{---}} неотрицательный параметр.
  
 
Решением в этом случае будет
 
Решением в этом случае будет
:<tex>\beta^* = (F^T F + \lambda I_n)^{-1} F^T y</tex>
+
<center><tex>\beta^* = (F^T F + \lambda I_n)^{-1} F^T y</tex></center>
  
 
Это изменение увеличивает собственные значения матрицы <tex>F^T F</tex>, но не изменяет ее собственные вектора. В результате имеем хорошо обусловленную матрицу.
 
Это изменение увеличивает собственные значения матрицы <tex>F^T F</tex>, но не изменяет ее собственные вектора. В результате имеем хорошо обусловленную матрицу.
Строка 55: Строка 54:
 
Диагональная матрица <tex>\lambda I_n</tex> называется '''гребнем'''.
 
Диагональная матрица <tex>\lambda I_n</tex> называется '''гребнем'''.
  
===Примеры кода===
+
===Пример кода для Scikit-learn===
====Пример кода для Scikit-learn====
+
  <font color = green># Импорт библиотек</font>
  <font color = green># импорт библиотек</font>
 
 
  '''from''' sklearn.datasets '''import''' make_regression
 
  '''from''' sklearn.datasets '''import''' make_regression
 
  '''from''' sklearn.linear_model '''import''' Ridge
 
  '''from''' sklearn.linear_model '''import''' Ridge
 
  '''from''' sklearn.model_selection '''import''' train_test_split
 
  '''from''' sklearn.model_selection '''import''' train_test_split
 
   
 
   
<font color = green># генерируем данные для X и y</font>
+
  X, y = make_regression(n_samples=10000, noise=100, random_state=0) <font color = green># генерируем данные для X и y</font>
  X, y = make_regression(n_samples=10000, noise=100, random_state=0)
 
 
   
 
   
 
  <font color = green># разделение данных на train и test</font>
 
  <font color = green># разделение данных на train и test</font>
Строка 81: Строка 78:
 
Точность предсказания для данного датасета и параметров:
 
Точность предсказания для данного датасета и параметров:
 
  <font color = green>>>></font> 0.8171822749108134
 
  <font color = green>>>></font> 0.8171822749108134
 
====Пример на языке Java====
 
Пример гребневой регрессии с применением <code>smile.regression.RidgeRegression</code><ref>[https://haifengl.github.io/smile/api/java/smile/regression/RidgeRegression.html/ Smile, Ridge Regression]</ref>
 
 
<code>Maven</code> зависимость:
 
  <dependency>
 
    <groupId>com.github.haifengl</groupId>
 
    <artifactId>smile-core</artifactId>
 
    <version>1.5.2</version>
 
  </dependency>
 
 
  '''import''' smile.data.NominalAttribute;
 
  '''import''' smile.data.parser.DelimitedTextParser;
 
  '''import''' smile.regression.RidgeRegression;
 
 
  '''var''' parser = new DelimitedTextParser();
 
  parser.setDelimiter(", ");
 
  parser.setResponseIndex(new NominalAttribute("class"), 0);
 
  '''var''' dataset  = parser.parse("dataset.csv");
 
  '''var''' lambda  = 0.0057d;
 
  '''var''' ridgeClf = new RidgeRegression(dataset.x(), dataset.y(), lambda);
 
  ridgeClf.predict(testX);
 
  
 
==Лассо-регрессия==
 
==Лассо-регрессия==
[[Файл: Ridge_and_Lasso_Regression.png|400px|thumb|Рис.1. Сравнение Лассо- и Ридж- регрессии, пример для двумерного пространства независимых переменных.<br/>Бирюзовые области изображают ограничения на коэффициенты <tex>\beta</tex>, эллипсы {{---}} некоторые значения функции наименьшей квадратичной ошибки.]]
+
===Описание===
 +
Метод регрессии лассо (англ. ''LASSO, Least Absolute Shrinkage and Selection Operator'') похож на гребневую регрессию:
 +
<center><tex>Q_{\lambda}(\beta) = ||F \beta - y||^2 + \lambda ||\beta||</tex>,</center>
 +
В ходе минимизации некоторые коэффициенты становятся равными нулю, что определяет отбор информативных признаков.
  
'''Метод регрессии лассо''' (англ. ''LASSO, Least Absolute Shrinkage and Selection Operator'') похож на гребневую регрессию, но он использует другое ограничение на коэффициенты <tex>\beta</tex>: <tex>||\overrightarrow{\beta}||_1 \leq t</tex>
+
===Пример кода для Scikit-learn===
 
+
  <font color = green># Импорт библиотек</font>
Функционал <tex>Q</tex> принимает следующий вид:
 
:<tex>Q_{\lambda}(\beta) = ||F \beta - y||^2 + \lambda ||\beta||</tex>
 
 
 
Основное различие лассо- и ридж-регрессии заключается в том, что первая может приводить к обращению некоторых независимых переменных в ноль, тогда как вторая уменьшает их до значений, близких к нулю. Рассмотрим для простоты двумерное пространство независимых переменных. В случае лассо-регрессии органичение на коэффициенты представляет собой ромб (<tex>|\beta_1| + |\beta_2| \leq t</tex>), в случае ридж-регрессии {{---}} круг (<tex>\beta_1^2 + \beta_2^2 \leq t^2</tex>). Необходимо минимизировать функцию ошибки, но при этом соблюсти ограничения на коэффициенты. С геометрической точки зрения задача состоит в том, чтобы найти точку касания линии, отражающей функцию ошибки с фигурой, отражающей ограничения на <tex>\beta</tex>. Из рисунка 1 интуитивно понятно, что в случае лассо-регрессии эта точка с большой вероятностью будет находиться на углах ромба, то есть лежать на оси, тогда как в случае ридж-регрессии такое происходит очень редко. Если точка пересечения лежит на оси, один из коэффициентов будет равен нулю, а значит, значение соответствующей независимой переменной не будет учитываться.
 
 
 
===Примеры кода===
 
====Пример кода для Scikit-learn====
 
  <font color = green># импорт библиотек</font>
 
'''from''' sklearn.datasets '''import''' make_regression
 
 
  '''from''' sklearn.linear_model '''import''' Lasso
 
  '''from''' sklearn.linear_model '''import''' Lasso
 
  '''from''' sklearn.model_selection '''import''' train_test_split
 
  '''from''' sklearn.model_selection '''import''' train_test_split
 
   
 
   
  <font color = green># генерируем данные для X и y</font>
+
  X = ... <font color = green># загрузка X</font>
  X, y = make_regression(n_samples=10000, noise=100, random_state=0)
+
  y = ... <font color = green># загрузка y</font>
 
   
 
   
 
  <font color = green># разделение данных на train и test</font>
 
  <font color = green># разделение данных на train и test</font>
  train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.3, random_state=3)
+
  train_X, test_X, train_y, test_y = train_test_split(X, y)
 
   
 
   
 
  lasso_regression = Lasso(alpha=0.1) <font color = green># alpha {{---}} величина регуляризации</font>
 
  lasso_regression = Lasso(alpha=0.1) <font color = green># alpha {{---}} величина регуляризации</font>
Строка 137: Строка 106:
 
  <font color = green># вывод точности предсказания</font>
 
  <font color = green># вывод точности предсказания</font>
 
  ''print''(lasso_regression.score(test_X, test_y))
 
  ''print''(lasso_regression.score(test_X, test_y))
 
Точность предсказания для данного датасета и параметров:
 
<font color = green>>>></font> 0.8173906804156383
 
 
====Пример на языке Java====
 
 
Пример Лассо-регрессии с применением <code>smile.regression.LASSO</code><ref>[https://haifengl.github.io/smile/api/java/smile/regression/LASSO.html/ Smile, LASSO regression]</ref>
 
 
<code>Maven</code> зависимость:
 
  <dependency>
 
    <groupId>com.github.haifengl</groupId>
 
    <artifactId>smile-core</artifactId>
 
    <version>1.5.2</version>
 
  </dependency>
 
 
  '''import''' smile.data.NominalAttribute;
 
  '''import''' smile.data.parser.DelimitedTextParser;
 
  '''import''' smile.regression.LASSO;
 
 
  '''var''' parser = new DelimitedTextParser();
 
  parser.setDelimiter(", ");
 
  parser.setResponseIndex(new NominalAttribute("class"), 0);
 
  '''var''' dataset = parser.parse("dataset.csv");
 
  '''var''' lasso  = new LASSO(dataset.x(), dataset.y(), 10);
 
  lasso.predict(testX);
 
  
 
==Байесовская регрессия==
 
==Байесовская регрессия==
Описанные выше методы никак не учитывали наличие в данных шума, тогда как в реальных данных он скорее всего будет присутствовать. Предположим, что в данных все же есть некоторый шум, и что он распределен нормально. Тогда задачу линейной регрессии можно записать в следующем виде:
 
:<tex>f(x, \beta) = \langle \beta, x \rangle + \varepsilon</tex>, где <tex>\varepsilon \sim N(0, \sigma^2)</tex>.
 
 
Решением этой задачи мы и будем заниматься в этом разделе.
 
 
[[Файл: Bayessian_regression_noise.jpg|250px|thumb|Рис.2. Регрессия и шум в данных.<br/>Синяя точка {{---}} значение из датасета, красная {{---}} значение, полученное в результате работы алгоритма регрессии. Также на рисунке зеленой линией изображена предсказанная функция, а черной {{---}} гауссово распределение шума.]]
 
 
 
'''Байесовская линейная регрессия''' (англ. ''Bayesian linear regression'') {{---}} подход в линейной регрессии, в котором предполагается что шум распределен нормально.
 
'''Байесовская линейная регрессия''' (англ. ''Bayesian linear regression'') {{---}} подход в линейной регрессии, в котором предполагается что шум распределен нормально.
  
На рисунке 2 синяя точка показывает значения из датасета, красная {{---}} значение, предсказанное регрессией. Поскольку центр гауссианы находится в красной точке, маленькие отклонения синей точки от красной более вероятны, а большие менее вероятны.
+
Рассмотрим задачу линейной регрессии <tex>y = \overrightarrow{\beta}^T\overrightarrow{x} + \varepsilon</tex>, где <tex>\varepsilon_i \sim N(0, \sigma^2)</tex>.
 
 
Для решения поставленной задачи регрессии воспользуемся методом максимального правдоподобия.
 
 
 
Запишем правдоподобие:
 
:<tex>p(y|x, \beta, \sigma^2) = N(x \beta, \sigma^2)</tex>,
 
где <tex>p(y|x, \beta, \sigma^2)</tex> {{---}} плотность распределения значения <tex>y</tex> из датасета, которая, как мы ранее предположили, соответствует нормальному распределению с центром в точке <tex>x \beta</tex> (значение для <tex>y</tex>, предсказанное алгоритмом).
 
  
Будем также предполагать, что данные независимы:
+
В терминах вероятностей можно записать следующее:
:<tex>p(y|x, \beta, \sigma^2) = \prod\limits_{i=1}^n N(x_i \beta, \sigma^2)</tex>
+
<tex>p(y|\overrightarrow{x}, \overrightarrow{\beta}, \sigma^2) = N(y|\overrightarrow{\beta}^T \overrightarrow{x}), \sigma^2)</tex>
  
Поскольку нас интересует только максимум, положим <tex>\sigma = 1</tex>:
+
Будем предполагать, что данные независимы:
:<tex>\arg\max p(y|x, \beta) = \arg\max \prod\limits_{i=1}^n N(x_i \beta, 1)</tex>
+
<center><tex>p(Y|X, \overrightarrow{\beta}, \sigma^2) = \prod\limits_{i=1}^n N(y_i|\overrightarrow{\beta}^T \overrightarrow{x}_i, \sigma^2)</tex></center>
  
 
Прологарифмируем это выражение:
 
Прологарифмируем это выражение:
:<tex>\arg\max \ln p(y|x, \beta) = \arg\max \ln \prod\limits_{i=1}^n N(x_i \beta, 1) \\
 
= \arg\max \ln {\left( \frac{1}{(\sqrt{2 \pi})^n} \exp{\left(-\frac{1}{2} \sum\limits_{i-1}^n (y_i - x_i \beta)^2\right)}\right )} \\
 
= \arg\max - \sum\limits_{i=1}^n (y_i - x_i \beta)^2 \\
 
= \arg\min \sum\limits_{i=1}^n (y_i - x_i \beta)^2</tex>
 
 
Таким образом, оказывается, что метод максимального правдоподобия с учетом шума в данных сводится к оценке по методу наименьших квадратов, которую мы уже видели в обычной линейной регрессии.
 
  
===Пример кода для Scikit-learn===
+
<tex>\ln p(Y|X, \overrightarrow{\beta}, \sigma^2) \\ = \ln \prod\limits_{i=1}^n N(y_i|\overrightarrow{\beta}^T \overrightarrow{x}_i, \sigma^2) \\ = \ln {\left( \frac{1}{(\sigma \sqrt{2 \pi})^n} \exp{(-\frac{1}{2 \sigma^2} \sum\limits_{i-1}^n (y_i - \overrightarrow{\beta}^T \overrightarrow{x_i})^2)}\right )} \\ = -\frac{n}{2} \ln{2 \pi \sigma^2} - \frac{1}{2\sigma^2} \sum\limits_{i=1}^n (y_i-\overrightarrow{\beta}^T \overrightarrow{x}_i)^2</tex>
<font color = green># импорт библиотек</font>
 
'''from''' sklearn.datasets '''import''' make_regression
 
'''from''' sklearn.linear_model '''import''' BayesianRidge
 
'''from''' sklearn.model_selection '''import''' train_test_split
 
 
<font color = green># генерируем данные для X и y</font>
 
X, y = make_regression(n_samples=10000, noise=100, random_state=0)
 
 
<font color = green># разделение данных на train и test</font>
 
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.3, random_state=3)
 
 
bayesian_regression = BayesianRidge()
 
 
<font color = green># обучение</font>
 
bayesian_regression.fit(train_X, train_y)
 
 
<font color = green># предсказание результата</font>
 
''print''(bayesian_regression.predict(test_X))
 
 
<font color = green># вывод точности предсказания</font>
 
''print''(bayesian_regression.score(test_X, test_y))
 
  
Точность предсказания для данного датасета и параметров:
+
Из оценки макимального правдоподобия мы получили оценку по методу наименьших квадратов.
<font color = green>>>></font> 0.8170548749907206
 
  
 
==Логическая регрессия==
 
==Логическая регрессия==
'''Логическая регрессия''' (англ. ''logic regression'') {{---}} обобщенный метод регрессии, применяемый в основном в случае, когда независимые переменные имеют двоичную природу (при этом зависимая переменная не обязательно двоичная). Задачей логической регрессии является определение независимых переменных, которые могут быть выражены как результат вычисления [[Определение булевой функции|булевой функции]] от других независимых переменных.
+
Частный случай логистической регрессии, когда все переменные имеют двоичную природу.
 
 
Обычно в методах регрессии не учитывается связь между переменными. Предполагается, что влияние каждой переменной на результат не зависит от значений других переменных. Однако это предположение зачастую неверно.
 
 
 
Пусть <tex>x_1, x_2, \dots, x_k</tex> {{---}} двоичные независимые переменные, и пусть <tex>y</tex> {{---}} зависимая переменная. Будем пытаться натренировать модели регрессии вида <tex>g(E(y)) = b_0 + b_1 L_1 + \dots + b_n L_n</tex>, где <tex>L_j</tex> {{---}} булева функция от переменных <tex>x_i</tex> (например <tex>L_j = (x_2 \lor \overline{x_4}) \land x_7</tex>).
 
Для каждого типа модели необходимо определить функцию, которая отражает качество рассматриваемой модели. Например, для линейной регрессии такой функцией может быть остаточная сумма квадратов. Целью метода логической регрессии является минимизация выбранной функции качества посредством настройки параметров <tex>b_j</tex> одновременно с булевыми выражениями <tex>L_j</tex>.
 
 
 
[[Файл: Logic_tree_moves.jpg|400px|thumb|Рис.3. Допустимые действия в процессе роста дерева.<br/>Элементы, появившиеся в результате применения операции, выделены черным фоном.]]
 
 
 
Может показаться не совсем понятным, как же применить регрессию к булевым выражениям. Рассмотрим в общих чертах алгоритм логической регрессии.
 
Логическая регрессия, как и другие методы регрессии, перебирает различные выражения в попытках минимизировать функцию потерь. Для <tex>k</tex> переменных можно составить <tex>2^{2^k}</tex> различных выражений. Нужно найти более эффективный метод для поиска наилучшего выражения, чем простой перебор всех вариантов.
 
 
 
Любое логическое выражение можно представить в виде дерева, где в узлах расположены операции, а листья представляют собой переменные. Будем называть такие деревья '''логическими деревьями''' (англ. ''logic trees''). Будем называть '''соседями''' (англ. ''neighbours'') логического дерева такие деревья, которые могут быть получены из него за один шаг. Допустимые шаги проиллюстрированы на рисунке 3.
 
 
 
Рассмотрим самый простой алгоритм поиска наилучшего дерева {{---}} '''жадный поиск''' (англ. ''greedy search'').
 
# В качестве стартового дерева выберем одну переменную, которая дает минимальное значение функции потерь среди всех остальных переменных.
 
# Перебираем соседей текущего дерева и выбираем такое, что оно уменьшает значение функции потерь по сравнению с текущим, а также дает наименьший результат среди остальных соседей.
 
# Если такого дерева не существует, алгоритм завершается. Если оно все же есть, выбираем его в качестве текущего и повторяем второй шаг.
 
 
 
Этот алгоритм склонен к переобучению, а также в некоторых ситуациях может остановиться преждевременно, так и не дойдя до наилучшего дерева. Существует также алгоритм под названием '''имитация отжига''' (англ. ''simulated annealing'') который показывает лучшие результаты, чем описанный жадный поиск.
 
  
 
==См. также==
 
==См. также==
Строка 255: Строка 139:
 
* [http://www.machinelearning.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F_%28%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%29 machinelearning.ru {{---}} Линейная регрессия (пример)]
 
* [http://www.machinelearning.ru/wiki/index.php?title=%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F_%28%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%29 machinelearning.ru {{---}} Линейная регрессия (пример)]
 
* [http://www.machinelearning.ru/wiki/index.php?title=%D0%A0%D0%B8%D0%B4%D0%B6-%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F machinelearning.ru {{---}} Ридж-регрессия]
 
* [http://www.machinelearning.ru/wiki/index.php?title=%D0%A0%D0%B8%D0%B4%D0%B6-%D1%80%D0%B5%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B8%D1%8F machinelearning.ru {{---}} Ридж-регрессия]
 +
* [https://ru.wikipedia.org/wiki/%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BA%D0%BE%D0%BB%D0%BB%D0%B8%D0%BD%D0%B5%D0%B0%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C Wikipedia {{---}} Мультиколлинеарность]
 
* [http://www.ccas.ru/voron/download/Regression.pdf Лекции по алгоритмам восстановления регрессии К. В. Воронцов]
 
* [http://www.ccas.ru/voron/download/Regression.pdf Лекции по алгоритмам восстановления регрессии К. В. Воронцов]
* [https://towardsdatascience.com/ridge-and-lasso-regression-a-complete-guide-with-python-scikit-learn-e20e34bcbf0b Ridge and Lasso Regression: A Complete Guide with Python Scikit-Learn]
 
 
* [https://habr.com/ru/company/ods/blog/322076/ Habr {{---}} Базовые принципы машинного обучения на примере линейной регрессии]
 
* [https://habr.com/ru/company/ods/blog/322076/ Habr {{---}} Базовые принципы машинного обучения на примере линейной регрессии]
* [http://kooperberg.fhcrc.org/logic/documents/documents.html Documents on Logic Regression]
+
 
  
 
[[Категория: Машинное обучение]]
 
[[Категория: Машинное обучение]]
 
[[Категория: Регрессия]]
 
[[Категория: Регрессия]]

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: