stochasticlinearregression
description: 'Эта функция реализует стохастическую линейную регрессию. Она поддерживает настройки для темпа обучения, коэффициента L2 регуляризации, размера мини-пакета и имеет несколько методов для обновления весов (Adam, простой SGD, Momentum, Nesterov).' sidebar_position: 192 slug: /sql-reference/aggregate-functions/reference/stochasticlinearregression title: 'stochasticLinearRegression'
learning rate- коэффициент шага длины, когда выполняется шаг градиентного спуска. Слишком большой темп обучения может привести к бесконечным весам модели. Значение по умолчанию -0.00001.l2 regularization coefficient, который может помочь предотвратить переобучение. Значение по умолчанию -0.1.mini-batch sizeустанавливает количество элементов, для которых будут вычислены и суммированы градиенты для выполнения одного шага градиентного спуска. Чистый стохастический спуск использует один элемент, однако наличие маленьких пакетов (около 10 элементов) делает градиентные шаги более стабильными. Значение по умолчанию -15.method for updating weights, это:Adam(по умолчанию),SGD,MomentumиNesterov.MomentumиNesterovтребуют немного больше вычислений и памяти, однако они оказываются полезными с точки зрения скорости сходимости и стабильности стохастических методов градиента.
Использование
stochasticLinearRegression используется в два этапа: подгонка модели и предсказание на новых данных. Чтобы подогнать модель и сохранить её состояние для дальнейшего использования, мы используем комбинатор -State, который сохраняет состояние (например, веса модели). Для предсказания мы используем функцию evalMLMethod, которая принимает состояние в качестве аргумента, а также признаки для предсказания.
1. Подгонка
Такой запрос может быть использован.
Здесь нам также нужно вставить данные в таблицу train_data. Количество параметров не фиксировано, оно зависит только от количества аргументов, переданных в linearRegressionState. Все они должны быть числовыми значениями. Обратите внимание, что колонка с целевым значением (которое мы хотели бы научиться предсказывать) вставляется в качестве первого аргумента.
2. Предсказание
После сохранения состояния в таблицу, мы можем использовать его несколько раз для предсказания или даже объединить с другими состояниями и создать новые, еще лучшие модели.
Запрос вернет колонку предсказанных значений. Обратите внимание, что первым аргументом evalMLMethod является объект AggregateFunctionState, затем идут колонки признаков.
test_data - это таблица, аналогичная train_data, но она может не содержать целевое значение.
Примечания
-
Чтобы объединить две модели, пользователь может создать такой запрос:
sql SELECT state1 + state2 FROM your_modelsгде таблицаyour_modelsсодержит обе модели. Этот запрос вернет новый объектAggregateFunctionState. -
Пользователь может получить веса созданной модели для своих нужд без сохранения модели, если не используется комбинатор
-State.sql SELECT stochasticLinearRegression(0.01)(target, param1, param2) FROM train_dataТакой запрос подгонит модель и вернет её веса - первыми будут веса, соответствующие параметрам модели, последним будет смещение. Таким образом, в приведенном выше примере запрос вернет колонку с 3 значениями.
См. также