evalMLMethod
evalMLMethod. Consulte el enlace en linearRegression.
stochasticLinearRegression
evalMLMethod para hacer predicciones sobre datos nuevos.
stochasticLogisticRegression
evalMLMethod para hacer predicciones sobre datos nuevos.
naiveBayesClassifier
model_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
- 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
| Parámetro | Descripción | Ejemplo | Predeterminado |
|---|---|---|---|
| name | Identificador único del modelo | language_detection | Obligatorio |
| path | Ruta completa al binario del modelo | /etc/clickhouse-server/config.d/language_detection.bin | Obligatorio |
| mode | Método de tokenización: - byte: Secuencias de bytes- codepoint: Caracteres Unicode- token: Tokens de palabras | token | Obligatorio |
| n | Tamaño del n-grama (modo token):- 1=una sola palabra- 2=pares de palabras- 3=tríos de palabras | 2 | Obligatorio |
| alpha | Factor de suavizado de Laplace utilizado durante la clasificación para tratar n-gramas que no aparecen en el modelo | 0.5 | 1.0 |
| priors | Probabilidades de clase (% de los documentos que pertenecen a una clase) | 60 % clase 0, 40 % clase 1 | Distribución uniforme |
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 codepoints 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.