ClickHouse/docs/ru/sql-reference/functions/machine-learning-functions.md
2021-07-29 18:20:55 +03:00

4.5 KiB
Raw Blame History

toc_priority toc_title
64 Функции машинного обучения

Функции машинного обучения

evalMLMethod (prediction)

Предсказание с использованием подобранных регрессионных моделей.

Stochastic Linear Regression

Агрегатная функция stochasticLinearRegression реализует стохастический градиентный спуск, использую линейную модель и функцию потерь MSE.

Stochastic Logistic Regression

Агрегатная функция stochasticLogisticRegression реализует стохастический градиентный спуск для задачи бинарной классификации.

bayesAB

Сравнивает тестовые группы (варианты) и для каждой группы рассчитывает вероятность того, что эта группа окажется лучшей. Первая из перечисленных групп считается контрольной.

Синтаксис

bayesAB(distribution_name, higher_is_better, variant_names, x, y)

Аргументы

  • distribution_name — вероятностное распределение. String. Возможные значения:

  • higher_is_better — способ определения предпочтений. Boolean. Возможные значения:

    • 0 — чем меньше значение, тем лучше
    • 1 — чем больше значение, тем лучше
  • variant_names — массив, содержащий названия вариантов. Array(String).

  • x — массив, содержащий число проведенных тестов (испытаний) для каждого варианта. Array(Float64).

  • y — массив, содержащий число успешных тестов (испытаний) для каждого варианта. Array(Float64).

!!! note "Замечание" Все три массива должны иметь одинаковый размер. Все значения x и y должны быть неотрицательными числами (константами). Значение y не может превышать соответствующее значение x.

Возвращаемые значения

Для каждого варианта рассчитываются:

  • beats_control — вероятность, что данный вариант превосходит контрольный в долгосрочной перспективе
  • to_be_best — вероятность, что данный вариант является лучшим в долгосрочной перспективе

Тип: JSON.

Пример

Запрос:

SELECT bayesAB('beta', 1, ['Control', 'A', 'B'], [3000., 3000., 3000.], [100., 90., 110.]) FORMAT PrettySpace;

Результат:

{
   "data":[
      {
         "variant_name":"Control",
         "x":3000,
         "y":100,
         "beats_control":0,
         "to_be_best":0.22619
      },
      {
         "variant_name":"A",
         "x":3000,
         "y":90,
         "beats_control":0.23469,
         "to_be_best":0.04671
      },
      {
         "variant_name":"B",
         "x":3000,
         "y":110,
         "beats_control":0.7580899999999999,
         "to_be_best":0.7271
      }
   ]
}