20 一般化線形モデル

線形モデリング用の一般化線形モデル(GLM)統計的手法の使用方法を学習します。

Oracle Machine Learning for SQLでは、回帰および2項分類についてはGLMがサポートされています。

20.1 一般化線形モデルとは

一般化線形モデル(GLM)モデルについて説明します。このモデルは、線形モデルのいくつかの制限的な仮定に対処および適応する線形モデルのクラスを含めることで拡張しています。

線形モデルでは、ターゲット(従属変数y)が予測応答値に関係なく一定分散を持つ予測子の値を条件として正規分布するという、一連の制限が仮定される点が最も重要です。線形モデルおよび線形モデルの制限のメリットは、計算が容易なこと、解釈可能なモデルの形式であること、および適合度の質に関する一定の診断情報を計算できる点にあります。

GLMは、このような実際には違反されることが多い制限を緩和したものです。たとえば、2値(yes/noまたは0/1)応答は、クラス間で同じ分散を持ちません。さらに、線形モデルでの項の合計は、一般的に、極端にネガティブな値と極端にポジティブな値を包含する非常に大きな範囲をとる場合があります。2値応答の例では、場合によっては、応答が[0,1]の範囲内の確率となるようにする必要があります。

GLMでは、リンク関数および分散関数という2つのメカニズムを使用して、線形モデルの仮定に違反する応答に対応しています。リンク関数は、線形モデルの単純な形式を維持できるように、ターゲットの範囲を負の無限大から正の無限大の潜在範囲に変換します。分散関数は、予測応答の1つの関数として分散を表現するため、非一定分散の応答(2値応答など)に対応できます。

Oracle Machine Learning for SQLは、GLMモデルのファミリのうち最もよく使用されている次の2つのアルゴリズムを備えています。これらのアルゴリズムでは、最もよく使用されているリンク関数および分散関数が使用されます。

  • 線形回帰: 恒等リンク関数および分散関数(定数1に等しい: 応答値の範囲に対する一定分散)を使用します。

  • ロジスティック回帰: ロジット・リンク関数および2項分散関数を使用します。

20.2 Oracle Machine Learning for SQLにおけるGLM

Oracle Machine Learning for SQLで一般化線形モデル(GLM)アルゴリズムがどのように実装されているかを学習します。

GLMはパラメトリックなモデリング手法です。パラメトリック・モデルでは、データの分散を仮定します。仮定が満たされる場合、パラメトリック・モデルはノンパラメトリック・モデルよりも効率的になります。

このタイプのモデルの作成では、どの程度仮定が満たされるかを見極めることが課題となります。このため、良質なパラメトリック・モデルを作成するには質の診断が重要です。

20.2.1 解釈性と透明性

モデル詳細およびグローバル詳細を通じてデータの透明性を解釈および理解する方法を学習します。

Oracle Machine Learningの一般化線形モデル(GLM)は解釈が容易です。モデルを作成するたびに、多くの統計情報と診断情報が生成されます。透明性も重要な特徴であり、モデルの詳細によって係数の主要特性が説明され、グローバルな詳細によって高水準の統計情報が提供されます。

20.2.2 ワイド・データ

Oracle Machine Learning for SQLにおける一般化線形モデル(GLM)は、他に類を見ないほどワイド・データの処理に適しています。このアルゴリズムでは、実質的に無限数の予測子(属性)を使用する良質なモデルを作成およびスコアリングできます。唯一の制限は、システム・リソースによる制限です。

20.2.3 信頼限界

一般化線形モデル(GLM)アルゴリズムによって信頼限界を予測します。

GLMでは、信頼限界を予測できます。GLMでは、各行の確率(分類のみ)および最良推定値の予測に加え、予測値(回帰)または確率(分類)が収まる区間を特定します。区間の幅は、モデルの精度やユーザーが指定した信頼度に応じて変わります。

信頼度は、モデルによって計算される信頼区間内に実際の値が収まることについてのモデルの確からしさを表す尺度です。一般的には、信頼度95%を使用します。たとえば、従業員の収入を$125,000と予測するモデルの場合、収入は95%の確率で$90,000から$160,000の範囲に収まります。Oracle Machine Learning for SQLのデフォルトの信頼度は95%ですが、この値は構成可能です。

注意:

信頼限界は、係数統計情報とともに戻されます。また、PREDICTION_BOUNDS SQL関数を使用すると、モデルの予測の信頼限界値を取得できます。

20.2.4 リッジ回帰

