evalMLMethod
evalMLMethod. См. ссылку в linearRegression.
stochasticLinearRegression
evalMLMethod.
stochasticLogisticRegression
evalMLMethod.
naiveBayesClassifier
model_name— Имя предварительно настроенной модели. String Модель должна быть определена в файлах конфигурации ClickHouse (см. ниже).input_text— Текст для классификации. String Текст обрабатывается в точности в том виде, в котором он передан (с сохранением регистра и пунктуации).
- Идентификатор предсказанного класса в виде беззнакового целого числа. UInt32 Идентификаторы классов соответствуют категориям, заданным при построении модели.
0 может соответствовать английскому, а 1 — французскому; значения классов зависят от ваших обучающих данных.
Подробности реализации
- Поддерживает n-граммы любого размера
- Три режима токенизации:
byte: Работает с сырыми байтами. Каждый байт — один токен.codepoint: Работает со скалярными значениями Unicode, декодированными из UTF‑8. Каждая кодовая точка — один токен.token: Разбивает по последовательностям пробельных символов Unicode (регулярное выражение\s+). Токены — это подстроки без пробельных символов; знаки пунктуации входят в токен, если примыкают к нему (например, “you?” — это один токен).
Конфигурация модели
Руководство по обучению модели
Формат файла
В человекочитаемом формате для
n=1 и режима token модель может выглядеть так:
n=3 в режиме codepoint это может выглядеть так:
- 4-байтовый
class_id(UInt, little-endian) - 4-байтовая длина
n-gramв байтах (UInt, little-endian) - Необработанные байты
n-gram - 4-байтовый
count(UInt, little-endian)
mode и n. Ниже описаны шаги предварительной обработки:
-
Добавьте маркеры границ в начало и конец каждого документа в зависимости от режима токенизации:
- Byte:
0x01(начало),0xFF(конец) - Codepoint:
U+10FFFE(начало),U+10FFFF(конец) - Token:
<s>(начало),</s>(конец)
(n - 1)токенов добавляются и в начало, и в конец документа. - Byte:
-
Пример для
n=3в режимеtoken:- Документ:
"ClickHouse is fast" - После обработки:
<s> <s> ClickHouse is fast </s> </s> - Сгенерированные триграммы:
<s> <s> ClickHouse<s> ClickHouse isClickHouse is fastis fast </s>fast </s> </s>
- Документ:
byte и codepoint, бывает удобно сначала разбить документ на токены (список byte для режима byte и список codepoint для режима codepoint). Затем добавьте n - 1 начальных токенов в начало документа и n - 1 конечных токенов — в его конец. Наконец, сгенерируйте n-граммы и запишите их в сериализованный файл.
evalMLMethod
model— Обученная модель машинного обучения.AggregateFunctionStatex1, x2, ...— Значения признаков для прогнозирования.Float*или(U)Int*
Float64
Примеры
Пример использования
Query
Response
naiveBayesClassifier
NAIVE_BAYES. Возвращает то же предсказанное значение класса, что и dictGet(dictionary_name, class_attribute, input_text), где class_attribute — имя атрибута метки класса, заданного в структуре словаря. В отличие от dictGet, тип результата всегда UInt32, а не объявленный тип атрибута класса, и input_text должен иметь тип String (преобразование типа ключа не выполняется).
Эта функция является недетерминированной: она может возвращать разные результаты для одних и тех же аргументов.
dictionary_name— Имя словаря со структурой NAIVE_BAYES.Stringinput_text— Текст для классификации.String
UInt32
Примеры
Классификация текста
Query
Response
naiveBayesClassifierWithAllProbs
NAIVE_BAYES и возвращает все классы с их вероятностями, в порядке от наиболее вероятных к наименее вероятным.
Эта функция недетерминированна: она может возвращать разные результаты для одних и тех же аргументов.
dictionary_name— Название словаря со структурой NAIVE_BAYES.Stringinput_text— Текст для классификации.String
Array(Tuple(UInt32, Float64))
Примеры
Вероятности для всех классов
Query
Response
naiveBayesClassifierWithProb
NAIVE_BAYES и возвращает предсказанный класс и вероятность.
Эта функция недетерминированная: она может возвращать разные результаты для одних и тех же аргументов.
dictionary_name— Имя словаря со структурой NAIVE_BAYES.Stringinput_text— Текст для классификации.String
(class_id, probability). Tuple(UInt32, Float64)
Примеры
Классификация с вероятностью
Query
Response