sklearn.linear_model .SGDRegressor¶

Лінійна модель, встановлена ​​шляхом мінімізації регуляризованих емпіричних втрат за допомогою SGD

грессор

SGD розшифровується як стохастичний градієнтний спуск: градієнт втрат оцінюється кожним зразком за раз, і модель оновлюється по ходу з графіком зменшення сили (він же швидкість навчання).

Регулятор - це покарання, додане до функції втрат, яке зменшує параметри моделі до нульового вектора, використовуючи або квадрат евклідової норми L2, або абсолютну норму L1, або їх комбінацію (Elastic Net). Якщо оновлення параметра перетинає значення 0.0 через регулятор, оновлення скорочується до 0.0, щоб забезпечити вивчення розріджених моделей та досягти онлайн-вибору функцій.

Ця реалізація працює з даними, представленими у вигляді щільних масивів numpy із значеннями з плаваючою комою для функцій.

Детальніше читайте в Посібнику користувача .

Параметри втрата str, за замовчуванням = 'squared_loss'

Функція втрат, яку слід використовувати. Можливі значення: "квадратна_втрата", "хубер", "епсилон_нечутливий" або "квадрат

"Квадрат_збитку" відноситься до звичайних найменших квадратів, що підходять. "Huber" модифікує "squared_loss", щоб менше зосереджуватись на корекції викидів, переходячи з квадрата на лінійні втрати за відстань епсилону. "Epsilon_insensitive" ігнорує помилки менше, ніж epsilon, і є лінійним минулим; це функція втрат, яка використовується у SVR. "Квадрат_епсилон_нечутливий" - це те саме, але стає квадратом втрат після допуску епсилону.

Детальніше про формули збитків можна знайти в Посібнику користувача .

Штраф (він же термін регулювання), який повинен бути використаний. Значення за замовчуванням - «l2», що є стандартним регулятором для лінійних моделей SVM. «L1» та «elasticnet» можуть привнести в модель розрідженість (вибір функцій), недосяжну за допомогою «l2».

альфа float, за замовчуванням = 0,0001

Константа, яка множить термін регуляризації. Чим вище значення, тим сильніше регуляризація. Також використовується для обчислення швидкості навчання, якщо встановлено значення '.

l1_ratio float, за замовчуванням = 0,15

Параметр змішування Elastic Net з показником 0 - "elanetnet".

fit_intercept bool, за замовчуванням = True

Чи слід оцінювати перехоплення чи ні. Якщо значення False, дані вважаються вже відцентрованими.

max_iter int, за замовчуванням = 1000

Максимальна кількість проходів за даними тренувань (вони ж епохи). Це впливає лише на поведінку методу підгонки, а не на метод часткового_подобання.

Нове у версії 0.19.

Критерій зупинки. Якщо це не значення None, навчання припиняється, коли (loss> best_loss - tol) протягом n_iter_no_change послідовних епох.

Нове у версії 0.19.

Чи слід перемішувати дані навчання після кожної епохи.

багатослівний int, за замовчуванням = 0

Рівень багатослів'я.

епсилон float, за замовчуванням = 0,1

Епсилон у нечутливих до епсилону функціях втрат; лише в тому випадку, якщо втрата має значення "huber", "epsilon_insensitive" або "squared_epsilon_insensitive". Для "huber" визначає поріг, на якому стає менш важливим, щоб точно передбачити прогноз. Для нечутливих до епсилону будь-які відмінності між поточним передбаченням та правильною міткою ігноруються, якщо вони менше цього порогу.

random_state int, екземпляр RandomState, за замовчуванням = Немає

Використовується для перемішування даних, коли для перестановки встановлено значення True. Передайте int для відтворюваного виводу через кілька викликів функцій. Див. Глосарій .

швидкість_навчання рядок, за замовчуванням = 'invscaling'

Графік курсу навчання:

‘Константа’: eta = eta0

«Оптимальний»: eta = 1,0/(альфа * (t + t0)), де t0 вибирається евристикою, запропонованою Леоном Ботту.

‘Немасштабність’: eta = eta0/pow (t, power_t)

«Адаптивний»: eta = eta0, доки тренування постійно зменшується. Кожного разу, коли n_iter_no_change послідовні епохи не зменшують втрати тренувань на толь або не збільшують бали перевірки на толь, якщо early_stopping має значення True, поточна швидкість навчання ділиться на 5.

Нове у версії 0.20: Додана опція "адаптивна"

Початкова швидкість навчання для "постійного", "незмінного" або "адаптивного" розкладу. Значення за замовчуванням - 0,01.

power_t подвійний, за замовчуванням = 0,25

Показник для швидкості навчання із зворотним масштабуванням.

рання_зупинка bool, за замовчуванням = False

Чи використовувати ранню зупинку для припинення навчання, коли оцінка перевірки не покращується. Якщо встановити значення True, він автоматично відкладе частину навчальних даних як перевірку та припинить навчання, коли оцінка перевірки, повернута методом оцінки, не покращується щонайменше в сумі за n_iter_no_change послідовних епох.

Нове у версії 0.20: Додана опція „раннє зупинка”

Частка навчальних даних, яку слід відкласти як перевірку, встановлену для ранньої зупинки. Повинна бути від 0 до 1. Використовується лише в тому випадку, якщо early_stopping має значення True.

Нове у версії 0.20: Додана опція ‘validation_fraction’

Кількість ітерацій без покращення, на які слід чекати перед ранньою зупинкою.

Нове у версії 0.20: Додана опція „n_iter_no_change“

Якщо встановлено значення True, повторно використовуйте рішення попереднього виклику, щоб воно відповідало ініціалізації, інакше просто стерти попереднє рішення. Див. Глосарій .

Багаторазовий виклик фітнету або часткового_фіту, коли функція warm_start має значення True, може спричинити інше рішення, ніж одноразовий виклик фіту через спосіб переміщення даних. Якщо використовується динамічна швидкість навчання, швидкість навчання адаптується залежно від кількості вже побачених зразків. Виклик придатності скидає цей лічильник, тоді як частковий_фіт призведе до збільшення існуючого лічильника.

середній bool або int, за замовчуванням = False

Якщо встановлено значення True, обчислює усереднені ваги SGD по всіх оновленнях і зберігає результат в атрибуті coef_. Якщо встановити значення int більше 1, усереднення розпочнеться, як тільки загальна кількість побачених зразків досягне середнього значення. Отже, усереднення = 10 почне усереднюватись після перегляду 10 зразків.

Атрибути coef_ ndarray фігури (n_features,)

Ваги, присвоєні ознакам.

перехопити_ ndarray фігури (1,)

Термін перехоплення.

середній_коеф_ ndarray фігури (n_features,)

Середні ваги, призначені для ознак. Доступно, лише якщо середнє = True .

Не застосовується з версії 0.23: атрибут average_coef_ застарів у версії 0.23 і буде видалений через 1.0 (перейменування в 0.25).

Середній термін перехоплення. Доступно, лише якщо середнє = True .

Не застосовується з версії 0.23: атрибут average_intercept_ застарів у версії 0.23 і буде видалений через 1.0 (перейменування в 0.25).

Фактична кількість ітерацій до досягнення критерію зупинки.

t_ інт

Кількість оновлень ваги, виконаних під час тренування. Те саме, що (n_iter_ * n_samples) .