データの単一性(正確多重共線性)のためのリッジ回帰の使用について理解します。

最良の回帰モデルは、予測子とターゲットとの相関が高く、予測子同士の相関はほとんどないモデルです。多重共線性は、相関関係にある予測子を使用する多変量回帰を説明するための用語です。

リッジ回帰は、多重共線性を補う手法です。Oracle Machine Learning for SQLでは、回帰および分類の機械学習機能の両方について、リッジ回帰がサポートされています。アルゴリズムは、データに単一性(正確多重共線性)を検出すると、リッジ回帰を自動的に使用します。

単一性に関する情報は、グローバルなモデルの詳細で戻されます。

20.2.4.1 リッジ回帰の構成

構築設定を通じてリッジ回帰を構成します。

モデルの構築設定を指定すると、リッジ回帰を明示的に有効化できます。リッジ回帰を明示的に有効化する場合、システム生成のリッジ・パラメータを使用するか、独自のパラメータを指定することが可能です。リッジ回帰が自動的に使用される場合、リッジ・パラメータも自動的に計算されます。

構成の選択について次にまとめます。

  • リッジ回帰に関して、アルゴリズムによる自動選択を優先するかどうかを指定します。

  • リッジ・パラメータの値(リッジ回帰を明示的に有効化した場合にのみ使用される)を指定します。

関連項目:

使用可能なモデル設定のリストと解説は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

注意:

モデル設定と同じ意味でハイパーパラメータという用語も使用されます。
20.2.4.2 リッジと信頼限界

リッジ回帰で作成されるモデルでは、信頼限界はサポートされません。

関連項目

20.2.4.3 リッジとデータ準備

リッジ回帰のデータ準備について学習します。

リッジ回帰が有効化されていると、モデルの係数および診断に関して、データ準備方法の違いで異なる結果が生成される可能性があります。リッジ回帰が使用される場合は特に、一般化線形モデルに対して自動データ準備を有効化することをお薦めします。

20.3 スケーラブルな特徴選択

Oracle Machine Learning for SQLでは、一般化線形モデル・アルゴリズムについては、高度にスケーラブルで自動化されたバージョンの特徴選択および特徴生成がサポートされています。

このスケーラブルで自動化された機能により、アルゴリズムのパフォーマンスを高めることや、精度と解釈性を高めることができます。特徴選択および生成は、線形回帰と2項ロジスティック回帰の両方で使用できます。

20.3.1 特徴選択

特徴選択は、モデルに含まれる用語を選択するプロセスです。モデルに含まれる用語が少ないほど、ユーザーはその意味をより簡単に解釈できます。また、一部の列は、モデルで予測しようとしている値とは関係ないことがあります。このような列を削除すると、モデルの精度を向上できます。

20.3.1.1 特徴選択の構成

特徴選択は、一般化線形モデル用の構築設定です。デフォルトでは無効です。特徴選択用に構成すると、アルゴリズムによって自動的にデフォルトの適切な動作が決定されますが、次の構成オプションも使用できます。

  • 特徴選択の基準は、AIC、SBIC、RICまたはα投資のいずれかです。特徴選択の基準がα投資である場合、特徴の許容範囲は厳密または緩和のいずれかです。

  • 特徴の最大数を指定できます。

  • 特徴は、最終モデルでプルーニングできます。プルーニングは、線形回帰の場合はt統計に、ロジスティック回帰の場合はワルド統計に基づきます。

20.3.1.2 特徴選択とリッジ回帰

特徴選択とリッジ回帰は、相互に排他的です。特徴選択が有効化されると、アルゴリズムではリッジを使用できません。

注意:

特徴選択とリッジ回帰の両方を使用するようにモデルを構成すると、エラーが発生します。

20.3.2 特徴生成

特徴生成は、用語の変換をモデルに追加するプロセスです。特徴生成によって、ターゲットと予測子の間のより複雑な関係に適合するようにモデルの能力を拡張できます。

20.3.2.1 特徴生成の構成

特徴生成の構成について学習します。

特徴生成は、特徴選択が有効化されている場合にのみ使用できます。特徴生成は、構築設定です。デフォルトでは、特徴生成は有効化されていません。

特徴生成の方法は、2次または3次のいずれかです。デフォルトでは、アルゴリズムによって適切な方法が選択されます。明示的に特徴生成の方法を指定することもできます。

特徴選択の次のオプションも、特徴生成に影響を与えます。

  • 特徴の最大数

  • モデルのプルーニング

