Skip to main content

evalMLMethod

学習済みの回帰モデルを使用した予測には、evalMLMethod 関数を使用します。詳しくは linearRegression のリンクを参照してください。

stochasticLinearRegression

stochasticLinearRegression 集約関数は、線形モデルと MSE 損失関数を用いた確率的勾配降下法を実装します。新しいデータに対する予測には evalMLMethod を使用します。

stochasticLogisticRegression

stochasticLogisticRegression 集約関数は、二値分類問題に対する確率的勾配降下法を実装します。新しいデータに対する予測には evalMLMethod を使用します。

naiveBayesClassifier

N-gram とラプラス平滑化を用いた Naive Bayes モデルで入力テキストを分類します。使用する前に、ClickHouse でモデルを設定しておく必要があります。 構文
引数
  • model_name — 事前設定済みモデルの名前。String モデルは ClickHouse の設定ファイルで定義されている必要があります (以下を参照) 。
  • input_text — 分類対象のテキスト。String 入力は、指定されたとおりにそのまま処理されます (大文字・小文字や句読点は保持されます) 。
戻り値
  • 予測されたクラス ID を符号なし整数で返します。UInt32 クラス ID は、モデル構築時に定義されたカテゴリに対応します。
言語検出モデルを使用してテキストを分類します:
結果の 0 は英語、1 はフランス語を表す場合があります。どのクラスが何を意味するかは、学習データによって異なります。

実装の詳細

アルゴリズム こちらに基づく N-gram の確率を用い、未出現の N-gram に対応するため、ラプラス平滑化を適用した Naive Bayes 分類アルゴリズムを使用します。 主な機能
  • 任意のサイズの N-gram をサポート
  • 3 つのトークン化モード:
    • byte: 生のバイト列を対象に処理します。各バイトが 1 つのトークンになります。
    • codepoint: UTF‑8 からデコードされた Unicode スカラー値を対象に処理します。各コードポイントが 1 つのトークンになります。
    • token: Unicode の空白文字の連続 (正規表現 \s+) で分割します。トークンは空白以外の連続した部分文字列で、句読点が隣接している場合はその句読点もトークンに含まれます (例: "you?" は 1 つのトークンです) 。

モデル設定

言語検出用の Naive Bayes モデルを作成するためのサンプルソースコードは、こちらで確認できます。 さらに、サンプルモデルと関連する config ファイルはこちらで公開されています。 以下は、ClickHouse における Naive Bayes モデルの設定例です。
設定パラメータ モデル学習ガイド ファイルフォーマット 可読形式では、n=1 かつ token モードの場合、モデルは次のようになります。
n=3 かつ codepoint モードの場合、次のようになります。
人が読める形式は ClickHouse では直接使用されず、以下で説明するバイナリ形式に変換する必要があります。 バイナリ形式の詳細 各 N-gram は、次の形式で格納されます。
  1. 4 バイトの class_id (UInt、リトルエンディアン)
  2. 4 バイトの n-gram のバイト長 (UInt、リトルエンディアン)
  3. 生の n-gram バイト列
  4. 4 バイトの count (UInt、リトルエンディアン)
前処理の要件 ドキュメントコーパスからモデルを作成する前に、指定された moden に従って N-gram を抽出できるよう、ドキュメントを前処理する必要があります。以下に、その前処理の手順を示します。
  1. トークン化モードに応じて、各ドキュメントの先頭と末尾に境界マーカーを追加します。
    • Byte: 0x01 (先頭) 、0xFF (末尾)
    • Codepoint: U+10FFFE (先頭) 、U+10FFFF (末尾)
    • Token: <s> (先頭) 、</s> (末尾)
    注: (n - 1) 個のトークンが、ドキュメントの先頭と末尾の両方に追加されます。
  2. token モードでの n=3 の例:
    • Document: "ClickHouse is fast"
    • Processed as: <s> <s> ClickHouse is fast </s> </s>
    • 生成されるトライグラム:
      • <s> <s> ClickHouse
      • <s> ClickHouse is
      • ClickHouse is fast
      • is fast </s>
      • fast </s> </s>
byte モードおよび codepoint モードでのモデル作成を簡単にするには、まず文書をトークン列に分割しておくと便利です (byte モードでは byte のリスト、codepoint モードでは codepoint のリスト) 。次に、文書の先頭に n - 1 個の開始トークンを、末尾に n - 1 個の終了トークンを追加します。最後に、N-gram を生成してシリアライズ済みファイルに書き込みます。

evalMLMethod

導入バージョン: v20.1.0 学習済みの機械学習モデルを入力された特徴量に適用し、予測を生成します。 構文
引数 戻り値 学習済みモデルに基づいて予測された値を返します。Float64 使用例
Query
Response

naiveBayesClassifier

導入バージョン: v25.11.0 NAIVE_BAYES Dictionary を使用して入力テキストを分類します。dictGet(dictionary_name, class_attribute, input_text) と同じ予測クラス値を返します。ここで、class_attribute は Dictionary のレイアウトで設定されたクラスラベル属性の名前です。dictGet とは異なり、戻り値の型はクラス属性の宣言型ではなく常に UInt32 であり、input_textString である必要があります (キー型変換は適用されません) 。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
構文
引数
  • dictionary_name — NAIVE_BAYES レイアウトの Dictionary 名。String
  • input_text — 分類対象のテキスト。String
戻り値 予測されたクラスID。UInt32 テキストを分類
Query
Response

naiveBayesClassifierWithAllProbs

導入バージョン: v26.7.0 NAIVE_BAYES Dictionaryを使用して入力テキストを分類し、すべてのクラスとその確率を、確率の高い順に返します。
この関数は非決定論的です。同じ引数に対して異なる結果を返すことがあります。
構文
引数
  • dictionary_name — NAIVE_BAYES レイアウトを使用するDictionary名。String
  • input_text — 分類対象のテキスト。String
戻り値 確率の高い順に並んだ (class_id, probability) の Tuple からなる Array。Array(Tuple(UInt32, Float64)) 各クラスの確率
Query
Response

naiveBayesClassifierWithProb

導入バージョン: v26.7.0 NAIVE_BAYES Dictionary を使用して入力テキストを分類し、予測されたクラスとその確率を返します。
この関数は非決定論的です。同じ引数に対しても異なる結果を返す場合があります。
構文
引数
  • dictionary_name — NAIVE_BAYES レイアウトを持つ Dictionary の名前。String
  • input_text — 分類対象のテキスト。String
戻り値 (class_id, probability) から成る Tuple。Tuple(UInt32, Float64) 確率とともに分類
Query
Response
最終更新日 2026年7月23日