MLPRegressor
- classsklearn.neural_network.MLPRegressor(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)[source]
-
Многослойный перцептрон регрессор.
Данная модель оптимизирует среднеквадратическую ошибку с использованием LBFGS или стохастического градиентного спуска.
Добавлена в версии 0.18.
- Параметры:
-
- hidden_layer_sizesмассив-подобный формы (n_layers - 2,), по умолчанию=(100,)
-
i-ый элемент представляет количество нейронов в i-ом скрытом слое.
- activation{‘identity’, ‘logistic’, ‘tanh’, ‘relu’}, по умолчанию=’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’}, по умолчанию=’adam’
-
Решатель для оптимизации весов.
- ‘lbfgs’ — это оптимизатор из семейства квази-ньютоновских методов.
- ‘sgd’ относится к стохастическому градиентному спуску.
- ‘adam’ относится к стохастическому оптимизатору градиента, предложенному Kingma, Diederik, и Jimmy Ba
Для сравнения между оптимизатором Adam и SGD см. Сравнение стохастических стратегий обучения для MLPClassifier.
Примечание: по умолчанию решатель ‘adam’ работает довольно хорошо на относительно больших наборах данных (с тысячами и более обучающих образцов) с точки зрения времени обучения и значения валидации. Однако для небольших наборов данных ‘lbfgs’ может сходиться быстрее и показывать лучшие результаты.
- alphaвещественное число, по умолчанию=0.0001
-
Сила члена регуляризации L2. Член регуляризации L2 делится на размер выборки при добавлении к потере.
- batch_sizeцелое число, по умолчанию=’auto’
-
Размер мини-пакетов для стохастических оптимизаторов. Если решатель — ‘lbfgs’, регрессор не будет использовать мини-пакеты. При установке в «авто»,
batch_size=min(200, n_samples). - learning_rate{‘constant’, ‘invscaling’, ‘adaptive’}, по умолчанию=’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_initвещественное число, по умолчанию=0.001
-
Начальная скорость обучения, используемая. Она контролирует шаг при обновлении весов. Используется только при solver=’sgd’ или ‘adam’.
- power_tвещественное число, по умолчанию=0.5
-
Экспонента для обратного масштабирования скорости обучения. Используется при обновлении эффективной скорости обучения, когда learning_rate задана как ‘invscaling’. Используется только при solver=’sgd’.
- max_iterцелое число, по умолчанию=200
-
Максимальное количество итераций. Решатель выполняет итерации до сходимости (определяемой ‘tol’) или до этого количества итераций. Для стохастических решателей (‘sgd’, ‘adam’), обратите внимание, что это определяет количество эпох (сколько раз каждый элемент данных будет использоваться), а не количество шагов градиента.
- shuffleлогическое значение, по умолчанию=True
-
Стоит ли перемешивать примеры на каждой итерации. Используется только при solver=’sgd’ или ‘adam’.
- random_stateцелое число, экземпляр RandomState, по умолчанию=None
-
Определяет генерацию случайных чисел для инициализации весов и смещений, разделения на обучающую и тестовую выборки, если используется раннее прекращение, и выборки пакетных данных, когда solver=’sgd’ или ‘adam’. Передайте целое число для воспроизводимых результатов при нескольких вызовах функции. См. Глоссарий.
- tolвещественное число, по умолчанию=1e-4
-
Допуск для оптимизации. Когда ошибка или оценка не улучшаются как минимум на
tolзаn_iter_no_changeпоследовательные итерации, еслиlearning_rateне установлено в ‘adaptive’, считается, что достигнута сходимость, и обучение останавливается. - verboseлогическое значение, по умолчанию=False
-
Печатать ли сообщения о прогрессе в stdout.
- warm_startлогическое значение, по умолчанию=False
-
Если установлено в True, повторно использовать решение предыдущего вызова fit в качестве инициализации, в противном случае просто стереть предыдущее решение. См. Глоссарий.
- momentumвещественное число, по умолчанию=0.9
-
Момент для обновления градиентного спуска. Должно быть в диапазоне от 0 до 1. Используется только при solver=’sgd’.
- nesterovs_momentumлогическое значение, по умолчанию=True
-
Использовать ли импульс Нестерова. Используется только при solver=’sgd’ и momentum > 0.
- early_stoppingлогическое значение, по умолчанию=False
-
Использовать ли раннее прекращение, чтобы остановить обучение, когда оценка валидации не улучшается. Если установлено в True, автоматически отложит
validation_fractionобучающих данных как набор валидации и остановит обучение, когда оценка валидации не улучшится как минимум наtolв течениеn_iter_no_changeпоследовательных эпох. Эффективно только при solver=’sgd’ или ‘adam’. - validation_fractionвещественное число, по умолчанию=0.1
-
Пропорция обучающих данных, которые следует отложить как набор валидации для раннего прекращения. Должно быть в диапазоне от 0 до 1. Используется только если early_stopping=True.
- beta_1вещественное число, по умолчанию=0.9
-
Экспоненциальная скорость затухания для оценок вектора первого момента в adam, должна быть в [0, 1). Используется только при solver=’adam’.
- beta_2вещественное число, по умолчанию=0.999
-
Экспоненциальная скорость затухания для оценок вектора второго момента в adam, должна быть в [0, 1). Используется только при solver=’adam’.
- epsilonвещественное число, по умолчанию=1e-8
-
Значение для обеспечения числовой устойчивости в adam. Используется только при solver=’adam’.
- n_iter_no_changeцелое число, по умолчанию=10
-
Максимальное количество эпох без достижения
tolулучшения. Эффективно только при solver=’sgd’ или ‘adam’.Добавлена в версии 0.20.
- max_funцелое число, по умолчанию=15000
-
Используется только при solver=’lbfgs’. Максимальное количество вызовов функции. Решатель выполняет итерации до сходимости (определяется
tol), количество итераций достигает max_iter или это количество вызовов функции. Обратите внимание, что количество вызовов функции будет больше или равно количеству итераций для MLPRegressor.Добавлена в версии 0.22.
- Атрибуты:
-
- loss_float
-
Текущая потеря, вычисленная с помощью функции потерь.
- best_loss_float
-
Минимальная потеря, достигнутая решателем во время обучения. Если
early_stopping=True, это атрибут устанавливается вNone. Обратитесь к атрибутуbest_validation_score_fitted вместо этого. Доступно только при solver=’sgd’ или ‘adam’. -
loss_curve_список формы (
n_iter_,) -
Значение потери, вычисленное в конце каждого шага обучения. i-й элемент в списке представляет потерю на i-й итерации. Доступно только при solver=’sgd’ или ‘adam’.
-
validation_scores_список формы (
n_iter_,) или None -
Оценка на каждой итерации на отложенном наборе валидации. Сообщенная оценка — это оценка R2. Доступно только если
early_stopping=True, в противном случае атрибут устанавливается вNone. Доступно только при solver=’sgd’ или ‘adam’. - best_validation_score_float или None
-
Лучшая оценка валидации (т.е. оценка R2), которая спровоцировала остановку обучения по раннему прекращению. Доступно только если
early_stopping=True, в противном случае атрибут устанавливается вNone. Доступно только при solver=’sgd’ или ‘adam’. - t_int
-
Количество обучающих образцов, увиденных решателем во время обучения. Математически равно
n_iters * X.shape[0], что означаетtime_step, и используется планировщиком скорости обучения оптимизатора. - coefs_список формы (n_layers - 1,)
-
i-й элемент в списке представляет собой матрицу весов, соответствующую слою i.
- intercepts_список формы (n_layers - 1,)
-
i-й элемент в списке представляет собой вектор смещений, соответствующий слою i + 1.
- n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлена в версии 0.24.
-
feature_names_in_массив формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определяются только тогда, когда
Xимеет имена признаков, которые являются строками.Добавлена в версии 1.0.
- n_iter_int
-
Количество итераций, выполненных решателем.
- n_layers_int
-
Количество слоёв.
- n_outputs_int
-
Количество выходов.
- out_activation_str
-
Имя функции активации выхода.
См. также
BernoulliRBM-
Бернулли-RBМ.
MLPClassifier-
Классификатор многослойного перцептрона.
sklearn.linear_model.SGDRegressor-
Линейная модель, обученная с помощью метода стохастического градиентного спуска для минимизации регуляризованной эмпирической функции потерь.
Примечания
MLPRegressor обучается итеративно, поскольку на каждом шаге вычисляются частные производные функции потерь по параметрам модели для обновления параметров.
Также может быть добавлена регуляризационная составляющая к функции потерь, которая сжимает параметры модели для предотвращения переобучения.
Эта реализация работает с данными, представленными в виде плотных и разреженных массивов numpy с плавающей точкой.
Ссылки
Hinton, Geoffrey E. “Connectionist learning procedures.” Artificial intelligence 40.1 (1989): 185-234.
Glorot, Xavier, and Yoshua Bengio. “Understanding the difficulty of training deep feedforward neural networks.” International Conference on Artificial Intelligence and Statistics. 2010.
Kingma, Diederik, and Jimmy Ba (2014) “Adam: A method for stochastic optimization.”
Примеры
>>> 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..., -290...]) >>> regr.score(X_test, y_test) 0.98...
- fit(X, y)[source]
-
Обучает модель на данных X и целевых значениях y.
- Параметры:
-
- Xмассив или разреженная матрица формы (n_samples, n_features)
-
Входные данные.
- yмассив формы (n_samples,) или (n_samples, n_outputs)
-
Целевые значения (метки классов в классификации, вещественные числа в регрессии).
- Возвращает:
-
- selfобъект
-
Возвращает обученную модель MLP.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, см. Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры этого оценщика и вложенных под-объектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- partial_fit(X, y)[source]
-
Обновить модель с помощью одной итерации по заданным данным.
- Параметры:
-
- X{массив-подобный, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- yмассив формы (n_samples,)
-
Целевые значения.
- Возвращает:
-
- selfобъект
-
Обученная модель MLP.
- predict(X)[source]
-
Прогнозирование с использованием модели многослойного перцептрона.
- Параметры:
-
- X{массив-подобный, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- yмассив формы (n_samples, n_outputs)
-
Прогнозируемые значения.
-
- score(X, y, sample_weight=None)[source]
-
Возвращает коэффициент детерминации предсказания.
Коэффициент детерминации \(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,) или (n_samples, n_outputs)
-
Истинные значения для
X. - sample_weightarray-like of shape (n_samples,), по умолчанию=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
\(R^2\)
self.predict(X)по отношению кy.
Примечания
Значение \(R^2\), используемое при вызове
scoreдля регрессора, используетmultioutput='uniform_average'с версии 0.23, чтобы соответствовать значению по умолчаниюr2_score. Это влияет на методscoreвсех регрессоров с множественным выходом (кромеMultiOutputRegressor).
- set_params(**params)[source]
-
Устанавливает параметры этого оценщика.
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как
Pipeline). Последние имеют параметры вида<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') MLPRegressor[source]
-
Запрос метаданных, передаваемых методу
score.Обратите внимание, что этот метод актуален только если
enable_metadata_routing=True(см.sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.Варианты для каждого параметра:
-
True: запрашиваются метаданные и передаются вscoreпри наличии. Запрос игнорируется, если метаданные не предоставлены. -
False: метаданные не запрашиваются, и мета-оценщик не передаст их вscore. -
None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться мета-оценщику с этим псевдонимом вместо исходного имени.
По умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.Добавлен в версии 1.3.
Примечание
Этот метод актуален только в том случае, если этот оценщик используется как под-оценщик мета-оценщика, например, внутри
Pipeline. В противном случае он не имеет эффекта.- Параметры:
-
- sample_weightstr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfобъект
-
Обновленный объект.
-
Примеры из галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.neural_network.MLPRegressor.html