20.4 GLM用のチューニングと診断

一般化線形モデルの開発のプロセスには、通常は、多数のモデル作成が含まれます。モデルを作成するたびに、モデルの質を判別するために評価できる統計情報が多数生成されます。これらの診断に応じて、モデル設定の変更などを試行できます。

20.4.1 構築設定

一般化線形モデル(GLM)の構築設定を指定します。

構築設定の指定を使用できます。

その他にも、次のような目的で構築設定を使用できます。

  • リッジ回帰の使用を制御します。

  • トレーニング・データ内の欠損値の扱いを指定します。

  • ロジスティック回帰モデルの参照として使用するターゲット値を指定します。

関連項目:

使用可能なモデル設定のリストと解説は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

注意:

モデル設定と同じ意味でハイパーパラメータという用語も使用されます。

20.4.2 診断

一般化線形モデルでは、モデルの質を評価する際に役立つメトリックが多数生成されます。

20.4.2.1 係数統計情報

線形回帰およびロジスティック回帰の係数統計情報について学習します。

線形回帰とロジスティック回帰では同じ統計情報のセットが返されますが、該当の機械学習機能に適用されない統計情報はNULLとして返されます。

係数統計情報は、一般化線形モデル(GLM)のモデル詳細ビューによって返されます。

20.4.2.2 グローバルなモデルの統計情報

モデルを説明する高水準の統計情報について学習します。

線形およびロジスティックの両回帰には、モデル全体を説明する高水準の統計情報が個別に戻されます。リッジ回帰が有効な場合、戻されるグローバルな詳細がより少なくなります。

グローバルな統計情報は、一般化線形モデルのモデル詳細ビューによって返されます。

20.4.2.3 行の診断情報

一般化線形モデル(GLM)アルゴリズムを構成することで行統計を生成します。

GLMでは、構築設定GLMS_DIAGNOSTICS_TABLE_NAMEで診断表の名前を指定すると、行ごとの統計が生成されます。

GLMでは、行の診断情報を生成するためにケースIDが必要となります。診断表の名前は指定したが、データにケースID列が含まれない場合、例外が発生します。

20.5 GLMのソルバー

一般化線形モデル(GLM)アルゴリズムの様々なソルバーについて学習します。

GLMアルゴリズムでは、コレスキ、QR、確率的勾配降下(SGD)、L-BFGSおよび交互方向乗数法(ADMM)の4種類のソルバーをサポートしています。コレスキ・ソルバーとQRソルバーは、古典的な分解手法を採用しています。コレスキ・ソルバーは、QRソルバーと比較すると高速ですが、計算の安定性は低下します。QRソルバーは、正則化することなく、よりうまくランク不足の問題を処理します。

SGDソルバーおよびL-BFGS ADMMソルバーは、高次元のデータに最適です。SGDソルバーは確率的勾配降下法の最適化アルゴリズムを採用します。一方、L-BFGS ADMMは、交互方向乗数法のフレームワーク内でBroyden-Fletcher-Goldfarb-Shannoの最適化アルゴリズムを使用します。SGDは高速ですが、パラメータによる影響が大きいため、良好なコンバージェンスを達成するには、適切にスケーリングされたデータが必要です。L-BFGSアルゴリズムは、制約のない最適化問題を解決し、SGDよりも安定かつ堅牢です。さらに、L-BFGSをADMMと組み合せて使用することにより、通信コストの低い非常に効率的な分散最適化手法が実現します。

20.6 GLM用のデータ準備

一般化線形モデル(GLM)アルゴリズム用のデータの準備について学習します。

自動データ準備(ADP)には、線形およびロジスティックの両回帰に適したデータの変換方法が実装されています。

関連項目:

使用可能なモデル設定のリストと解説は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

注意:

モデル設定と同じ意味でハイパーパラメータという用語も使用されます。

GLMでADPを使用することをお薦めします。

20.6.1 線形回帰用のデータ準備

一般化線形モデル(GLM)アルゴリズムの自動データ準備(ADP)について学習します。

ADPが有効になっている場合は、このアルゴリズムでは、入力データ・プロパティおよびその他の設定に基づいて変換が選択されます。変換には、量的データに対して次の中から1つ以上を含めることができます。平均値の引き算、標準偏差によるスケール化または相関の変換(1990年Neter他)。量的データに対して相関変換が適用される場合、質的属性にも適用されます。

