Линейная регрессия
- classsklearn.linear_model.LinearRegression(*, fit_intercept=True, copy_X=True, tol=1e-06, n_jobs=None, positive=False)[исходный код]
-
Линейная регрессия методом наименьших квадратов.
LinearRegression подбирает линейную модель с коэффициентами w = (w1, …, wp), минимизируя сумму квадратов остатков между наблюдаемыми целевыми значениями в наборе данных и значениями, предсказанными линейным приближением.
- Параметры:
-
- fit_interceptbool, по умолчанию=True
-
Вычислять ли свободный член для этой модели. Если задано значение False, свободный член не будет использоваться в вычислениях (то есть предполагается, что данные центрированы).
- copy_Xbool, по умолчанию=True
-
Если True, X будет скопирован; в противном случае он может быть перезаписан.
- tolfloat, по умолчанию=1e-6
-
Точность решения (
coef_) определяется параметромtol, задающим критерий сходимости используемого решателя. При обучении на разреженных данныхtolзадаётся какatolиbtolфункцииscipy.sparse.linalg.lsqr. При обучении на плотных данныхtolзадаётся какcondфункцииscipy.linalg.lstsq.Добавлено в версии 1.7.
Изменено в версии 1.9: Теперь поддерживается для плотных данных и интерпретируется как параметр
cond. - n_jobsint, по умолчанию=None
-
Количество заданий для вычислений. Ускорение достигается только при достаточно больших задачах, то есть если, во-первых,
n_targets > 1, а во-вторых,Xявляется разреженным, либо еслиpositiveзадано равнымTrue.Noneозначает 1, если только не используется контекстjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - positivebool, по умолчанию=False
-
Если задано значение
True, коэффициенты принудительно принимают положительные значения. Эта возможность поддерживается только для плотных массивов.Сравнение линейной регрессионной модели с положительными ограничениями на коэффициенты регрессии и линейной регрессии без таких ограничений см. в разделе Метод наименьших квадратов с неотрицательными ограничениями.
Добавлено в версии 0.24.
- Атрибуты:
-
- coef_массив формы (n_features, ) или (n_targets, n_features)
-
Оценённые коэффициенты задачи линейной регрессии. Если при обучении передано несколько целевых значений (y двумерный), это двумерный массив формы (n_targets, n_features); если передано только одно целевое значение, это одномерный массив длины n_features.
- rank_int
-
Ранг матрицы
X. Доступен только еслиXявляется плотной матрицей. - singular_массив формы (min(X, y),)
-
Сингулярные значения
X. Доступны только еслиXявляется плотной матрицей. - intercept_float или массив формы (n_targets,)
-
Свободный член линейной модели. Равен 0.0, если
fit_intercept = False. - n_features_in_int
-
Количество признаков, полученных при обучении.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, полученные при обучении. Определяется только если
Xсодержит названия признаков, представленные строками.Добавлено в версии 1.0.
См. также
Ridge-
Гребневая регрессия решает некоторые проблемы метода наименьших квадратов, накладывая штраф на величину коэффициентов с помощью регуляризации l2.
Lasso-
Lasso — линейная модель, оценивающая разреженные коэффициенты с помощью регуляризации l1.
ElasticNet-
Elastic-Net — линейная регрессионная модель, обученная с регуляризацией коэффициентов по нормам l1 и l2.
Примечания
С точки зрения реализации это просто обычный метод наименьших квадратов (
scipy.linalg.lstsq) или метод наименьших квадратов с неотрицательными ограничениями (scipy.optimize.nnls), оформленный в виде объекта-предиктора.Примеры
>>> import numpy as np >>> from sklearn.linear_model import LinearRegression >>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]]) >>> # y = 1 * x_0 + 2 * x_1 + 3 >>> y = np.dot(X, np.array([1, 2])) + 3 >>> reg = LinearRegression().fit(X, y) >>> reg.score(X, y) 1.0 >>> reg.coef_ array([1., 2.]) >>> reg.intercept_ np.float64(3.0) >>> reg.predict(np.array([[3, 5]])) array([16.])
- fit(X, y, sample_weight=None)[исходный код]
-
Обучить линейную модель.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные.
- yмассивоподобный объект формы (n_samples,) или (n_samples, n_targets)
-
Целевые значения. При необходимости будут приведены к типу данных X.
- sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Индивидуальные веса для каждого образца.
Добавлено в версии 0.17: добавлена поддержка параметра sample_weight в LinearRegression.
- Возвращает:
-
- selfobject
-
Обученный оцениватель.
- get_metadata_routing()[исходный код]
-
Получить настройки маршрутизации метаданных этого объекта.
Описание работы механизма маршрутизации см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, будут возвращены параметры этого оценивателя и содержащихся в нём подобъектов, являющихся оценивателями.
- Возвращает:
-
- paramsdict
-
Названия параметров и соответствующие им значения.
- predict(X)[исходный код]
-
Выполнить предсказание с помощью линейной модели.
- Параметры:
-
- Xмассивоподобный объект или разреженная матрица формы (n_samples, n_features)
-
Образцы.
- Возвращает:
-
- Cndarray формы (n_samples,) или (n_samples, n_outputs)
-
Предсказанные значения.
- score(X, y, sample_weight=None)[исходный код]
-
Возвращает коэффициент детерминации для тестовых данных.
Коэффициент детерминации \(R^2\) определяется как \((1 - \frac{u}{v})\), где \(u\) — сумма квадратов остатков
((y_true - y_pred)** 2).sum(), а \(v\) — общая сумма квадратов((y_true - y_true.mean()) ** 2).sum(). Наилучшее возможное значение оценки равно 1.0; она также может быть отрицательной (поскольку модель может работать сколь угодно хуже). Постоянная модель, всегда предсказывающая ожидаемое значениеyбез учёта входных признаков, получит оценку \(R^2\), равную 0.0.- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Тестовые образцы. Для некоторых оценивателей вместо этого может использоваться предварительно вычисленная матрица ядра или список объектов общего вида формы
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество образцов, использованных при обучении оценивателя. - yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
Значение \(R^2\) для
self.predict(X)относительноy.
Примечания
При вызове
scoreдля регрессора используется оценка \(R^2\) сmultioutput='uniform_average'начиная с версии 0.23, чтобы сохранить согласованность со значением по умолчанию функцииr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (за исключениемMultiOutputRegressor).
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') LinearRegression[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
fit.Обратите внимание, что этот метод имеет смысл только тогда, когда данный оцениватель используется как подобъект-оцениватель внутри метаоценивателя и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Описание работы механизма маршрутизации см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и, если переданы, передаются вfit. Если метаданные не переданы, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не будет передавать их вfit. -
None: метаданные не запрашиваются; если пользователь передаст их, метаоцениватель вызовет ошибку. -
str: метаданные следует передать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для некоторых параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightметодаfit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[исходный код]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') LinearRegression[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных методу
score.Обратите внимание, что этот метод имеет смысл только тогда, когда данный оцениватель используется как подобъект-оцениватель внутри метаоценивателя и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Описание работы механизма маршрутизации см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и, если переданы, передаются вscore. Если метаданные не переданы, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не будет передавать их вscore. -
None: метаданные не запрашиваются; если пользователь передаст их, метаоцениватель вызовет ошибку. -
str: метаданные следует передать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для некоторых параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightметодаscore.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
Примеры галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.LinearRegression.html