次の方法で共有


Microsoft ロジスティック回帰アルゴリズム テクニカル リファレンス

適用対象:SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で停止されました。 非推奨および停止された機能については、ドキュメントの更新は行われません。 詳細については、「Analysis Services 下位互換性」を参照してください。

Microsoft ロジスティック回帰アルゴリズムは、Microsoft ニューラル ネットワーク アルゴリズムのバリエーションであり、 HIDDEN_NODE_RATIO パラメーターが 0 に設定されています。 この設定により、非表示の層を含んでいない、ロジスティック回帰に相当するニューラル ネットワーク モデルが作成されます。

Microsoft ロジスティック回帰アルゴリズムの実装

予測可能列に状態が 2 つしか含まれていない場合に、予測可能列に特定の状態が含められる確率と入力列を関連付けて、回帰分析を実行する必要があるとします。 次の図は、予測可能列の状態に 1 と 0 を割り当て、この列に特定の状態が含められる確率を計算し、入力変数に対する線形回帰を実行した場合に得られる結果を示しています。

線形回帰を使用したモデル化が不十分なデータ 線形回帰

x 軸には入力列の値が表示されます。 y 軸には、予測可能列が特定の状態またはもう一方の状態になる確率が表示されます。 この場合の問題は、列の最大値と最小値が 0 と 1 であっても、線形回帰によって列が 0 と 1 の間に制限されないことです。 この問題を解決するには、ロジスティック回帰を実行します。 ロジスティック回帰分析では、直線を作成するのではなく、制約の最大値と最小値を含んでいる "S" 字型曲線が作成されます。 たとえば、次の図は、前の例で使用したのと同じデータに対してロジスティック回帰を実行した場合に得られる結果を示しています。

ロジスティック回帰を使用してモデル化されたデータ ロジスティック回帰

曲線が 0 ~ 1 の範囲を超えていないことに注目してください。 ロジスティック回帰を使用して、予測可能列の状態の決定に重要な役割を果たす入力列を特定できます。

特徴選択

機能の選択は、分析の向上と処理負荷の削減のためにすべての Analysis Services データ マイニング アルゴリズムで自動的に使用されます。 ロジスティック回帰モデルの機能の選択に使用される方法は、属性のデータ型によって異なります。 ロジスティック回帰は、Microsoft ニューラル ネットワーク アルゴリズムに基づいているため、ニューラル ネットワークに適用される機能の選択方法のサブセットを使用します。 詳細については、「 機能の選択 (データ マイニング)」を参照してください。

入力のスコアリング

ニューラル ネットワーク モデルまたはロジスティック回帰モデルのコンテキストにおける "スコアリング " とは、データに存在する値を同じ尺度を使用する値のセットに変換して相互に比較できるようにするプロセスを意味します。 たとえば、Income に対する入力の範囲が 0 ~ 100,000 であるのに対し、[Number of Children] に対する入力の範囲は 0 ~ 5 であるとします。 この変換プロセスによって、値の違いに関係なく、各入力の重要性を比較できます。

トレーニング セットに表示されている状態ごとに、モデルは 1 つの入力を生成します。 不連続な入力または分離された入力の場合、Missing 状態がトレーニング セットに 1 回以上表示されると、Missing 状態を表す追加の入力が作成されます。 連続する入力では、最大 2 つの入力ノードが作成されます。1 つはトレーニング データに存在する場合の Missing 値用の入力ノードで、もう 1 つはすべての既存の値 (Null 以外の値) 用の入力ノードです。 各入力は、z スコア正規化法 (x - μ)\StdDevを使用して数値書式にスケーリングされます。

z スコア正規化中に、トレーニング セット全体の平均 (μ) と標準偏差が取得されます。

連続値

値が存在する: (X - μ)/σ (X はエンコードされる実際の値です)

値が存在しない: - μ/σ (負の mu をシグマで除算)

不連続値

μ = p (状態の以前の確率)

StdDev = sqrt(p\(1-p))

値が存在する: \(1 - μ)/σ (1 から μ をシグマで除算)

値が存在しない: (- μ)/σ (負の mu をシグマで除算)

ロジスティック回帰係数について

統計学の文献にはロジスティック回帰を実行するためのさまざまな方法が記されていますが、どの方法でも重要なのはモデルの適合性を評価する部分です。 適合度統計の中でも、オッズ比と共変量パターンを扱うものについて、さまざまな提案がなされています。 モデルの適合性を測定する方法についてはこのトピックでは扱いませんが、モデルの係数の値を取得し、それらの係数を使用して独自に適合性の測定方法を設計できます。

注意

ロジスティック回帰モデルの一部として作成される係数はオッズ比を表しているわけではなく、またそのように解釈すべきではありません。

