メインコンテンツへスキップ

stochasticLinearRegression

導入バージョン: v20.1.0 この関数は、確率的線形回帰を実装します。 次の項目について、カスタムパラメータをサポートしています。
  • 学習率
  • L2 正則化係数
  • ミニバッチサイズ
また、重みを更新するための手法もいくつか用意されています。
  • Adam (デフォルト)
  • 単純な SGD
  • Momentum
  • Nesterov
使用方法 この関数の使用は、モデルの学習と新しいデータに対する予測の 2 段階で行います。
  1. 学習
学習には、次のようなクエリを使用できます。
ここでは、train_data テーブルにもデータを挿入する必要があります。 パラメータの数は固定ではなく、linearRegressionState に渡す引数の数によってのみ決まります。 これらはすべて数値でなければなりません。 予測するよう学習させたい目的値を持つカラムは、最初の引数として挿入されることに注意してください。
  1. 予測
状態をテーブルに保存した後は、それを予測に何度も使用したり、他の状態とマージして、さらに優れた新しいモデルを作成したりできます。
このクエリは、予測値のカラムを返します。 evalMLMethod の最初の引数は AggregateFunctionState オブジェクトで、その後に特徴量のカラムが続くことに注意してください。 test_datatrain_data と同様のテーブルですが、目的変数を含まない場合があります。 注記
  1. 2 つのモデルをマージするには、次のようなクエリを作成できます。
ここで、your_models テーブルには両方のモデルが含まれています。 このクエリは新しい AggregateFunctionState オブジェクトを返します。
  1. -State combinator を使用しない場合は、モデルを保存しなくても、作成したモデルの重みを必要に応じて取得できます。
このようなクエリを実行すると、モデルが学習され、その重みが返されます。最初の値はモデルのパラメータに対応する重みで、最後の 1 つはバイアスです。 したがって、上記の例では、このクエリは 3 つの値を持つカラムを返します。 構文
引数
  • learning_rate — 勾配降下法のステップを実行する際のステップ幅に対する係数です。学習率が大きすぎると、モデルの重みが無限大になる可能性があります。デフォルトは 0.00001 です。Float64
  • l2_regularization_coef — 過学習の防止に役立つ可能性がある L2 正則化係数です。デフォルトは 0.1 です。Float64
  • mini_batch_size — 勾配を計算して合計し、勾配降下法の 1 ステップを実行する要素数を設定します。純粋な確率的勾配降下法では 1 つの要素を使用しますが、小さなバッチ (約 10 要素) を使うと勾配ステップがより安定します。デフォルトは 15 です。UInt64
  • method — 重みの更新方法です: Adam (デフォルト) 、SGDMomentumNesterovMomentumNesterov はやや多くの計算量とメモリを必要としますが、収束速度と確率的勾配法の安定性の面で有用です。const String
  • target — 予測対象として学習する目的変数です。数値である必要があります。Float*
  • x1, x2, ... — 特徴量の値 (独立変数) です。すべて数値である必要があります。Float*
戻り値 学習済みの線形回帰モデルの重みを返します。先頭の値はモデルのパラメータに対応し、最後の 1 つはバイアスです。予測には evalMLMethod を使用します。Array(Float64) モデルの学習
Query
Response
予測する
Query
Response
モデルの重みを取得する
Query
Response
関連項目
最終更新日 2026年7月2日