MLPRegressor
- classsklearn.neural_network.MLPRegressor(loss='squared_error', hidden_layer_sizes=(100,), activation='relu', *, solver='adam', alpha=0.0001, batch_size='auto', learning_rate='constant', learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10, max_fun=15000)[исходный код]
-
Регрессор многослойного перцептрона.
Эта модель оптимизирует среднеквадратичную ошибку с помощью LBFGS или стохастического градиентного спуска.
Добавлено в версии 0.18.
- Параметры:
-
- loss{‘squared_error’, ‘poisson’}, default=’squared_error’
-
Функция потерь, используемая при обучении весов. Обратите внимание, что функции потерь «squared error» и «poisson» фактически реализуют «half squares error» и «half poisson deviance», чтобы упростить вычисление градиента. Кроме того, функция потерь «poisson» внутри использует логарифмическую связь (экспоненциальную функцию в качестве функции активации на выходе) и требует
y >= 0.Изменено в версии 1.7: Добавлен параметр
lossи вариант ‘poisson’. - hidden_layer_sizesarray-like of shape(n_layers - 2,), default=(100,)
-
i-й элемент представляет количество нейронов в i-м скрытом слое.
- activation{‘identity’, ‘logistic’, ‘tanh’, ‘relu’}, default=’relu’
-
Функция активации для скрытого слоя.
- ‘identity’ — функция активации без операции, полезная для реализации линейного узкого места; возвращает f(x) = x
- ‘logistic’ — логистическая сигмоидальная функция; возвращает f(x) = 1 / (1 + exp(-x)).
- ‘tanh’ — гиперболический тангенс; возвращает f(x) = tanh(x).
- ‘relu’ — функция линейного выпрямления; возвращает f(x) = max(0, x)
- solver{‘lbfgs’, ‘sgd’, ‘adam’}, default=’adam’
-
Алгоритм оптимизации весов.
- ‘lbfgs’ — оптимизатор из семейства квазиньютоновских методов.
- ‘sgd’ — стохастический градиентный спуск.
- ‘adam’ — стохастический оптимизатор на основе градиента, предложенный Кингмой, Дидериком и Джимми Ба.
Сравнение оптимизатора Adam и SGD см. в разделе Сравнение стратегий стохастического обучения для MLPClassifier.
Примечание. Алгоритм ‘adam’ по умолчанию хорошо работает на относительно больших наборах данных (с тысячами обучающих образцов или более) как с точки зрения времени обучения, так и оценки на валидационной выборке. Однако на небольших наборах данных ‘lbfgs’ может сходиться быстрее и показывать лучшие результаты.
- alphafloat, default=0.0001
-
Сила члена L2-регуляризации. При добавлении к функции потерь член L2-регуляризации делится на размер выборки.
- batch_sizeint, default=’auto’
-
Размер мини-пакетов для стохастических оптимизаторов. Если solver — ‘lbfgs’, регрессор не использует мини-пакеты. Если задано значение “auto”,
batch_size=min(200, n_samples). - learning_rate{‘constant’, ‘invscaling’, ‘adaptive’}, default=’constant’
-
Расписание изменения скорости обучения при обновлении весов.
- ‘constant’ — постоянная скорость обучения, заданная параметром ‘learning_rate_init’.
- ‘invscaling’ — постепенно уменьшает скорость обучения
learning_rate_на каждом шаге времени ‘t’, используя показатель обратного масштабирования ‘power_t’. effective_learning_rate = learning_rate_init / pow(t, power_t) - ‘adaptive’ сохраняет скорость обучения равной ‘learning_rate_init’, пока функция потерь на обучении продолжает уменьшаться. Каждый раз, когда на протяжении двух последовательных эпох функция потерь на обучении не уменьшается как минимум на tol или оценка на валидационной выборке не увеличивается как минимум на tol (если включён параметр ‘early_stopping’), текущая скорость обучения делится на 5.
Используется только при solver=’sgd’.
- learning_rate_initfloat, default=0.001
-
Начальная скорость обучения. Она определяет размер шага при обновлении весов. Используется только при solver=’sgd’ или ‘adam’.
- power_tfloat, default=0.5
-
Показатель для скорости обучения с обратным масштабированием. Используется при обновлении эффективной скорости обучения, когда для learning_rate задано значение ‘invscaling’. Используется только при solver=’sgd’.
- max_iterint, default=200
-
Максимальное количество итераций. Алгоритм выполняет итерации до сходимости (определяемой параметром ‘tol’) или до достижения этого количества итераций. Для стохастических алгоритмов (‘sgd’, ‘adam’) обратите внимание, что этот параметр задаёт количество эпох (сколько раз будет использована каждая точка данных), а не количество шагов градиентного спуска.
- shufflebool, default=True
-
Следует ли перемешивать образцы на каждой итерации. Используется только при solver=’sgd’ или ‘adam’.
- random_stateint, RandomState instance, default=None
-
Определяет генерацию случайных чисел для инициализации весов и смещений, разделения данных на обучающую и тестовую выборки при использовании ранней остановки, а также выборки пакетов при solver=’sgd’ или ‘adam’. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий.
- tolfloat, default=1e-4
-
Допуск для оптимизации. Если функция потерь или оценка не улучшается как минимум на
tolв течениеn_iter_no_changeпоследовательных итераций, а параметруlearning_rateне задано значение ‘adaptive’, считается, что сходимость достигнута, и обучение останавливается. - verbosebool, default=False
-
Следует ли выводить сообщения о ходе выполнения в stdout.
- warm_startbool, default=False
-
Если задано значение True, решение предыдущего вызова fit используется как начальное приближение; в противном случае предыдущее решение просто удаляется. См. глоссарий.
- momentumfloat, default=0.9
-
Импульс для обновления градиентного спуска. Должен находиться в диапазоне от 0 до 1. Используется только при solver=’sgd’.
- nesterovs_momentumbool, default=True
-
Следует ли использовать импульс Нестерова. Используется только при solver=’sgd’ и momentum > 0.
- early_stoppingbool, default=False
-
Следует ли использовать раннюю остановку, чтобы завершить обучение, если оценка на валидационной выборке не улучшается. Если задано значение True,
validation_fractionобучающих данных автоматически выделяется для проверки, а обучение завершается, если оценка на валидационной выборке не улучшается как минимум наtolв течениеn_iter_no_changeпоследовательных эпох. Применяется только при solver=’sgd’ или ‘adam’. - validation_fractionfloat, default=0.1
-
Доля обучающих данных, выделяемая для валидационной выборки при ранней остановке. Должна находиться в диапазоне от 0 до 1. Используется только при early_stopping=True.
- beta_1float, default=0.9
-
Коэффициент экспоненциального затухания оценок вектора первого момента в алгоритме adam; должен находиться в диапазоне [0, 1). Используется только при solver=’adam’.
- beta_2float, default=0.999
-
Коэффициент экспоненциального затухания оценок вектора второго момента в алгоритме adam; должен находиться в диапазоне [0, 1). Используется только при solver=’adam’.
- epsilonfloat, default=1e-8
-
Значение для численной устойчивости в алгоритме adam. Используется только при solver=’adam’.
- n_iter_no_changeint, default=10
-
Максимальное количество эпох без улучшения как минимум на
tol. Применяется только при solver=’sgd’ или ‘adam’.Добавлено в версии 0.20.
- max_funint, default=15000
-
Используется только при solver=’lbfgs’. Максимальное количество вызовов функции. Алгоритм выполняет итерации до сходимости (определяемой параметром
tol), достижения количества итераций max_iter или достижения этого количества вызовов функции. Обратите внимание, что количество вызовов функции для MLPRegressor будет не меньше количества итераций.Добавлено в версии 0.22.
- Атрибуты:
-
- loss_float
-
Текущее значение функции потерь, вычисленное с помощью функции потерь.
- best_loss_float
-
Минимальное значение функции потерь, достигнутое алгоритмом во время обучения. Если
early_stopping=True, этому атрибуту присваиваетсяNone. Вместо него используйте обученный атрибутbest_validation_score_. Доступен только при solver=’sgd’ или ‘adam’. -
loss_curve_list of shape (
n_iter_,) -
Значение функции потерь, вычисленное в конце каждого шага обучения. i-й элемент списка представляет значение функции потерь на i-й итерации. Доступен только при solver=’sgd’ или ‘adam’.
-
validation_scores_list of shape (
n_iter_,) or None -
Оценка на отложенной валидационной выборке на каждой итерации. В качестве оценки используется R2. Доступен только если
early_stopping=True; в противном случае атрибуту присваиваетсяNone. Доступен только при solver=’sgd’ или ‘adam’. - best_validation_score_float or None
-
Наилучшая оценка на валидационной выборке (то есть оценка R2), при которой сработала ранняя остановка. Доступен только если
early_stopping=True; в противном случае атрибуту присваиваетсяNone. Доступен только при solver=’sgd’ или ‘adam’. - t_int
-
Количество обучающих образцов, обработанных алгоритмом во время обучения. Математически равно
n_iters * X.shape[0], то есть означаетtime_stepи используется планировщиком скорости обучения оптимизатора. - coefs_list of shape (n_layers - 1,)
-
i-й элемент списка представляет матрицу весов, соответствующую слою i.
- intercepts_list of shape (n_layers - 1,)
-
i-й элемент списка представляет вектор смещений, соответствующий слою i + 1.
- n_features_in_int
-
Количество признаков, обнаруженных во время fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Названия признаков, обнаруженных во время fit. Определяется, только если
Xсодержит названия признаков, представленные строками.Добавлено в версии 1.0.
- n_iter_int
-
Количество итераций, выполненных алгоритмом.
- n_layers_int
-
Количество слоёв.
- n_outputs_int
-
Количество выходов.
- out_activation_str
-
Название выходной функции активации.
См. также
BernoulliRBM-
Ограниченная машина Больцмана Бернулли (RBM).
MLPClassifier-
Классификатор на основе многослойного перцептрона.
sklearn.linear_model.SGDRegressor-
Линейная модель, обученная путём минимизации регуляризованной эмпирической функции потерь с помощью SGD.
Примечания
MLPRegressor обучается итеративно, поскольку на каждом временном шаге вычисляются частные производные функции потерь по параметрам модели, чтобы обновить эти параметры.
К функции потерь также может добавляться член регуляризации, который уменьшает значения параметров модели и предотвращает переобучение.
Эта реализация работает с данными, представленными плотными и разреженными массивами numpy со значениями с плавающей точкой.
Литература
Хинтон, Джеффри Э. «Процедуры коннекционистского обучения». Artificial intelligence 40.1 (1989): 185–234.
Глоро, Ксавье и Ёшуа Бенджио. «Понимание трудностей обучения глубоких нейронных сетей прямого распространения». International Conference on Artificial Intelligence and Statistics. 2010.
Кингма, Дидерик и Джимми Ба (2014). «Adam: метод стохастической оптимизации».
Примеры
>>> from sklearn.neural_network import MLPRegressor >>> from sklearn.datasets import make_regression >>> from sklearn.model_selection import train_test_split >>> X, y = make_regression(n_samples=200, n_features=20, random_state=1) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, ... random_state=1) >>> regr = MLPRegressor(random_state=1, max_iter=2000, tol=0.1) >>> regr.fit(X_train, y_train) MLPRegressor(max_iter=2000, random_state=1, tol=0.1) >>> regr.predict(X_test[:2]) array([ 28.98, -291]) >>> regr.score(X_test, y_test) 0.98
- fit(X, y, sample_weight=None)[исходный код]
-
Обучить модель на матрице данных X и целевом значении (значениях) y.
- Параметры:
-
- Xndarray or sparse matrix of shape (n_samples, n_features)
-
Входные данные.
- yndarray of shape (n_samples,) or (n_samples, n_outputs)
-
Целевые значения (метки классов при классификации, вещественные числа при регрессии).
- sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов.
Добавлено в версии 1.7.
- Возвращает:
-
- selfobject
-
Возвращает обученную модель MLP.
- get_metadata_routing()[исходный код]
-
Получить настройки маршрутизации метаданных для этого объекта.
О том, как работает механизм маршрутизации, см. Руководство пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, default=True
-
Если True, возвращает параметры этого оценщика и содержащихся в нём подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- partial_fit(X, y, sample_weight=None)[исходный код]
-
Обновить модель, выполнив одну итерацию по заданным данным.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные данные.
- yndarray of shape (n_samples,)
-
Целевые значения.
- sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов.
Добавлено в версии 1.6.
- Возвращает:
-
- selfobject
-
Обученная модель MLP.
- predict(X)[исходный код]
-
Выполнить прогноз с помощью модели многослойного перцептрона.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- yndarray of shape (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.- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Тестовые образцы. Для некоторых оценщиков здесь может передаваться предварительно вычисленная матрица ядра или список объектов общего назначения с формой
(n_samples, n_samples_fitted), гдеn_samples_fitted— количество образцов, использованных при обучении оценщика. - yarray-like of shape (n_samples,) or (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like of shape (n_samples,), default=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
Оценка \(R^2\) для
self.predict(X)относительноy.
Примечания
При вызове
scoreдля регрессора используется оценка \(R^2\) сmultioutput='uniform_average'начиная с версии 0.23, чтобы она соответствовала значению по умолчанию дляr2_score. Это влияет на методscoreвсех регрессоров с несколькими выходами (за исключениемMultiOutputRegressor).
- set_fit_request( * Разделитель параметров только по ключевому слову (PEP 3102), sample_weight:bool|None|str='$UNCHANGED$') MLPRegressor[исходный код]
-
Настроить, следует ли запрашивать передачу метаданных в метод
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, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_params(**params)[исходный код]
-
Задать параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (например,
Pipeline). Параметры последних имеют формат<component>__<parameter>, позволяющий обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценщика.
- set_partial_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') MLPRegressor[исходный код]
-
Настройка запроса на передачу метаданных методу
partial_fit.Обратите внимание, что этот метод имеет значение только тогда, когда данный оцениватель используется как подоцениватель в составе метаоценивателя и включена маршрутизация метаданных с помощью
enable_metadata_routing=True(см.sklearn.set_config). Подробнее о работе механизма маршрутизации см. в Руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: запрашиваются метаданные, и при наличии передаются вpartial_fit. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не будет передавать их вpartial_fit. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для других.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвpartial_fit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') MLPRegressor[исходный код]
-
Настройка запроса на передачу метаданных методу
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.neural_network.MLPRegressor.html