標準化の前に、質的属性はN-1個の列に展開されます(Nは属性のカーディナリティ)。最頻値(mode)は、展開の変換中に省略されます。タイの最頻値が存在する場合、属性値は英数字の昇順でソートされ、リストの最初の値が展開時に除外されます。展開の変換は、ADPが有効化されているかどうかに関係なく発生します。

質的属性のカーディナリティが高い場合、ここで説明した変換(展開の後に標準化)によって、作成データのサイズが増えることがありますが、これは、結果のデータ表現が稠密であるためです。メモリー、ディスク領域および処理に関する要件を下げるには、代替手段を使用します。これらの事情により、VIF統計は注意して使用する必要があります。

関連項目:

  • Neter, J.、Wasserman, W.およびKutner, M.H.共著、『Applied Statistical Models』(Richard D.Irwin, Inc.、Burr Ridge、IL、1990)

20.6.2 ロジスティック回帰用のデータ準備

質的属性はN-1個の列に展開されます(Nは属性のカーディナリティ)。最頻値(mode)は、展開の変換中に省略されます。タイの最頻値が存在する場合、属性値は英数字の昇順でソートされ、リストの最初の値が展開時に除外されます。展開の変換は、自動データ準備(ADP)が有効化されているかどうかに関係なく発生します。

ADPが有効な場合、量的属性は標準偏差でスケーリングされます。この変動性の測度は、原点(平均値ではない)に関して属性ごとに標準偏差として計算されます(Marquardt、1980)。

関連項目:

Marquardt, D.W.著、『A Critique of Some Ridge Regression Methods: Comment』(Journal of the American Statistical Association、Vol. 75、No. 369、1980、pp 87-91)

20.6.3 欠損値

Oracle Machine Learning for SQLでは、モデルの作成時または適用時に、自動的に、量的属性の欠損値が平均値に、質的属性の欠損値が最頻値に置換されます。

欠損値のデフォルトの処理を無視するように一般化線形モデル・アルゴリズムを構成できます。ODMS_MISSING_VALUE_TREATMENT設定を使用すると、欠損値が含まれるトレーニング・データ内の行を、平均値や最頻値に置換するのではなく、アルゴリズムによって削除するように設定できます。ただし、そのモデルの適用時には、OML4SQLでは、通常の平均値/最頻値による欠損値置換が実行されます。そのため、スコアリングによって生成された統計情報が、モデルの作成によって生成された統計情報と一致しないことがあります。

モデルのスコアリングにおいて欠損値を持つ行を削除する場合、変換の明示的な実行が必要です。作成時と適用時の統計情報を一致させるには、適用操作を実行する前に、NULLが含まれる行をスコアリング・データから削除する必要があります。これは、ビューを作成して実行します。

CREATE VIEW viewname AS SELECT * from tablename 
     WHERE column_name1 is NOT NULL 
     AND   column_name2 is NOT NULL 
     AND   column_name3 is NOT NULL ..... 

注意:

OML4SQLでは、ネストしたデータにおける欠損値は、ランダムに欠損している値ではなく、スパース性を示しています。

ODMS_MISSING_VALUE_DELETE_ROWは、ネストした列を含まない表でのみ有効です。ネストしたデータでこの値を使用すると、例外が発生します。

20.7 線形回帰

Oracle Machine Learning for SQLでは、一般化線形モデルの回帰アルゴリズムとして線形回帰がサポートされています。このアルゴリズムでは、ターゲット値の範囲に対する一定分散およびターゲット変換を想定していません。

20.7.1 線形回帰の係数統計情報

一般化線形モデルの回帰モデルでは、次に示す係数統計情報が生成されます。

  • 線形係数推定値

  • 係数推定値の標準誤差

  • 係数推定値のt値

  • t値の確率

  • 分散拡大係数(VIF)

  • 係数の標準化推定値

  • 係数の信頼限界値の下限および上限

20.7.2 線形回帰のグローバルなモデルの統計情報

一般化線形モデルの回帰モデルでは、モデル全体を説明する、次に示す統計情報が生成されます。

  • モデルの自由度。

  • モデルの平方和。

  • モデル平均平方

  • モデルF統計

  • モデルのF値の確率。

  • 誤差の自由度。

  • 誤差の平方和。

  • 誤差平均平方

  • 修正された総自由度。

  • 修正された総平方和。

  • 2乗平均平方根誤差。

  • 依存平均

  • 変動の係数

  • R2乗

  • 調整済R2乗

  • 赤池情報量基準

  • Schwarzのベイズ情報量基準

  • 予測の推定平均平方誤差

  • HockingのSp統計

  • JP統計(最終予測誤差)。

  • パラメータ数(切片を含む係数の数)。

  • 行数

  • モデルが収束したかどうか

  • 共分散行列が計算されたかどうか

