evalMLMethod
evalMLMethod. Veja o link em linearRegression.
stochasticLinearRegression
evalMLMethod para fazer previsões em novos dados.
stochasticLogisticRegression
evalMLMethod para fazer previsões com novos dados.
naiveBayesClassifier
model_name— Nome do modelo pré-configurado. String O modelo deve estar definido nos arquivos de configuração do ClickHouse (veja abaixo).input_text— Texto a ser classificado. String A entrada é processada exatamente como foi fornecida (com maiúsculas/minúsculas e pontuação preservadas).
- ID da classe prevista como um inteiro sem sinal. UInt32 Os IDs de classe correspondem às categorias definidas durante a criação do modelo.
0 pode representar inglês, enquanto 1 pode indicar francês — o significado das classes depende dos seus dados de treinamento.
Detalhes de implementação
- Suporta n-gramas de qualquer tamanho
- Três modos de tokenização:
byte: Opera sobre bytes brutos. Cada byte é um token.codepoint: Opera sobre valores escalares Unicode decodificados de UTF‑8. Cada ponto de código é um token.token: Separa por sequências de espaços em branco Unicode (regex \s+). Os tokens são substrings sem espaços em branco; a pontuação faz parte do token se estiver adjacente (por exemplo, “you?” é um único token).
Configuração do modelo
| Parâmetro | Descrição | Exemplo | Padrão |
|---|---|---|---|
| name | Identificador exclusivo do modelo | language_detection | Obrigatório |
| path | Caminho completo para o binário do modelo | /etc/clickhouse-server/config.d/language_detection.bin | Obrigatório |
| mode | Método de tokenização: - byte: Sequências de bytes- codepoint: Caracteres Unicode- token: Tokens de palavras | token | Obrigatório |
| n | Tamanho do n-grama (modo token):- 1=palavra única- 2=pares de palavras- 3=trios de palavras | 2 | Obrigatório |
| alpha | Fator de suavização de Laplace usado durante a classificação para lidar com n-gramas que não aparecem no modelo | 0.5 | 1.0 |
| priors | Probabilidades das classes (% de documentos pertencentes a uma classe) | 60% classe 0, 40% classe 1 | Distribuição igual |
n=1 e o modo token, o modelo pode se parecer com isto:
n=3 e o modo codepoint, pode ser assim:
class_idde 4 bytes (UInt, little-endian)- comprimento, em bytes, do
n-gramde 4 bytes (UInt, little-endian) - bytes brutos do
n-gram countde 4 bytes (UInt, little-endian)
mode e n. As etapas a seguir descrevem esse pré-processamento:
-
Adicione marcadores de delimitação no início e no fim de cada documento com base no modo de tokenização:
- Byte:
0x01(início),0xFF(fim) - Codepoint:
U+10FFFE(início),U+10FFFF(fim) - Token:
<s>(início),</s>(fim)
(n - 1)tokens são adicionados tanto no início quanto no fim do documento. - Byte:
-
Exemplo para
n=3no modotoken:- Documento:
"ClickHouse is fast" - Processado como:
<s> <s> ClickHouse is fast </s> </s> - Trigramas gerados:
<s> <s> ClickHouse<s> ClickHouse isClickHouse is fastis fast </s>fast </s> </s>
- Documento:
byte e codepoint, pode ser conveniente primeiro tokenizar o documento em tokens (uma lista de bytes para o modo byte e uma lista de codepoints para o modo codepoint). Em seguida, acrescente n - 1 tokens de início no início e n - 1 tokens de fim no final do documento. Por fim, gere os n-gramas e grave-os no arquivo serializado.