Spec-Zone.ru › scikit-learn

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.

He, Kaiming, et al (2015). “Delving deep into rectifiers: Surpassing human-level performance on imagenet classification.”

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

Spec-Zone.ru

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