20.7.3 線形回帰の行の診断情報

線形回帰の場合、診断表には、次の表で説明する列があります。列はすべてNUMBERですが、CASE_ID列のみ、トレーニング・データの型を保持します。

表20-1 GLM回帰モデルの診断表

説明

CASE_ID

ケースID列の値

TARGET_VALUE

ターゲット列の値

PREDICTED_VALUE

ターゲットについてモデルにより予測された値

HAT

ハット行列の対角要素の値

RESIDUAL

誤差の測度

STD_ERR_RESIDUAL

残差の標準誤差

STUDENTIZED_RESIDUAL

スチューデント化された残差

PRED_RES

予測残差

COOKS_D

Cookの距離影響統計

20.8 ロジスティック回帰

Oracle Machine Learning for SQLでは、一般化線形モデルの分類アルゴリズムとして2項ロジスティック回帰がサポートされています。このアルゴリズムでは、ロジット・リンク関数および2項分散関数を使用します。

20.8.1 参照クラス

構築設定GLMS_REFERENCE_CLASS_NAMEを使用すると、2項ロジスティック回帰モデルで参照として使用されるターゲット値を指定できます。その他の(非参照)クラスに対しては確率が生成されます。デフォルトでは、アルゴリズムは普及率の最も高い値を選択します。タイの値が存在する場合、属性値は英数字の昇順でソートされます。

20.8.2 クラスの重み

構築設定CLAS_WEIGHTS_TABLE_NAMEを使用すると、クラスの重み表の名前を指定できます。クラスの重みは、モデルの作成時にターゲット・クラスの重み付けに影響します。

20.8.3 ロジスティック回帰の係数統計情報

一般化線形モデルの分類モデルでは、次に示す係数統計情報が生成されます。

  • 予測子の名前

  • 係数推定値

  • 係数推定値の標準誤差

  • 係数推定値のワルドのカイ2乗値

  • ワルドのカイ2乗値の確率

  • 係数の標準化推定値

  • 係数の信頼限界値の下限および上限

  • 指数係数

  • 係数の信頼限界値の上限および下限に対する指数係数

20.8.4 ロジスティック回帰のグローバルなモデルの統計情報

一般化分類モデルの回帰モデルでは、モデル全体を説明する、次に示す統計情報が生成されます。

  • 切片のみのモデルの適合度に関する赤池の基準。

  • 切片および共変量(予測子)モデルの適合度に関する赤池の基準

  • 切片のみのモデルの適合度に関するSchwarzの基準

  • 切片および共変量(予測子)モデルの適合度に関するSchwarzの基準

  • 切片のみのモデルの-2対数尤度。

  • モデルの-2対数尤度。

  • 尤度比の自由度。

  • 尤度比のカイ二乗確率値。

  • 擬似R2乗(CoxおよびSnell)

  • 擬似R2乗(Nagelkerke)

  • 依存平均

  • 正確な予測の割合。

  • 不正確な予測の割合

  • タイの(2つのケースの確率が等しい)割合

  • パラメータ数(切片を含む係数の数)。

  • 行数

  • モデルが収束したかどうか

  • 共分散行列が計算されたかどうか

20.8.5 ロジスティック回帰の行の診断情報

ロジスティック回帰の場合、診断表には、次の表で説明する列があります。列はすべてNUMBERですが、CASE_ID列およびTARGET_VALUE列のみ、トレーニング・データの型を保持します。

表20-2 ロジスティック回帰の行の診断表

説明

CASE_ID

ケースID列の値

TARGET_VALUE

ターゲット値の値

TARGET_VALUE_PROB

ターゲット値に関連付けられている確率

HAT

ハット行列の対角要素の値

WORKING_RESIDUAL

調整済従属変数に関する残差

PEARSON_RESIDUAL

ターゲットの推定標準偏差によってスケーリングされた生の残差

DEVIANCE_RESIDUAL

モデルの全体的な適合度に対する寄与率

C

信頼区間の変位診断

CBAR

信頼区間の変位診断

DIFDEV

特定の観測値を削除したことによる逸脱度の変化

DIFCHISQ

ピアソンのカイ2乗の変化