evalMLMethod
evalMLMethod 関数を使用します。詳しくは linearRegression のリンクを参照してください。
stochasticLinearRegression
evalMLMethod を使用します。
stochasticLogisticRegression
evalMLMethod を使用します。
naiveBayesClassifier
model_name— 事前設定済みモデルの名前。String モデルは ClickHouse の設定ファイルで定義されている必要があります (以下を参照) 。input_text— 分類対象のテキスト。String 入力は、指定されたとおりにそのまま処理されます (大文字・小文字や句読点は保持されます) 。
- 予測されたクラス ID を符号なし整数で返します。UInt32 クラス ID は、モデル構築時に定義されたカテゴリに対応します。
0 は英語、1 はフランス語を表す場合があります。どのクラスが何を意味するかは、学習データによって異なります。
実装の詳細
- 任意のサイズの N-gram をサポート
- 3 つのトークン化モード:
byte: 生のバイト列を対象に処理します。各バイトが 1 つのトークンになります。codepoint: UTF‑8 からデコードされた Unicode スカラー値を対象に処理します。各コードポイントが 1 つのトークンになります。token: Unicode の空白文字の連続 (正規表現\s+) で分割します。トークンは空白以外の連続した部分文字列で、句読点が隣接している場合はその句読点もトークンに含まれます (例:"you?"は 1 つのトークンです) 。
モデル設定
モデル学習ガイド
ファイルフォーマット
可読形式では、
n=1 かつ token モードの場合、モデルは次のようになります。
n=3 かつ codepoint モードの場合、次のようになります。
- 4 バイトの
class_id(UInt、リトルエンディアン) - 4 バイトの
n-gramのバイト長 (UInt、リトルエンディアン) - 生の
n-gramバイト列 - 4 バイトの
count(UInt、リトルエンディアン)
mode と n に従って N-gram を抽出できるよう、ドキュメントを前処理する必要があります。以下に、その前処理の手順を示します。
-
トークン化モードに応じて、各ドキュメントの先頭と末尾に境界マーカーを追加します。
- Byte:
0x01(先頭) 、0xFF(末尾) - Codepoint:
U+10FFFE(先頭) 、U+10FFFF(末尾) - Token:
<s>(先頭) 、</s>(末尾)
(n - 1)個のトークンが、ドキュメントの先頭と末尾の両方に追加されます。 - Byte:
-
tokenモードでのn=3の例:- Document:
"ClickHouse is fast" - Processed as:
<s> <s> ClickHouse is fast </s> </s> - 生成されるトライグラム:
<s> <s> ClickHouse<s> ClickHouse isClickHouse is fastis fast </s>fast </s> </s>
- Document:
byte モードおよび codepoint モードでのモデル作成を簡単にするには、まず文書をトークン列に分割しておくと便利です (byte モードでは byte のリスト、codepoint モードでは codepoint のリスト) 。次に、文書の先頭に n - 1 個の開始トークンを、末尾に n - 1 個の終了トークンを追加します。最後に、N-gram を生成してシリアライズ済みファイルに書き込みます。
evalMLMethod
model— 学習済みの機械学習モデル。AggregateFunctionStatex1, x2, ...— 予測に用いる特徴量の値。Float*または(U)Int*
Float64
例
使用例
Query
Response
naiveBayesClassifier
NAIVE_BAYES Dictionary を使用して入力テキストを分類します。dictGet(dictionary_name, class_attribute, input_text) と同じ予測クラス値を返します。ここで、class_attribute は Dictionary のレイアウトで設定されたクラスラベル属性の名前です。dictGet とは異なり、戻り値の型はクラス属性の宣言型ではなく常に UInt32 であり、input_text は String である必要があります (キー型変換は適用されません) 。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
UInt32
例
テキストを分類
Query
Response
naiveBayesClassifierWithAllProbs
NAIVE_BAYES Dictionaryを使用して入力テキストを分類し、すべてのクラスとその確率を、確率の高い順に返します。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
Array(Tuple(UInt32, Float64))
例
各クラスの確率
Query
Response
naiveBayesClassifierWithProb
NAIVE_BAYES Dictionary を使用して入力テキストを分類し、予測されたクラスとその確率を返します。
この関数は非決定論的です。同じ引数に対しても異なる結果を返す場合があります。
Tuple(UInt32, Float64)
例
確率とともに分類
Query
Response