モデル グラフ内の各ノードの係数は、そのノードへの入力の加重和を表します。 ロジスティック回帰モデルでは、非表示層が空であるため、出力ノードに 1 セットの係数だけが格納されます。 次のクエリを使用すると、係数の値を取得できます。

SELECT FLATTENED [NODE_UNIQUE NAME],  
(SELECT ATTRIBUTE_NAME< ATTRIBUTE_VALUE  
FROM NODE_DISTRIBUTION) AS t  
FROM <model name>.CONTENT  
WHERE NODE_TYPE = 23  

このクエリは、出力値ごとに、係数と、関連の入力ノードを指す ID を返します。 また、出力と切片の値を含む行も返します。 各入力 X には独自の係数 (Ci) がありますが、入れ子になったテーブルには、次の式に従って計算される "free" 係数 (Co) も含まれています。

F(X) = X1*C1 + X2*C2 + ... +Xn*Cn + X0

アクティベーション: exp(F(X)) / (1 + exp(F(X)) )

詳細については、「 ロジスティック回帰モデルのクエリ例」を参照してください。

ロジスティック回帰アルゴリズムのカスタマイズ

Microsoft ロジスティック回帰アルゴリズムでは、結果として得られるマイニング モデルの動作、パフォーマンス、精度に影響を与えるいくつかのパラメーターがサポートされています。 また、入力として使用する列にモデリング フラグを設定して、モデルの動作を変更することもできます。

アルゴリズム パラメーターの設定

次の表は、Microsoft ロジスティック回帰アルゴリズムで使用できるパラメーターを示しています。

HOLDOUT_PERCENTAGE
提示されたエラーの計算に使用するトレーニング データ内のケースの割合を指定します。 HOLDOUT_PERCENTAGE は、マイニング モデルのトレーニング中に停止条件の一部として使用されます。

既定値は 30 です。

HOLDOUT_SEED
予約データをランダムに調べるときに使用する擬似乱数ジェネレーターのシード値を指定します。 HOLDOUT_SEED を 0 に設定すると、アルゴリズムによってマイニング モデルの名前に基づいたシードが生成され、再処理中にモデルのコンテンツが変更されることはありません。

既定値は 0 です。

MAXIMUM_INPUT_ATTRIBUTES
選択した機能を呼び出す前にアルゴリズムが処理できる入力属性の数を定義します。 この値を 0 に設定すると、機能の選択がオフになります。

既定値は 255 です。

MAXIMUM_OUTPUT_ATTRIBUTES
選択した機能を呼び出す前にアルゴリズムが処理できる出力属性の数を定義します。 この値を 0 に設定すると、機能の選択がオフになります。

既定値は 255 です。

MAXIMUM_STATES
アルゴリズムによってサポートされる属性状態の最大数を指定します。 属性の状態の数が状態の最大数よりも大きい場合、アルゴリズムでは属性の最も一般的な状態が使用され、残りの状態は無視されます。

既定値は 100 です。

SAMPLE_SIZE
モデルのトレーニングに使用するケースの数を指定します。 アルゴリズム プロバイダーでは、この数と、HOLDOUT_PERCENTAGE パラメーターで指定された割合に含まれないケースの総数の割合のうち、いずれか小さい方が使用されます。

たとえば、HOLDOUT_PERCENTAGE が 30 に設定されている場合、アルゴリズムでは、このパラメーターの値と、ケースの総数の 70% に相当する値のうち、いずれか小さい方が使用されます。

既定値は 10000 です。

ModelingFlags

Microsoft ロジスティック回帰アルゴリズムで使用するために、次のモデリング フラグがサポートされています。

NOT NULL
列に NULL を含めることはできないことを示します。 モデルのトレーニング中に NULL が検出された場合はエラーが発生します。

マイニング構造列に適用されます。

MODEL_EXISTENCE_ONLY
列が、 Missing および Existingの 2 つの可能な状態を持つ列として扱われることを示します。 NULL は Missing 値になります。

マイニング モデル列に適用されます。

要件

ロジスティック回帰モデルには、キー列、入力列、および少なくとも 1 つの予測可能列が必要です。

入力列と予測可能列

Microsoft ロジスティック回帰アルゴリズムでは、次の表に示す特定の入力列コンテンツ タイプ、予測可能な列コンテンツ タイプ、モデリング フラグがサポートされています。 マイニング モデルで使用する場合のコンテンツ タイプの意味の詳細については、「 コンテンツ タイプ (データ マイニング)」を参照してください。

コンテンツの種類
入力属性 Continuous、Discrete、Discretized、Key、Table
予測可能な属性 Continuous、Discrete、Discretized

参照

Microsoft ロジスティック回帰アルゴリズム
線形回帰モデルのクエリ例
ロジスティック回帰モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)
Microsoft ニューラル ネットワーク アルゴリズム