evalMLMethod
La predicción con modelos de regresión ajustados se realiza con la funciónevalMLMethod. Consulte el enlace en linearRegression.
stochasticLinearRegression
La stochasticLinearRegression función de agregado implementa el método de descenso de gradiente estocástico con un modelo lineal y la función de pérdida MSE. UsaevalMLMethod para hacer predicciones sobre datos nuevos.
stochasticLogisticRegression
La función de agregado stochasticLogisticRegression implementa el método de descenso de gradiente estocástico para un problema de clasificación binaria. UsaevalMLMethod para hacer predicciones sobre datos nuevos.
naiveBayesClassifier
Clasifica el texto de entrada mediante un modelo de Naive Bayes con n-gramas y suavizado de Laplace. El modelo debe configurarse en ClickHouse antes de usarlo. Sintaxismodel_name— Nombre del modelo preconfigurado. String El modelo debe estar definido en los archivos de configuración de ClickHouse (ver más abajo).input_text— Texto que se va a clasificar. String La entrada se procesa exactamente como se proporciona (se conservan las mayúsculas/minúsculas y la puntuación).
- ID de la clase predicha como un entero sin signo. UInt32 Los ID de clase corresponden a las categorías definidas durante la construcción del modelo.
0 podría representar el inglés, mientras que 1 podría indicar el francés; el significado de las clases depende de los datos de entrenamiento.
Detalles de implementación
Algoritmo Utiliza el algoritmo de clasificación Naive Bayes con suavizado de Laplace para manejar n-gramas no observados, a partir de probabilidades de n-gramas según esto. Características principales- Admite n-gramas de cualquier tamaño
- Tres modos de tokenización:
byte: Opera sobre bytes sin procesar. Cada byte es un token.codepoint: Opera sobre valores escalares Unicode decodificados de UTF‑8. Cada punto de código es un token.token: Divide en secuencias de espacios en blanco Unicode (regex \s+). Los tokens son subcadenas sin espacios en blanco; la puntuación forma parte del token si está adyacente (p. ej., “you?” es un solo token).
Configuración del modelo
Puede encontrar aquí código fuente de ejemplo para crear un modelo de Naive Bayes para la detección de idiomas. Además, puede encontrar aquí modelos de ejemplo y sus archivos de configuración asociados. A continuación se muestra una configuración de ejemplo para un modelo de Naive Bayes en ClickHouse:
Guía de entrenamiento del modelo
Formato de archivo
En formato legible para humanos, para
n=1 y el modo token, el modelo podría verse así:
n=3 y en modo codepoint, podría verse así:
class_idde 4 bytes (UInt, little-endian)- Longitud en bytes de
n-gramde 4 bytes (UInt, little-endian) - Bytes sin procesar de
n-gram countde 4 bytes (UInt, little-endian)
mode y n. Los siguientes pasos describen este preprocesamiento:
-
Añada marcadores de límite al inicio y al final de cada documento según el modo de tokenización:
- Byte:
0x01(inicio),0xFF(fin) - Codepoint:
U+10FFFE(inicio),U+10FFFF(fin) - Token:
<s>(inicio),</s>(fin)
(n - 1)tokens tanto al principio como al final del documento. - Byte:
-
Example para
n=3en modotoken:- Documento:
"ClickHouse is fast" - Se procesa como:
<s> <s> ClickHouse is fast </s> </s> - Trigramas generados:
<s> <s> ClickHouse<s> ClickHouse isClickHouse is fastis fast </s>fast </s> </s>
- Documento:
byte y codepoint, puede resultar conveniente tokenizar primero el documento en tokens (una lista de bytes para el modo byte y una lista de puntos de código para el modo codepoint). Luego, añada n - 1 tokens de inicio al principio y n - 1 tokens de fin al final del documento. Por último, genere los n-gramas y escríbalos en el archivo serializado.
assignCentroid
Introducido en: v26.8.0 Devuelve el id del centroide más cercano (L2) a un vector. Los centroides se especifican como un array constante de arrays de números flotantes, donde el id es la posición (empezando en 0) dentro de dicho array, o como el nombre de unDictionary que contiene los atributos cid y vec, donde el id es cid.
Esta función es no determinista: puede devolver resultados distintos para los mismos argumentos.
vec— Vector que se va a asignar. Su dimensión debe coincidir con la dimensión de los centroides. Los anchos distintos deFloat32se convierten aFloat32, que es lo que utiliza el kernel de puntuación.Array(Float32)oArray(Float64)oArray(BFloat16)centroids— Los centroides con los que se compara, que deben ser constantes. Se indican como un array de arrays de números flotantes no vacíos y de igual tamaño, siendo el id la posición en ese array (empezando en 0); o como el nombre de unDictionarycon un attributecidde un integer type sin signo que quepa enUInt32y un attributevecde tipoArray(Float32), en cuyo caso el id escid. El diccionario se lee una sola vez y se mantiene cached hasta que se vuelve a cargar.Array(Array(Float32))oArray(Array(Float64))oArray(Array(BFloat16))oString
UInt32
Ejemplos
Centroides Inline
Query
Response
evalMLMethod
Introducido en: v20.1.0 Aplica un modelo de aprendizaje automático entrenado a las variables de entrada para generar predicciones. Sintaxismodel— El modelo de aprendizaje automático entrenado.AggregateFunctionStatex1, x2, ...— Valores de las características para la predicción.Float*o(U)Int*
Float64
Ejemplos
Ejemplo de uso
Query
Response
naiveBayesClassifier
Introducido en: v25.11.0 Clasifica el texto de entrada mediante un diccionarioNAIVE_BAYES. Devuelve el mismo valor de clase predicho que dictGet(dictionary_name, class_attribute, input_text), donde class_attribute es el nombre del atributo de etiqueta de clase configurado en el layout del diccionario. A diferencia de dictGet, el tipo del resultado siempre es UInt32 en lugar del tipo declarado del atributo de clase, y input_text debe ser un String (no se aplica ninguna conversión del tipo de clave).
Esta función es no determinista: puede devolver resultados diferentes para los mismos argumentos.
dictionary_name— Nombre de un diccionario con el layout NAIVE_BAYES.Stringinput_text— Texto que se va a clasificar.String
UInt32
Ejemplos
Clasificar texto
Query
Response
naiveBayesClassifierWithAllProbs
Introducido en: v26.7.0 Clasifica el texto de entrada mediante un diccionarioNAIVE_BAYES y devuelve todas las clases con sus probabilidades, ordenadas de mayor a menor probabilidad.
Esta función es no determinista: puede devolver resultados distintos para los mismos argumentos.
dictionary_name— Nombre de un diccionario con el layout NAIVE_BAYES.Stringinput_text— Texto que se va a clasificar.String
Array(Tuple(UInt32, Float64))
Ejemplos
Todas las probabilidades de clase
Query
Response
naiveBayesClassifierWithProb
Introducido en: v26.7.0 Clasifica el texto de entrada mediante un diccionarioNAIVE_BAYES y devuelve la clase predicha junto con su probabilidad.
Esta función no es determinista: puede devolver resultados distintos para los mismos argumentos.
dictionary_name— Nombre de un diccionario con el layout NAIVE_BAYES.Stringinput_text— Texto que se va a clasificar.String
Tuple(UInt32, Float64)
Ejemplos
Clasificación con probabilidad
Query
Response