stochasticLinearRegression
stochasticLinearRegression
Появилась в версии v20.1
Эта функция реализует стохастическую линейную регрессию. Она поддерживает настраиваемые параметры:
- скорость обучения
- коэффициент L2-регуляризации
- размер мини-батча
Также доступны несколько методов обновления весов:
- Adam (используется по умолчанию)
- простой SGD
- Momentum
- Nesterov
Использование
Функция используется в два шага: обучение модели и предсказание на новых данных.
- Обучение
Для обучения можно использовать запрос следующего вида:
Здесь нам также нужно вставить данные в таблицу train_data.
Число параметров не фиксировано, оно зависит только от количества аргументов, переданных в linearRegressionState.
Все они должны быть числовыми значениями.
Обратите внимание, что столбец с целевой переменной (значением, которое мы хотим научиться предсказывать) передается в качестве первого аргумента.
- Предсказание
После сохранения состояния в таблицу мы можем использовать его многократно для предсказания или даже объединять с другими состояниями и создавать новые, еще более качественные модели.
Запрос вернёт столбец предсказанных значений.
Обратите внимание, что первый аргумент evalMLMethod — это объект AggregateFunctionState, далее идут столбцы признаков.
test_data — это такая же таблица, как train_data, но в ней может не быть целевого значения.
Примечания
- Чтобы объединить две модели, можно создать такой запрос:
где таблица your_models содержит обе модели.
Этот запрос вернёт новый объект AggregateFunctionState.
- Вы можете получить веса созданной модели для собственных целей без сохранения модели, если не используется комбинатор
-State.
Такой запрос обучит модель и вернет ее веса — сначала идут веса, которые соответствуют параметрам модели, последний — это свободный член (bias). Таким образом, в приведенном выше примере запрос вернет столбец с 3 значениями.
Синтаксис
Аргументы
learning_rate— Коэффициент, определяющий длину шага при выполнении шага градиентного спуска. Слишком большое значение learning rate может привести к бесконечным значениям весов модели. Значение по умолчанию —0.00001.Float64l2_regularization_coef— Коэффициент L2-регуляризации, который может помочь предотвратить переобучение. Значение по умолчанию —0.1.Float64mini_batch_size— Задаёт количество элементов, по которым будут вычислены и суммированы градиенты для выполнения одного шага градиентного спуска. Классический стохастический спуск использует один элемент, однако небольшие батчи (около 10 элементов) делают шаги по градиенту более стабильными. Значение по умолчанию —15.UInt64method— Метод обновления весов:Adam(по умолчанию),SGD,Momentum,Nesterov.MomentumиNesterovтребуют немного больше вычислений и памяти, но могут быть полезны с точки зрения скорости сходимости и устойчивости стохастических градиентных методов.const Stringtarget— Целевое значение (зависимая переменная), которое нужно научиться предсказывать. Должно быть числовым.Float*x1, x2, ...— Значения признаков (независимые переменные). Все должны быть числовыми.Float*
Возвращаемое значение
Возвращает обученные веса модели линейной регрессии. Первые значения соответствуют параметрам модели, последнее — смещение (bias). Используйте evalMLMethod для предсказаний. Array(Float64)
Примеры
Обучение модели
Прогнозирование
Извлечение весов модели
См. также