Spec-Zone.ru › scikit-learn

Линейная регрессия

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

Обновлённый объект.

Примеры галереи

Регрессия на главных компонентах и регрессия методом частичных наименьших квадратов

Объединение предикторов с помощью стекинга

Отображение предсказаний отдельных регрессоров и регрессора голосования

Неспособность машинного обучения выявлять причинно-следственные эффекты

Сравнение линейных байесовских регрессоров

Метод наименьших квадратов с неотрицательными коэффициентами

Метод наименьших квадратов и гребневая регрессия

Квантильная регрессия

Оценивание устойчивой линейной модели с помощью RANSAC

Подгонка устойчивого линейного оценивателя

Регрессия Тейла—Сена

Изотоническая регрессия

Разработка оценивателей, совместимых с маршрутизацией метаданных

Восстановление лица с помощью оценивателей с несколькими выходами

Визуализация предсказаний с перекрёстной проверкой

Недообучение и переобучение

Дискретизация непрерывных признаков с помощью KBinsDiscretizer

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API