SGDClassifier
- classsklearn.linear_model.SGDClassifier(loss='hinge', *, penalty='l2', alpha=0.0001, l1_ratio=0.15, fit_intercept=True, max_iter=1000, tol=0.001, shuffle=True, verbose=0, epsilon=0.1, n_jobs=None, random_state=None, learning_rate='optimal', eta0=0.01, power_t=0.5, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, class_weight=None, warm_start=False, average=False)[исходный код]
-
Линейные классификаторы (SVM, логистическая регрессия и т. д.) с обучением методом SGD.
Этот оцениватель реализует регуляризованные линейные модели, обучаемые методом стохастического градиентного спуска (SGD): градиент функции потерь оценивается по одному образцу за раз, а модель обновляется по ходу обучения с убывающим коэффициентом (также называемым скоростью обучения). SGD позволяет обучаться на мини-пакетах (в режиме онлайн или вне основной памяти) с помощью метода
partial_fit. Для достижения наилучших результатов при использовании расписания скорости обучения по умолчанию данные должны иметь нулевое среднее и единичную дисперсию.Эта реализация работает с данными, представленными в виде плотных или разреженных массивов значений с плавающей точкой для признаков. Обучаемую модель можно настраивать с помощью параметра loss; по умолчанию обучается линейная машина опорных векторов (SVM).
Регуляризатор — это штраф, добавляемый к функции потерь, который сжимает параметры модели в направлении нулевого вектора, используя евклидову норму L2 в квадрате, абсолютную норму L1 или их комбинацию (Elastic Net). Если из-за регуляризатора обновление параметра пересекает значение 0.0, обновление усекается до 0.0, что позволяет обучать разреженные модели и выполнять отбор признаков в режиме онлайн.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- loss{‘hinge’, ‘log_loss’, ‘modified_huber’, ‘squared_hinge’, ‘perceptron’, ‘squared_error’, ‘huber’, ‘epsilon_insensitive’, ‘squared_epsilon_insensitive’}, default=’hinge’
-
Функция потерь, которую следует использовать.
- ‘hinge’ соответствует линейной SVM.
- ‘log_loss’ соответствует логистической регрессии — вероятностному классификатору.
- ‘modified_huber’ — ещё одна гладкая функция потерь, устойчивая к выбросам и позволяющая оценивать вероятности.
- ‘squared_hinge’ похожа на hinge, но штраф за неё задаётся квадратично.
- ‘perceptron’ — линейная функция потерь, используемая алгоритмом перцептрона.
- Остальные функции потерь — ‘squared_error’, ‘huber’, ‘epsilon_insensitive’ и ‘squared_epsilon_insensitive’ — предназначены для регрессии, но могут быть полезны и в классификации; описание см. в
SGDRegressor.
Подробнее о формулах функций потерь см. в руководстве пользователя. Визуализация функций потерь приведена в разделе SGD: выпуклые функции потерь.
- penalty{‘l2’, ‘l1’, ‘elasticnet’, None}, default=’l2’
-
Используемый штраф (также называемый членом регуляризации). По умолчанию используется ‘l2’ — стандартный регуляризатор для линейных моделей SVM. ‘l1’ и ‘elasticnet’ могут сделать модель разреженной (отбор признаков), чего нельзя достичь с помощью ‘l2’. Если задано значение
None, штраф не добавляется.Визуализацию штрафов см. в разделе SGD: штрафы.
- alphafloat, default=0.0001
-
Константа, на которую умножается член регуляризации. Чем выше значение, тем сильнее регуляризация. Также используется для вычисления скорости обучения, когда для
learning_rateзадано значение ‘optimal’. Значения должны находиться в диапазоне[0.0, inf). - l1_ratiofloat, default=0.15
-
Параметр смешивания Elastic Net, где 0 <= l1_ratio <= 1. Значение l1_ratio=0 соответствует штрафу L2, а l1_ratio=1 — L1. Используется только если
penaltyимеет значение ‘elasticnet’. Значения должны находиться в диапазоне[0.0, 1.0]или могут быть равныNone, еслиpenaltyне равноelasticnet.Изменено в версии 1.7:
l1_ratioможет быть равноNone, еслиpenaltyне равно “elasticnet”. - fit_interceptbool, default=True
-
Следует ли оценивать свободный член. Если задано False, предполагается, что данные уже центрированы.
- max_iterint, default=1000
-
Максимальное число проходов по обучающим данным (также называемых эпохами). Этот параметр влияет только на поведение метода
fit, но не методаpartial_fit. Значения должны находиться в диапазоне[1, inf).Добавлено в версии 0.19.
- tolfloat or None, default=1e-3
-
Критерий остановки. Если значение не равно None, обучение остановится, когда условие (loss > best_loss - tol) будет выполняться на протяжении
n_iter_no_changeэпох подряд. Сходимость проверяется по функции потерь на обучающей или проверочной выборке в зависимости от параметраearly_stopping. Значения должны находиться в диапазоне[0.0, inf).Добавлено в версии 0.19.
- shufflebool, default=True
-
Следует ли перемешивать обучающие данные после каждой эпохи.
- verboseint, default=0
-
Уровень подробности вывода. Значения должны находиться в диапазоне
[0, inf). - epsilonfloat, default=0.1
-
Эпсилон в функциях потерь epsilon-insensitive; используется только если
lossравно ‘huber’, ‘epsilon_insensitive’ или ‘squared_epsilon_insensitive’. Для ‘huber’ определяет порог, начиная с которого точное совпадение предсказания становится менее важным. Для epsilon-insensitive игнорируются различия между текущим предсказанием и правильной меткой, если они меньше этого порога. Значения должны находиться в диапазоне[0.0, inf). - n_jobsint, default=None
-
Число процессоров, используемых для вычисления OVA (One Versus All, «один против всех») в задачах многоклассовой классификации.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - random_stateint, RandomState instance, default=None
-
Используется для перемешивания данных, когда для
shuffleзадано значениеTrue. Передайте целое число, чтобы получать воспроизводимые результаты при нескольких вызовах функции. См. глоссарий. Целочисленные значения должны находиться в диапазоне[0, 2**32 - 1]. - learning_ratestr, default=’optimal’
-
Расписание скорости обучения:
- ‘constant’:
eta = eta0 - ‘optimal’:
eta = 1.0 / (alpha * (t + t0)), гдеt0выбирается с помощью эвристики, предложенной Леоном Ботту. - ‘invscaling’:
eta = eta0 / pow(t, power_t) - ‘adaptive’:
eta = eta0, пока функция потерь на обучающей выборке продолжает уменьшаться. Каждый раз, когда n_iter_no_change эпох подряд не удаётся уменьшить функцию потерь на обучающей выборке на tol или увеличить оценку на проверочной выборке на tol, еслиearly_stoppingравноTrue, текущая скорость обучения делится на 5. - ‘pa1’: пассивно-агрессивный алгоритм 1, см. [1]. Только с
loss='hinge'. Обновление выполняется по формулеw += eta y xсeta = min(eta0, loss/||x||**2). - ‘pa2’: пассивно-агрессивный алгоритм 2, см. [1]. Только с
loss='hinge'. Обновление выполняется по формулеw += eta y xсeta = hinge_loss / (||x||**2 + 1/(2 eta0)).
Добавлено в версии 0.20: Добавлен параметр ‘adaptive’.
Добавлено в версии 1.8: Добавлены параметры ‘pa1’ и ‘pa2’.
- ‘constant’:
- eta0float, default=0.01
-
Начальная скорость обучения для расписаний ‘constant’, ‘invscaling’ или ‘adaptive’. Значение по умолчанию — 0.01, однако обратите внимание, что eta0 не используется при заданной по умолчанию скорости обучения ‘optimal’. Значения должны находиться в диапазоне
(0.0, inf).Для PA-1 (
learning_rate=pa1) и PA-II (pa2) этот параметр задаёт агрессивность пассивно-агрессивного алгоритма; см. [1], где он обозначен как C:- Для PA-I это максимальный размер шага.
- Для PA-II он регуляризует размер шага (чем меньше
eta0, тем сильнее регуляризация).
Как правило, для PA значение
eta0должно быть небольшим, если данные зашумлены. - power_tfloat, default=0.5
-
Показатель степени для скорости обучения с обратным масштабированием. Значения должны находиться в диапазоне
[0.0, inf).Устарело с версии 1.8: Отрицательные значения для
power_tобъявлены устаревшими в версии 1.8 и вызовут ошибку в версии 1.10. Вместо них используйте значения в диапазоне [0.0, inf). - early_stoppingbool, default=False
-
Следует ли использовать раннюю остановку обучения, если оценка на проверочной выборке перестала улучшаться. Если задано значение
True, доля обучающих данных будет автоматически выделена в стратифицированную проверочную выборку, а обучение будет остановлено, если оценка на проверочной выборке, возвращаемая методомscore, не улучшается как минимум на tol в течение n_iter_no_change эпох подряд.Пример влияния ранней остановки см. в разделе Ранняя остановка стохастического градиентного спуска.
Добавлено в версии 0.20: Добавлен параметр ‘early_stopping’.
- validation_fractionfloat, default=0.1
-
Доля обучающих данных, выделяемая в проверочную выборку для ранней остановки. Значение должно быть от 0 до 1. Используется только если
early_stoppingимеет значение True. Значения должны находиться в диапазоне(0.0, 1.0).Добавлено в версии 0.20: Добавлен параметр ‘validation_fraction’.
- n_iter_no_changeint, default=5
-
Число итераций без улучшения, по истечении которого обучение останавливается. Сходимость проверяется по функции потерь на обучающей или проверочной выборке в зависимости от параметра
early_stopping. Целочисленные значения должны находиться в диапазоне[1, max_iter).Добавлено в версии 0.20: Добавлен параметр ‘n_iter_no_change’.
- class_weightdict, {class_label: weight} or “balanced”, default=None
-
Значение параметра class_weight, задаваемое по умолчанию при обучении.
Веса, связанные с классами. Если не заданы, предполагается, что вес каждого класса равен единице.
Режим “balanced” автоматически корректирует веса на основе значений y, обратно пропорционально частоте классов во входных данных, по формуле
n_samples / (n_classes * np.bincount(y)). - warm_startbool, default=False
-
Если задано значение True, результат предыдущего вызова fit повторно используется в качестве начального приближения; в противном случае предыдущий результат удаляется. См. глоссарий.
Повторный вызов fit или partial_fit при warm_start=True может привести к результату, отличающемуся от результата однократного вызова fit, из-за того, как перемешиваются данные. Если используется динамическая скорость обучения, она изменяется в зависимости от числа уже просмотренных образцов. Вызов
fitсбрасывает этот счётчик, а вызовpartial_fitувеличивает его текущее значение. - averagebool or int, default=False
-
Если задано значение
True, вычисляются усреднённые веса SGD по всем обновлениям, и результат сохраняется в атрибутеcoef_. Если задано целое число больше 1, усреднение начнётся, когда общее число просмотренных образцов достигнетaverage. Таким образом,average=10начнёт усреднение после просмотра 10 образцов. Целочисленные значения должны находиться в диапазоне[1, n_samples].
- Атрибуты:
-
- coef_ndarray of shape (1, n_features) if n_classes == 2 else (n_classes, n_features)
-
Веса, присвоенные признакам.
- intercept_ndarray of shape (1,) if n_classes == 2 else (n_classes,)
-
Константы в функции принятия решения.
- n_iter_int
-
Фактическое число итераций до достижения критерия остановки. Для многоклассового обучения это максимальное число итераций среди всех бинарных моделей.
- classes_array of shape (n_classes,)
- t_int
-
Число обновлений весов, выполненных во время обучения. Совпадает с
(n_iter_ * n_samples + 1). - n_features_in_int
-
Число признаков, полученных при вызове fit.
Добавлено в версии 0.24.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Названия признаков, полученные при вызове fit. Определяется только если
Xсодержит названия признаков, представленные строками.Добавлено в версии 1.0.
См. также
sklearn.svm.LinearSVC-
Линейная классификация с помощью метода опорных векторов.
LogisticRegression-
Логистическая регрессия.
Perceptron-
Наследуется от SGDClassifier.
Perceptron()эквивалентенSGDClassifier(loss="perceptron", eta0=1, learning_rate="constant", penalty=None).
Список литературы
[1] (1,2)Онлайн-алгоритмы пассивно-агрессивного обучения <http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf> K. Crammer, O. Dekel, J. Keshat, S. Shalev-Shwartz, Y. Singer — JMLR (2006)
Примеры
>>> import numpy as np >>> from sklearn.linear_model import SGDClassifier >>> from sklearn.preprocessing import StandardScaler >>> from sklearn.pipeline import make_pipeline >>> X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]]) >>> Y = np.array([1, 1, 2, 2]) >>> # Always scale the input. The most convenient way is to use a pipeline. >>> clf = make_pipeline(StandardScaler(), ... SGDClassifier(max_iter=1000, tol=1e-3)) >>> clf.fit(X, Y) Pipeline(steps=[('standardscaler', StandardScaler()), ('sgdclassifier', SGDClassifier())]) >>> print(clf.predict([[-0.8, -1]])) [1]- decision_function(X)[исходный код]
-
Предсказывает оценки уверенности для образцов.
Оценка уверенности для образца пропорциональна знаковому расстоянию этого образца до гиперплоскости.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Матрица данных, для которых требуется получить оценки уверенности.
- Возвращает:
-
- scoresndarray of shape (n_samples,) or (n_samples, n_classes)
-
Оценки уверенности для каждой комбинации
(n_samples, n_classes). В бинарном случае оценка уверенности дляself.classes_[1], где значение >0 означает, что будет предсказан этот класс.
- densify()[исходный код]
-
Преобразует матрицу коэффициентов в формат плотного массива.
Преобразует атрибут
coef_обратно в numpy.ndarray. Это формат по умолчанию дляcoef_, необходимый для обучения, поэтому вызывать этот метод нужно только для моделей, которые ранее были преобразованы в разреженный формат; в остальных случаях вызов ничего не делает.- Возвращает:
-
- self
-
Обученный оцениватель.
- fit(X, y, coef_init=None, intercept_init=None, sample_weight=None)[исходный код]
-
Обучает линейную модель методом стохастического градиентного спуска.
- Параметры:
-
- X{array-like, sparse matrix}, shape (n_samples, n_features)
-
Обучающие данные.
- yndarray of shape (n_samples,)
-
Целевые значения.
- coef_initndarray of shape (n_classes, n_features), default=None
-
Начальные коэффициенты для продолжения оптимизации.
- intercept_initndarray of shape (n_classes,), default=None
-
Начальное значение свободного члена для продолжения оптимизации.
- sample_weightarray-like, shape (n_samples,), default=None
-
Веса отдельных образцов. Если не заданы, предполагаются равномерные веса. Если задан class_weight, эти веса будут умножены на class_weight, переданный конструктору.
- Возвращает:
-
- selfobject
-
Возвращает экземпляр self.
- get_metadata_routing()[исходный код]
-
Возвращает маршрутизацию метаданных этого объекта.
Описание работы механизма маршрутизации см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Возвращает параметры этого оценивателя.
- Параметры:
-
- deepbool, default=True
-
Если True, будут возвращены параметры этого оценивателя и содержащихся в нём объектов-оценивателей.
- Возвращает:
-
- paramsdict
-
Имена параметров и соответствующие им значения.
- partial_fit(X, y, classes=None, sample_weight=None)[исходный код]
-
Выполняет одну эпоху стохастического градиентного спуска на заданных образцах.
Внутри этот метод использует
max_iter = 1. Поэтому нет гарантии, что после однократного вызова будет достигнут минимум функции стоимости. Пользователь должен самостоятельно обрабатывать такие аспекты, как сходимость целевой функции, ранняя остановка и настройка скорости обучения.- Параметры:
-
- X{array-like, sparse matrix}, shape (n_samples, n_features)
-
Подмножество обучающих данных.
- yndarray of shape (n_samples,)
-
Подмножество целевых значений.
- classesndarray of shape (n_classes,), default=None
-
Классы для всех вызовов partial_fit. Их можно получить с помощью
np.unique(y_all), где y_all — целевой вектор всего набора данных. Этот аргумент обязателен при первом вызове partial_fit и может быть опущен при последующих вызовах. Обратите внимание: y не обязательно должен содержать все метки изclasses. - sample_weightarray-like, shape (n_samples,), default=None
-
Веса отдельных образцов. Если не заданы, предполагаются равномерные веса.
- Возвращает:
-
- selfobject
-
Возвращает экземпляр self.
- predict(X)[исходный код]
-
Предсказывает метки классов для образцов из X.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Матрица данных, для которых требуется получить предсказания.
- Возвращает:
-
- y_predndarray of shape (n_samples,)
-
Вектор с метками классов для каждого образца.
- predict_log_proba(X)[исходный код]
-
Логарифмы оценок вероятности.
Этот метод доступен только для функции потерь log loss и modified Huber.
При loss=”modified_huber” оценки вероятности могут принимать точные значения нуля и единицы, поэтому вычислить их логарифм невозможно.
Подробнее см.
predict_proba.- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Входные данные для предсказания.
- Возвращает:
-
- Tarray-like, shape (n_samples, n_classes)
-
Возвращает логарифм вероятности образца для каждого класса модели; классы упорядочены так же, как в
self.classes_.
- predict_proba(X)[исходный код]
-
Оценки вероятностей.
Этот метод доступен только для функции потерь log loss и modified Huber loss.
Оценки вероятностей для нескольких классов получают из оценок для бинарной классификации (один против остальных) путем простой нормализации, как рекомендовано Zadrozny и Elkan.
Оценки вероятностей для бинарной классификации при loss=”modified_huber” вычисляются по формуле (clip(decision_function(X), -1, 1) + 1) / 2. Для остальных функций потерь необходимо выполнить надлежащую калибровку вероятностей, обернув классификатор в
CalibratedClassifierCV.- Параметры:
-
- X{array-like, sparse matrix}, shape (n_samples, n_features)
-
Входные данные для предсказания.
- Возвращает:
-
- ndarray формы (n_samples, n_classes)
-
Возвращает вероятность принадлежности образца к каждому классу модели; классы упорядочены так же, как в
self.classes_.
Список литературы
Zadrozny и Elkan, «Преобразование оценок классификатора в оценки вероятностей для нескольких классов», SIGKDD’02, https://dl.acm.org/doi/pdf/10.1145/775047.775151
Обоснование формулы для случая loss=”modified_huber” приведено в приложении B работы: http://jmlr.csail.mit.edu/papers/volume2/zhang02c/zhang02c.pdf
- score(X, y, sample_weight=None)[исходный код]
-
Возвращает точность на переданных данных и метках.
В многометочной классификации это точность по подмножеству — строгая метрика, поскольку для каждого образца необходимо правильно предсказать весь набор меток.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Тестовые образцы.
- yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
Средняя точность
self.predict(X)относительноy.
- set_fit_request(*, coef_init:bool|None|str='$UNCHANGED$', intercept_init:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') SGDClassifier[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
fit.Обратите внимание: этот метод имеет значение только тогда, когда данный оцениватель используется как подоцениватель внутри метаоценивателя, а маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Описание работы механизма маршрутизации см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вfit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не передает их вfit. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для некоторых параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- coef_initstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
coef_initвfit. - intercept_initstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
intercept_initвfit. - sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- set_params(**params)[исходный код]
-
Задает параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). У последних параметры имеют формат<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- set_partial_fit_request(*, classes:bool|None|str='$UNCHANGED$', sample_weight:bool|None|str='$UNCHANGED$') SGDClassifier[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
partial_fit.Обратите внимание: этот метод имеет значение только тогда, когда данный оцениватель используется как подоцениватель внутри метаоценивателя, а маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Описание работы механизма маршрутизации см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вpartial_fit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не передает их вpartial_fit. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для некоторых параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- classesstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
classesвpartial_fit. - sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвpartial_fit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') SGDClassifier[исходный код]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
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
-
Обновленный объект.
-
- sparsify()[исходный код]
-
Преобразует матрицу коэффициентов в разреженный формат.
Преобразует атрибут
coef_в матрицу scipy.sparse, которая для моделей с L1-регуляризацией может быть значительно эффективнее обычного представления numpy.ndarray с точки зрения использования памяти и объема хранения.Атрибут
intercept_не преобразуется.Предупреждение
Этот метод не поддерживается для оценивателей, обученных с входными данными Array API (то есть когда
sklearn.config_contextиспользуется сarray_api_dispatch=True). Вызов может завершиться успешно, однако последующие вызовыpredictи других методов, принимающих массивы, могут вызвать ошибку или вернуть неожиданный результат.- Возвращает:
-
- self
-
Обученный оцениватель.
Примечания
Для моделей, не являющихся разреженными, то есть когда в
coef_мало нулей, этот метод может фактически увеличить расход памяти, поэтому используйте его с осторожностью. Как правило, количество нулевых элементов, которое можно вычислить с помощью(coef_ == 0).sum(), должно превышать 50 %, чтобы метод обеспечивал значительные преимущества.После вызова этого метода дальнейшее обучение методом partial_fit (если оно применимо) будет невозможно, пока вы не вызовете densify.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.linear_model.SGDClassifier.html