(57)【要約】【課題】  テーブル間のデータ関係を顕在化するデータ分析支援システムを提供する。【解決手段】  計算機により構成されたデータ分析支援システムであって、前記計算機は、プログラムが格納されたメモリと、前記メモリに格納されたプログラムを実行するＣＰＵと、を備え、前記ＣＰＵは、複数のテーブルを入力し、入力された複数のテーブルのそれぞれからキーワードを抽出し、抽出されたキーワードを機械学習し、機械学習の分析結果として、キーワードと出現確率のペアを含む特徴成分を、複数のテーブルのそれぞれについて抽出し、抽出された特徴成分に含まれるキーワードのテーブル間の一致に基づき、特徴成分のテーブル間の組合せを特定し、特定された組合せに含まれる特徴成分の出現確率を合成して、分析結果を集約し、集約された分析結果を出力する。【選択図】  図１
2019168820.tif 000002
【特許請求の範囲】
【請求項１】
計算機により構成されたデータ分析支援システムであって、
前記計算機は、
プログラムが格納されたメモリと、
前記メモリに格納されたプログラムを実行するＣＰＵと、
を備え、
前記ＣＰＵは、
複数のテーブルを入力し、
入力された複数のテーブルのそれぞれからキーワードを抽出し、
抽出されたキーワードを機械学習し、機械学習の分析結果として、キーワードと出現確率のペアを含む特徴成分を、複数のテーブルのそれぞれについて抽出し、
抽出された特徴成分に含まれるキーワードのテーブル間の一致に基づき、特徴成分のテーブル間の組合せを特定し、
特定された組合せに含まれる特徴成分の出現確率を合成して、分析結果を集約し、
集約された分析結果を出力すること
を特徴とするデータ分析支援システム。
【請求項２】
請求項１に記載のデータ分析支援システムであって、
前記計算機は、
量的変数の値の範囲と、１つまたは複数の質的変数の値とを対応付ける量質変換テーブルが格納されたディスク
をさらに備え、
前記ＣＰＵは、
入力された複数のテーブルのそれぞれに含まれる量的変数の値を、前記量質変換テーブルを用いて、１つまたは複数の質的変数の値に変換し、変換後の質的変数の値をキーワードとして抽出すること
を特徴とするデータ分析支援システム。
【請求項３】
請求項２に記載のデータ分析支援システムであって、
前記ディスクは、
入力される複数のテーブルの名称と、入力される複数のテーブルに含まれるフィールドの名称と、前記量質変換テーブルとを対応付ける変換関係定義テーブル
がさらに格納され、
前記ＣＰＵは、
入力された複数のテーブルの名称とフィールドの名称を特定し、前記変換関係定義テーブルを用いて、使用すべき前記量質変換テーブルを特定し、特定された前記量質変換テーブルを用いて、入力された複数のテーブルのそれぞれに含まれる量的変数の値を、１つまたは複数の質的変数の値に変換し、変換された質的変数の値をキーワードとして抽出すること
を特徴とするデータ分析支援システム。
【請求項４】
請求項３に記載のデータ分析支援システムであって、
前記ＣＰＵは、
入力された複数のテーブルのそれぞれに含まれる符号語を量的変数の値に変換し、変換された量的変数の値を、前記量質変換テーブルを用いて、１つまたは複数の質的変数の値に変換し、変換された質的変数の値をキーワードとして抽出すること
を特徴とするデータ分析支援システム。
【請求項５】
請求項２に記載のデータ分析支援システムであって、
前記ＣＰＵは、
入力された複数のテーブルの中の各テーブルにおいて、各テーブルから得られる複数の質的変数それぞれの値の種類の数を用いて特徴成分の数を算出し、
抽出されたキーワードの機械学習において、算出された特徴成分の数を機械学習に適用し、算出された特徴成分の数の特徴成分を機械学習の分析結果とすること
を特徴とするデータ分析支援システム。
【請求項６】
請求項５に記載のデータ分析支援システムであって、
前記ＣＰＵは、
入力された複数のテーブルの中の各テーブルにおいて、各テーブルから得られる複数の質的変数それぞれの値の種類の数が、複数の質的変数の中で最大となる数を特定し、特定された最大となる数に１を加算して特徴成分の数を算出すること
を特徴とするデータ分析支援システム。
【請求項７】
請求項５に記載のデータ分析支援システムであって、
前記ＣＰＵは、
入力された複数のテーブルの中の各テーブルにおいて、各テーブルから得られる複数の質的変数それぞれの値の種類の数同士を乗算して特徴成分の数を算出すること
を特徴とするデータ分析支援システム。
【請求項８】
請求項２に記載のデータ分析支援システムであって、
前記ＣＰＵは、
入力された複数のテーブルのそれぞれに含まれる量的変数の値を、前記量質変換テーブルを用いて、１つまたは複数の質的変数の値に変換し、変換前の量的変数の値を含むテーブルの名称と変換後の質的変数の値とを対応付ける情報を前記量質変換テーブルに格納し、変換後の質的変数の値をキーワードとして抽出し、
キーワードを含む特徴成分の集約された分析結果を出力し、出力したキーワードに対する選択の入力を受け付け、受け付けられた入力により選択されたキーワードを特定し、特定されたキーワードとして抽出された質的変数の値に対応付けられたテーブルの名称を、前記量質変換テーブルから検索して出力すること
を特徴とするデータ分析支援システム。
【請求項９】
計算機によるデータ分析支援方法であって、
前記計算機は、
プログラムが格納されたメモリと、
前記メモリに格納されたプログラムを実行するＣＰＵと、
を備え、
前記ＣＰＵは、
複数のテーブルを入力し、
入力された複数のテーブルのそれぞれからキーワードを抽出し、
抽出されたキーワードを機械学習し、機械学習の分析結果として、キーワードと出現確率のペアを含む特徴成分を、複数のテーブルのそれぞれについて抽出し、
抽出された特徴成分に含まれるキーワードのテーブル間の一致に基づき、特徴成分のテーブル間の組合せを特定し、
特定された組合せに含まれる特徴成分の出現確率を合成して、分析結果を集約し、
集約された分析結果を出力すること
を特徴とするデータ分析支援方法。
【請求項１０】
請求項９に記載のデータ分析支援方法であって、
前記計算機は、
量的変数の値の範囲と、１つまたは複数の質的変数の値とを対応付ける量質変換テーブルが格納されたディスク
をさらに備え、
前記ＣＰＵは、
入力された複数のテーブルのそれぞれに含まれる量的変数の値を、前記量質変換テーブルを用いて、１つまたは複数の質的変数の値に変換し、変換後の質的変数の値をキーワードとして抽出すること
を特徴とするデータ分析支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ分析支援システムおよびデータ分析支援方法に関する。
【背景技術】
【０００２】
データを分析したいという需要は古くから根強い。膨大なデータを手作業で分析することは困難であり、データマイニングなど、多様なデータ分析技術が開発されてきた。そのひとつとして、機械学習は、統計や確率などに基づく何らかのモデルを策定し、実際に観測されたデータから逆にモデルの詳細パラメータを推定する技術である。機械学習されたモデルに基づく計算機判断は知的な判断とみなされ、分類、予測、あるいは推薦等に役立ちうる。
【０００３】
しかしながら、考えなしに玉石混交のビッグデータを直接的に分析しても、膨大な計算機資源を投じたわりに、表面的に推定できる結果のみが得られ、潜在的な結果は得られにくい傾向がある。このような傾向があるので、有用な結果を得るために、特定のデータを対象にして特定のトピックを分析することが多い。
【０００４】
例えば、特許文献１には、購買情報テーブルを参照して各アカウントの興味があるトピックを推定し、トピックごとに商品が購買される確率を推定し、商品が新商品である場合には購買される確率を高くして、新商品を推薦する技術が開示されている。
【０００５】
また、特許文献２には、トピックモデルによる分析手法を利用して、求人情報とレジュメ情報との間の類似度学習を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２４２９４０号公報
【特許文献２】特開２０１７−１３４７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１あるいは特許文献２に開示された技術を用いれば、特定のデータを対象にして特定のトピックを分析することは可能になる。しなしながら、多くのテーブルから成るデータであってトピックを定められないビッグデータを機械学習しても、同一テーブル内にあるデータ同士の関係性が強く、テーブルをまたいだ関係性が埋もれがちである。
【０００８】
テーブル内の関係性を雑音（Ｎ）、テーブルをまたいだ関係性を信号（Ｓ）とするとき、学習の対象となるテーブル内のレコード数を単に増やしても、このＳＮ比は改善されない。そして、特許文献１および特許文献２には、このような学習におけるＳＮ比の改善に関する技術の開示は見当たらない。
【０００９】
また、大容量多種多様なデータが混在するビッグデータを貯め置くデータレイクの中で、データの関係を俯瞰することは難しい。特に、データ分析作業者が生データの関係性の中に未知のパターンを発見することの支援、言い換えると、その気付きとなるデータ関係情報を抽出することが重要である。
【００１０】
本発明の目的は、テーブル間のデータ関係を顕在化するデータ分析支援システムを提供することである。
【課題を解決するための手段】
【００１１】
本発明に係る代表的なデータ分析支援システムは、計算機により構成されたデータ分析支援システムであって、前記計算機は、プログラムが格納されたメモリと、前記メモリに格納されたプログラムを実行するＣＰＵと、を備え、前記ＣＰＵは、複数のテーブルを入力し、入力された複数のテーブルのそれぞれからキーワードを抽出し、抽出されたキーワードを機械学習し、機械学習の分析結果として、キーワードと出現確率のペアを含む特徴成分を、複数のテーブルのそれぞれについて抽出し、抽出された特徴成分に含まれるキーワードのテーブル間の一致に基づき、特徴成分のテーブル間の組合せを特定し、特定された組合せに含まれる特徴成分の出現確率を合成して、分析結果を集約し、集約された分析結果を出力することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、テーブル間のデータ関係を顕在化するデータ分析支援システムを提供することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】データ分析支援システムの例を示す図である。
【図２】計算機の例を示す図である。
【図３】機械学習を用いたデータ仕分けの例を示す図である。
【図４】変換関係定義テーブルの例を示す図である。
【図５】量質変換テーブルの例を示す図である。
【図６】データ値と処理の関係の例を示す図である。
【図７】組合せ最適化の例を示す図である。
【図８】データ分析支援システムの処理フローの例を示す図である。
【図９】ユーザ対話画面の例を示す図である。
【図１０】機械学習の処理フローの例を示す図である。
【発明を実施するための形態】
【００１４】
本明細書において開示される技術のうち、一つの観点に従う構成と作用は以下の通りであり、図面を参照して本発明の実施形態を実施例として説明する。
【００１５】
図１は、データ分析支援システムの例を示す図である。データ分析支援システム１０１は計算機から構成され、ユーザ端末１０２、データレイク１０３、業務運用システム１０４、およびデータウェアハウス１０５とネットワーク１２０で接続される。
【００１６】
ユーザ端末１０２、データレイク１０３、業務運用システム１０４、およびデータウェアハウス１０５も計算機であってもよい。ユーザはユーザ端末１０２を介して、データ分析支援システム１０１を含むこれらの計算機にアクセスし、データを入力したりデータを表示させたりする。
【００１７】
図１において、実線のネットワーク１２０は計算機間の物理的な接続を表し、破線はデータフロー（あるいは制御のフロー）を表す。ただし、破線は代表的なデータフローを示すものであって、図１に示した破線以外のデータフローがあってもよい。
【００１８】
データレイク１０３は分析前の生データが格納される設備である。運用管理ログや保守記録などが業務運用システム１０４からネットワーク１２０を介してデータレイク１０３内のデータベースであるトランザクションＤＢ１０６に格納される。これにより、トランザクションＤＢ１０６には時系列に生じてスキーマ構造に応じた記録が大量に溜まる。
【００１９】
なお、トランザクションＤＢ１０６には、時系列によらない異種のテーブルが含まれていてもよい。また、トランザクションＤＢ１０６以外のデータベースとして、データレイク１０３は、データの符号化方法やスキーマ構造をあらかじめ定めたマスターＤＢ１０７を有する。マスターＤＢ１０７の情報はユーザによりあらかじめ格納されてもよい。
【００２０】
業務運用システム１０４とデータレイク１０３を含めて各計算機のメモリには、データの送受信手順をあらかじめ定めた通信プログラムモジュールが格納され、各計算機のＣＰＵ（Central Processing Unit）によって通信プログラムが実行されることによって通信する。
【００２１】
ユーザは、データレイク１０３の中のデータを選択し、選択したデータを必要に応じて変換させてからデータウェアハウス１０５に転送させて格納させる。あるいは、データウェアハウス１０５のメモリ内には選択手順、変換手順、分析手順をあらかじめ定めた選択変換分析プログラムモジュールをあらかじめ格納されていてもよい。
【００２２】
ユーザは、データウェアハウス１０５を用いて対話的にデータの分析を行う。この分析のために、ユーザはデータレイク１０３内のデータの中からデータを選択するのであるが、どのデータを選択すべきかの情報をデータ分析支援システム１０１はユーザへ提供する。
【００２３】
別の言い方をすると、ユーザはデータ分析支援システム１０１を用いて選択すべきデータの推薦を受ける。なお、データ分析支援システム１０１の役割を説明するため、以上のようにデータウェアハウス１０５を説明したが、データウェアハウス１０５は以上で説明したものに限定されるものでははい。
【００２４】
データ分析支援システム１０１は、分析支援手順があらかじめ記述されたプログラムモジュール、およびユーザが対話的に指定する条件やあらかじめ定めおく初期値などのパラメータがメモリに格納されている。メモリに格納された分析支援手順の記述されたプログラムは、ＣＰＵによって実行されることによって、分析支援処理が実現される。
【００２５】
分析支援手順が記述されたプログラムモジュールには複数のサブモジュールがあり、統括制御モジュール１０８、学習制御モジュール１０９、集約制御モジュール１１０、および対話制御モジュール１１１の各サブモジュールが含まれる。ここで、各サブモジュールはプログラムそのものではなく、各プログラムを実行するＣＰＵであってもよい。
【００２６】
データ分析支援システム１０１のディスク（記憶装置）あるいはメモリ上には、データベースが構築され、このデータベースには、管理ＤＢ１１２、量質変換ＤＢ１１３、学習ＤＢ１１４、および集約ＤＢ１１５が含まれる。管理ＤＢ１１２は、変換関係定義テーブル（図４）とデータレイク１０３内の各種データへのアクセス方法についての情報が、あらかじめ作成されて格納されている。
【００２７】
量質変換ＤＢ１１３は、時刻や場所などの量質変換テーブル（図５）が、あらかじめ作成されて格納されている。学習ＤＢ１１４は、学習テーブル（図６）として中間処理結果が格納される。集約ＤＢ１１５は、集約テーブル（図６）として最終処理結果が格納される。
【００２８】
データ分析支援システム１０１は、ユーザからの要求に応じて処理を開始し、ユーザへ結果を出力して処理を終了する。まず、統括制御モジュール１０８は、あらかじめ対話制御モジュール１１１をユーザからの要求待ち状態にする。なお、以下の一連の処理の引き渡しは、統括制御モジュール１０８の統括的な制御により行われてもよい。
【００２９】
ユーザ操作によってユーザ端末１０２からデータ分析支援が要求されたと判定すると、対話制御モジュール１１１は統括制御モジュール１０８に処理を引き渡す。統括制御モジュール１０８は、管理ＤＢ１１２に定めた管理情報に基づいて各種データへのアクセス方法を読み取って、学習制御モジュール１０９に処理を引き渡す。
【００３０】
学習制御モジュール１０９は、量質変換ＤＢ１１３を用いてトランザクションＤＢ１０６（図６）のデータを読み込み、複数の学習結果を学習ＤＢ１１４に格納する。集約制御モジュール１１０は、学習ＤＢ１１４から複数の学習結果を読み込み、複数の学習結果を集約した集約データを集約ＤＢ１１５内の集約テーブルに格納する。対話制御モジュール１１１は、集約ＤＢ１１５から集約結果を読み込み、ユーザ端末１０２へ出力する。
【００３１】
図２は、計算機の例を示す図である。計算機２０１は、例えばデータ分析支援システム１０１であり、図１に示した他の設備であってもよい。計算機２０１は、計算レジスタを備えたＣＰＵ２０２、メモリ２０３、ディスク２０５、入出力部２０６、タイマ２０４、およびセンサ２０７を備える。
【００３２】
ディスク２０５は、磁気記憶装置であってもよいし、不揮発性の半導体記憶装置であってもよい。入出力部２０６は、ディスプレイ、キーボード、マウス、およびネットワーク１２０との通信回路を含む。ユーザ端末１０２の代わりに、入出力部２０６のディスプレイ、キーボード、およびマウスが使用されてもよい。
【００３３】
図３は、機械学習を用いたデータ仕分けの例を示す図である。データレイク１０３内には複数のデータベースと複数のテーブルがあり、テーブル同士は異種のものを含む。ここで、共通するフィールド（時刻など）を持つ２つのテーブルは互いに同種である。同種の２つのテーブルのデータは、テーブル結合処理によって単一テーブルのデータに変換できる。
【００３４】
これに対して、共通するフィールドを持たない２つのテーブルは互いに異種である。異種の２つのテーブルは、テーブル結合ができない。例えば、４つのフィールドＡＢＣＤ、３つのテーブルＰＱＲがあり、Ｐ（Ａ、Ｂ）、Ｑ（Ｃ、Ｄ）、Ｒ（Ａ、Ｃ）のデータ構造を持つ場合、テーブルＰとテーブルＱは異種、テーブルＰとテーブルＲは同種、テーブルＱとテーブルＲは同種である。このため、３つのテーブルＰＱＲは異種テーブルを含む。
【００３５】
テーブルＰＱだけが入力された場合、異種テーブル同士の結合ができないため、フィールドＢとフィールドＤに含まれたデータ値同士の関係を分析できない。一方、テーブルＰＱＲが入力された場合、まずＰＲを結合し、その後にＱを結合することによって３テーブルを１テーブルに結合できる。さらに結合したテーブルを用いてフィールドＢとＤにあるデータ値同士の関係を分析できるようになる。
【００３６】
しかし、データレイク内のテーブルは多種多様であるので、結合可能な組み合わせ数は膨大であり、従来のデータレイク内の作業では、組合せ経路を見つけること自体がたいへんな作業量であった。加えて、組合せによって分析結果が異なりうるため、適切なテーブル結合方法を見つけ出すことは、分析者の試行錯誤や直感頼りとなっていた。
【００３７】
一方、機械学習を用いた分析処理の場合、異種テーブルであってもまとめて分析することは可能であり、異種の複数のテーブルのデータが入力されても、何らかのモデルに基づいてデータを仕分けすることができ、データ同士の関係性情報が出力可能である。機械学習のそのようなモデルには多種多様な方式が開発され、開示されている。
【００３８】
しかしながら、どのようなモデルを用いても、異種テーブルのデータを直接に機械学習した結果は、同一テーブル内にあるデータは、同一テーブル内にあるということへの関係性が強く評価され、他の異種テーブル内にあるデータとの関係性は弱く評価される傾向がある。
【００３９】
図３には、データを分析してＸＹＺの３つの分析軸での３分類を行う機械学習方式を用いて４テーブルのデータを学習する場合を例示する。直接的にデータを機械学習すると、Ｘ軸に１つ目のテーブル内のデータが偏り、Ｙ軸に２つ目のテーブル内のデータが偏る、というようにテーブルごとに仕分けされてしまいやすい。
【００４０】
このように、学習した仕分け結果がテーブルごとに偏っては、わざわざ多くの（複数）の（異種）テーブルを分析しても、何を学習するかの意味が薄くなり、機械学習の効果が得られない。
【００４１】
本実施例のデータ分析では、第１ステップとして、３分類を行う機械学習をテーブルごとに適用し、４テーブルそれぞれを独立に機械学習する。その結果、４つの基底あるいは分析軸（Ｘ１，Ｙ１，Ｚ１）．．．（Ｘ４，Ｙ４，Ｚ４）を得る。
【００４２】
第２ステップとして、分析軸同士の関係を最適に集約して、新しい３つの集約軸（Ｇｒｏｕｐ１，Ｇｒｏｕｐ２，Ｇｒｏｕｐ３）を得る。集約軸には異種テーブル間を含めてテーブルをまたいだ関係に焦点が当たっているため、テーブル間のデータ関係が顕在化して抽出可能となる。
【００４３】
そして、異種テーブル間のデータ関係は、異種テーブルに含まれる膨大なデータを前にしたデータ分析作業者では気付きにくく、本実施例のデータ分析支援システム１０１の利用によって得られる情報であって、このような情報の得られることが本実施例の有用な効果である。
【００４４】
本実施例では機械学習の一例としてトピックモデルを用いる。以下では分析軸をトピックと呼ぶ。トピックは特徴成分でもある。トピックモデルは主に文書の仕分けに用いられるモデルであり、１つのトピックは、単語とその出現確率のペアをリストしたものとして定式化される。多数の文書を機械学習した結果は複数のトピックとして出力される。この点においては一般的な機械学習と同じであってもよい。
【００４５】
トピックモデルは、端的には文書群を入力して、トピック群を出力する機械学習である。トピックモデルに文書群を入力する場合、個々の文書を形態素解析して文書内のキーワードを抽出し、そのキーワードのリストを入力ベクトルとして用いる。トピックモデルは複数の入力ベクトルを読み込むことによって、入力ベクトル群を仕分けする適切なトピック（キーワードとその出現確率のペア）を定式化する。
【００４６】
個々のトピックは、一部の文書群を代表する潜在的意味を示すが、その意味は単一の単語では示されない。例えば、文書群を２トピックに仕分けるとき、１つ目のトピックでは、単語Ａが６０％、単語Ｂが０％、単語Ｃが４０％の確率で出現し、２つ目のトピックでは、単語Ａが０％、単語Ｂが７０％、単語Ｃが３０％の確率で出現する、といった形で、トピック群が出力される。
【００４７】
個々の文書がどのトピックに属するかは、入力文書の単語ベクトルと、トピックを構成する単語ベクトルについて、内積値あるいは距離を指標とすることで、判定可能である。すなわち、機械学習で得たトピックを分析軸とすれば、その分析軸を持つトピックモデルは、未知の文書群の分類仕分けに利用できる。
【００４８】
一方、トピックモデルにデータベースレコード群を入力する場合、上述した形態素解析は必要なく、個々のレコードが１文書に相当し、個々のフィールド値が単語に相当する。その機械学習の処理については図１０を用いて後で詳細に説明する。ただし、レコード群にはトランザクションデータ固有の問題がある。
【００４９】
第１に、データベースレコード内の情報はディスク節約などのため通常符号化されており、符号化されたフィールド値をそのまま入力ベクトルとして使うと、符号値である「０」や「１」が極端に頻出する入力ベクトルとなり、学習する機械は適切な解釈ができなくなる。
【００５０】
加えて機械学習の効率が悪くなり、膨大なサンプルデータを要するようになる。そこで、符号語（符号値）を復号してから機械学習すると、学習効率が上がり、少数のサンプルでも妥当な学習が可能となる。
【００５１】
第２に、気温や時刻等の量的変数は単語文字列としてのバリエーションが広く、学習する機械は適切な解釈ができなくなる。仮に量的変数を直接に機械学習するとしても、その機械学習には極端に膨大な数のサンプルデータと処理時間を要して現実的ではない。
【００５２】
加えて、生成されたトピックをデータ分析作業者が解釈しにくくなる。例えば、「３」という単語がトピックを構成するキーワードになったとき、その単語がどこのテーブルで何を意味するかが多義的である。そこで、量的変数を質的変数に変換してから、変換された質的変数を機械学習する。
【００５３】
例えば、気象コードの「３」を「晴れ」に変換する。この変換により、比較的少数のサンプルで効率的に機械学習できるようになり、このような機械学習は計算資源の節約となる。さらに、短い期間で妥当な学習が可能となる。そして、データ分析作業者にとっても計算結果が理解しやすくなる。
【００５４】
図４は、変換関係定義テーブルの例を示す図である。変換関係定義テーブル４０１は、トランザクションテーブル名４０２、トランザクションフィールド名４０３、マスターテーブル名４０４、マスターフィールド名４０５、量質変換テーブル名４０６、および量質変換フィールド名４０７の各フィールドを備える。
【００５５】
例えば、変換関係定義テーブル４０１の１番目のレコードは、トランザクションテーブル名４０２が「Ｔａｂｌｅ−Ｂ」、トランザクションフィールド名４０３が「日付時刻」、量質変換テーブル名４０６が「日付、時刻」である。
【００５６】
このレコードにより、「Ｔａｂｌｅ−Ｂ」というトランザクションテーブルの「日付時刻」のフィールドにある日付時刻の量的な値を、「日付」という量質変換テーブルの情報と「時刻」という量質変換テーブルの情報に基づいて、質的な値に変換するという対応関係が定義されている。
【００５７】
また、変換関係定義テーブル４０１の３番目のレコードは、トランザクションテーブル名４０２が「Ｔａｂｌｅ−Ｂ」、トランザクションフィールド名４０３が「警報」、マスターテーブル名４０４が「Ｔａｂｌｅ−Ｍ１」、マスターフィールド名４０５が「Ｆ」である。そして、「Ｔａｂｌｅ−Ｍ１」というマスターテーブルの「Ｆ」のフィールドには、警報コードとして「１」や「９」などの符号語と意味（質）とが対応付けられている。
【００５８】
このレコードとマスターテーブルにより、「Ｔａｂｌｅ−Ｂ」というトランザクションテーブルの「警報」のフィールドにある警報コードを、「Ｔａｂｌｅ−Ｍ１」というマスターテーブルの「Ｆ」フィールドに基づいて、例えば「１」から「注意」などの意味に変換するという対応関係が定義されている。
【００５９】
このような変換関係定義テーブル４０１が用いられて、学習制御モジュール１０９は機械学習の前に、符号語を復号して量質変換できる。図４の例では、マスターテーブルと量質変換テーブルとが排反の例を示したが、マスターテーブルと量質変換テーブルの両方が定義されてもよい。
【００６０】
変換関係定義テーブル４０１にマスターテーブルと量質変換テーブルの両方が定義された場合、あらかじめ設定された情報に従ってどちらかのテーブルが選択されてもよいし、マスターテーブルと量質変換テーブルで定義される符号語あるいは量的変数が排反であり、変換対象の符号語あるいは量的変数に応じてどちらかのテーブルが選択されてもよい。
【００６１】
図５は、量質変換テーブルの例を示す図である。量質変換テーブルは、量的変数を質的変数に変換する対応関係を定義するテーブルである。量的変数には、日付、時刻、位置、距離、価格、温度、年齢などがあり、数値で表され、暗に連続的な数値である。
【００６２】
例えば、２０１７年１１月３０日は木曜日である。２０１７年１１月３０日は量的であり、秋や木曜日という表現は質的であるとみなす。質的変数を量的変数に変換するには特別な制約条件を要するが、その逆の変換は可能である。
【００６３】
このような量質変換テーブルの中で、量質変換テーブル５０１は時刻に関するテーブルであって、１つの量的変数から複数の質的変数への変換を可能にするテーブルである。量質変換テーブル５０１は、下限値５０２、上限値５０３、質的表現（１）５０４、質的表現（２）５０５、逆引きテーブル名５０６、およびレコード番号５０７の各フィールドを備える。
【００６４】
例えば、量質変換テーブル５０１の１番目のレコードは、下限値５０２が「１４：００：００」、上限値５０３が「１４：５９：５９」、質的表現（１）５０４が「昼間」、質的表現（２）５０５が「２時台」である。
【００６５】
このレコードにより、量的表現としての時刻が、「１４：００：００」と「１４：５９：５９」との間に入るのであれば、「昼間」と「２時台」という質的表現に変換するという対応関係が定義されている。また、図４に示した変換関係定義テーブル４０１を逆引きできるように、逆引きテーブル名５０６とレコード番号５０７の各フィールドを備える。
【００６６】
そして、図５に示した例で、「１４：０６」という特定の時刻は、１番目のレコードと２番目のレコードの「昼間」、「２時台」、および「午後」と３つの質的表現が対応付けられている。
【００６７】
量質変換テーブル５０１を用いた変換処理によって、データのおおまかな特徴を機械が学習しやすくなり、少ないサンプルでの機械学習を効率化し、同時に計算資源消費を抑制し、高速な処理を実現できる。
【００６８】
文書での単語の仕分けと異なり、トランザクションレコードのデータ値には多様な量的変数が含まれ、かつ量的変数のデータこそがレコードの本質的な情報である。トピックモデルを用いた機械学習において、レコードに含まれるトピックを推定するとき、「１４：０６」という単語の出現頻度で学習するよりも、「午後」あるいは「２時台」などの広い解釈を含めた単語の出現頻度で学習する方が、データ分析支援に寄与しやすい。
【００６９】
図６は、データと処理の関係の例を示す図である。データレイク１０３内のトランザクションＤＢ１０６のトランザクションテーブルのデータが、データ分析支援システム１０１へ入力される。図６に示した例で、トランザクションＤＢ１０６には、Ｔａｂｌｅ−Ａ６０１とＴａｂｌｅ−Ｂ６０２の２つのトランザクションテーブルがある。
【００７０】
Ｔａｂｌｅ−Ａ６０１は、日付時刻６０３、担当者６０４、場所６０５、および作業６０６の各フィールドを備え、作業者の作業記録が格納される。Ｔａｂｌｅ−Ｂ６０２は、日時６０７、警報６０８、および位置６０９の各フィールドを備え、ある設備のセンサ出力記録が格納される。
【００７１】
このように図６の例は、これらの情報源を元にした異種テーブルであるＴａｂｌｅ−Ａ６０１とＴａｂｌｅ−Ｂ６０２が、日時と場所の関係を介して分析支援を行う場合の例である。
【００７２】
学習テーブル６１０と学習テーブル６１１は、トピックモデルに基づく学習結果が格納される学習ＤＢ１１４のテーブルである。Ｔａｂｌｅ−Ａ６０１に格納されたデータが、復号され、量的変数から質的変数に変換されて、変換された質的変数の機械学習による学習結果が学習テーブル６１０に格納される。
【００７３】
また、Ｔａｂｌｅ−Ｂ６０２に格納されたデータが、復号され、量的変数から質的変数に変換されて、変換された質的変数の機械学習による学習結果が学習テーブル６１１に格納される。
【００７４】
そして、学習テーブル６１０は、トピック番号６１２、キーワード６１３、および出現確率６１４の各フィールドを備え、オブジェクト指向の書式で示されている。学習テーブル６１０も同じ各フィールドを備える。
【００７５】
トピック番号６１２の採番では、例えば、１つ目のテーブル（Ｔａｂｌｅ−Ａ６０１）に対する１つ目のトピックを「＃１−１」と番号付ける。トピックは１０個に分けるものとする。ここで、１０個はあらかじめ設定された個数であってもよいし、計算された個数であってもよい。
【００７６】
このようにして、Ｔａｂｌｅ−Ａ６０１とＴａｂｌｅ−Ｂ６０２が、それぞれ１０トピックに仕分けられた場合のトピック群が学習テーブル６１０と学習テーブル６１１にそれぞれ示されている。
【００７７】
Ｔａｂｌｅ−Ａ６０１が分析されて得られたトピックは１０個である。例えば、トピック番号６１２が「＃１−１」のトピックは、キーワード６１３で示されるように「火曜」、「２時台」、「Ｈａｎｋａ」、および「大阪」などのキーワードによって潜在的な意味を示すトピックである。
【００７８】
また、キーワード６１３の各キーワードの出現確率は、出現確率６１４で示されるように「０．３１」、「０．２」、「０．０４」、および「０．０３」などであり、トピック番号６１２が「＃１−１」のトピックでの出現確率の総和は１．０である。
【００７９】
すなわち、あるレコードが存在した場合、「火曜」が「０．３１」の出現確率で含まれ、「２時台」が「０．２」の出現確率で含まれるときに、その存在したレコードは、トピック番号６１２が「＃１−１」のトピックに含まれると判定されることが原理的には可能である。
【００８０】
しかし、実際のレコードでは「火曜」のデータが含まれるか含まれないか２値的であり、中途半端な出現確率で存在することはない。このように、出現確率は、あくまでもトピックの潜在的な意味を示すものである。
【００８１】
同様に、Ｔａｂｌｅ−Ｂ６０２が分析されて得られたトピックは１０個ある。例えば、トピック番号が「＃２−２」のトピックは、「火曜」、「警報（３）」、および「大阪」などのキーワードによって潜在的な意味を示すトピックである。また、各キーワードの出現確率は「０．５１」、「０．０７」、「０．０１」などである。
【００８２】
集約テーブル６１５は、後述する組合せ最適化および基底集約の処理を経て、トピック同士の最適な組合せを集約した結果が格納される集約ＤＢ１１５のテーブルである。集約テーブル６１５は、グループ番号６１６、トピック番号６１７、キーワード６１８、および出現頻度６１９を各フィールドに備え、それらはオブジェクト指向の可変長である。
【００８３】
トピックグループは、学習テーブルをまたいだデータの関係性を示す情報である。トピックグループは、ある学習テーブルを構成する複数のトピックの中から１つのトピックが選択され、次の学習テーブルを構成する複数のトピックの中から１つのトピックが選択されて、学習ＤＢ１１４内の学習テーブルから順次に１つずつのトピックが選択されて組み合わせられたものである。
【００８４】
トピックグループは、グループ番号６１６により識別される。グループ番号６１６が「＃１」のトピックグループは、「Ｔｏｐｉｃ＃１−１」と「Ｔｏｐｉｃ２−２」を含む。これは、「火曜」などのキーワードが一致しており、最適な組合せと判定された組合せである。
【００８５】
グループ番号６１６が「＃１」のトピックグループの中で、「Ｈａｎｋａ」と「警報（３）」は元々Ｔａｂｌｅ−Ａ６０１とＴａｂｌｅ−Ｂ６０２すなわち異種テーブルに含まれる情報であり、テーブルの内容を既存のテーブルブラウザ等を用いて概観しているだけでは、両者の関係にデータ分析作業者は気付きにくい。
【００８６】
これらに加えて、場所と天気の関係を格納した異種テーブルがあったとき、複数のテーブル間の関係はさらに気付きにくい。例えば、この設備の故障を知らせる「警報（３）」は、雨天時に「Ｈａｎｋａ」の部品交換作業が不適切だったために断続的に起きていたものかもしれない。このような因果関係の仮説をデータ分析作業者が思いつくデータ発見の起点となりえる。
【００８７】
図７は、組合せ最適化の例を示す図である。集約制御モジュール１１０は、図６に示した学習テーブル６１０と学習テーブル６１１を入力し、集約テーブル６１５を出力する。このために、集約制御モジュール１１０は、以下で説明する処理を実行する。
【００８８】
説明のために、分析対象となる学習テーブル数をＰとする。トピックモデルに基づく機械学習を行うと、１つの学習テーブルは複数のトピック（分析軸）で仕分けられる。ここでの１つの学習テーブルを構成するトピック数をＱとする。
【００８９】
１つのトピックは、複数のキーワードと、対応する出現確率のデータを含む。ここでのトピックを構成するキーワード数をＲとする。ここでは説明の簡単化のために、どの学習テーブルも同じトピック数のトピックを含み、どのトピックも同じキーワード数のキーワードを持つとするが、同じでなくともよい。
【００９０】
ｐ番目の学習テーブルのｑ番目のトピックを構成するｒ番目のキーワードをｗ（ｐ，ｑ，ｒ）とし、対応するキーワードの出現確率をφ（ｐ，ｑ，ｒ）とする。キーワードｗは出現確率の高いもの順にソートされたものである。ｗ（ｐ，ｑ，１）は、ｐ番目のテーブルのｑ番目のトピック内で最頻のキーワードである。
【００９１】
あるトピックを構成するキーワードの出現確率の総和は１である。以下で単に出現確率と呼ぶ場合もキーワードの出現確率を示す。出現確率は最大値１最小値０の実数形式である。キーワードは可変長文字列形式である。
【００９２】
例えば、図６に示した例において、ｐ＝１の学習テーブル６１０を分析し、ｑ＝１のトピックとしてトピック番号６１２の「＃１−１」のトピックが得られた時、出現確率６１４が最大「０．３１」となるキーワード６１３は「火曜」である。このため、ｗ（ｐ，ｑ，１）＝「火曜」、φ（ｐ，ｑ，１）＝「０．３１」である。
【００９３】
トピックグループは複数の学習テーブルのトピックについてグループ分けが行なわれたものである。ここで、トピックグループの数は学習テーブルのトピック数と同じＱとする。
【００９４】
ｋ番目の学習テーブルのｊ番目のトピックがｉ番目のトピックグループに属するか否かを示す隣接行列ｘが定義できる。隣接行列ｘの要素値ｘ（ｉ，ｊ，ｋ）は、値が「１」であれば、対応する要素がトピックグループに属し、値が「０」であれば、対応する要素がトピックグループに属さない。
【００９５】
目的関数は、出現確率の高いキーワードが互いに多く含まれたトピック同士が同一トピックグループに属するように定義される。すなわち、図７に示すように、トピックグループを構成する複数トピックにおいて、トピック同士のキーワードが一致する範囲で出現確率の積の総和を計算し、その総和を最大化することを最適化目的とする。
【００９６】
キーワードが一致する範囲の判定のために、文字列照合する別関数を定義することによって、目的関数が隣接行列ｘの１次式として定式化されてもよい。キーワードの一致ではなく、あらかじめ設定された何らかの基準に基づくキーワードの近似であってもよい。キーワードｗが出現確率の高いもの順にソートされていることを利用し、出現確率の低いキーワードｗに関する計算は打ち切られてもよい。
【００９７】
トピックのトピックグループへの割当てが適切になされた隣接行列では、対応関係のある要素値だけが「１」となり、「１」となる要素値と同じ行の他の要素値、および「１」となる要素値と同じ列の他の要素値は「０」となる。すなわち、図７に示すように制約条件として、隣接行列の行方向の値の総和は「１」であり、列方向の値の総和も「１」であり、要素値ｘは２値である。
【００９８】
以上の定式化で得られる最適化問題は０１整数計画問題である。この定式化によって、一般的な最適化ソルバを用いて高速に最適解の隣接行列ｘを得ることができる。例えば学生のクラス分けに用いられるような別解法の手順が適用されてもよい。
【００９９】
図８は、データ分析支援システムの処理フローの例を示す図である。図８に示した処理フローは、統括制御モジュール１０８により全体が統括される。まず、統括制御モジュール１０８の制御により、対話制御モジュール１１１がユーザからの入力（要求）待ち状態になる。
【０１００】
ステップ８０１において、対話制御モジュール１１１はユーザからの入力を受け付け、受け付けた入力を統括制御モジュール１０８に渡す。統括制御モジュール１０８は入力に基づいて管理ＤＢ１１２を読み込み、初期設定し、トランザクションＤＢ１０６を開く。
【０１０１】
ステップ８０２において、統括制御モジュール１０８は、管理ＤＢ１１２の変換関係定義テーブル４０１を参照して、符号語を復号するテーブル関係を設定する。符号語を復号するテーブル関係は、学習制御モジュール１０９により設定されてもよい。
【０１０２】
ステップ８０３において、学習制御モジュール１０９は、量質変換ＤＢ１１３の量質変換テーブル５０１を参照して、量的変数を質的変数に変換するテーブル関係を設定する。これらの符号語を復号するテーブル関係の設定と、量的変数を質的変数に変換するテーブル関係を設定により、以下の処理にて復号と変換が可能になる。
【０１０３】
ステップ８０４において、学習制御モジュール１０９は、開かれたトランザクションＤＢ１０６の中で処理対象となるトランザクションテーブルそれぞれについてステップ８０５、８０６、８０９の処理をそれぞれ実行するように繰り返す。
【０１０４】
ステップ８０５において、学習制御モジュール１０９は、質的変数の数に基づいてトピック数Ｑを算出する。トピック数Ｑは、あらかじめユーザにより設定されてもよいし、データサンプルを用いて決められてもよい。データサンプルは、ステップ８０４の繰り返しの中でｉ番目のトランザクションテーブルから取得されてもよく、このために符号語が復号されたり、量的変数が質的変数に変換されたりしてもよい。
【０１０５】
ここで、本実施例固有の構成は、量質変換テーブル５０１を参照してトピック数Ｑを決めることである。例えば、質的変数として曜日だけに着目する場合、Ｑ≧７とすることによって曜日ごとの傾向が浮かび上がりやすくなる。
【０１０６】
場所を表す量的変数も量質変換されうる。量的変数の内容にかかわらず、（（質的変数の数）＋１）を用いると、分析した特徴成分が質的変数を１つずつ含み、かつ、雑音となる成分が残りの特徴成分に集まるため、注目した質的変数で分類する効果が高まる。
【０１０７】
量質変換テーブルにて、時間をｘ通りに仕分け、場所をｙ通りに仕分けるデータを用意し、関数ｆ（）：Ｑ＝ｆ（ｘ，ｙ）＝ｍａｘ（ｘ，ｙ）＋１、を定義してトピック数Ｑを設定する。ｘは、量質変換テーブル（日付）があらかじめ作成され、そのテーブルの行数が数えられた値である。ｙは、量質変換テーブル（場所）があらかじめ作成され、そのテーブルの行数が数えられた値である。
【０１０８】
さらに、ｚを量質変換テーブル（時刻）の行数として、関数ｇ（）：Ｑ＝ｇ（ｘ，ｙ，ｚ）＝ｍａｘ（ｘ，ｙ，ｚ）＋１を定義して、トピック数Ｑが設定されてもよい。あるいは、トピック数Ｑが、Ｑ＝ｘ＊ｙ＊ｚのように組み合わせ数の値であると、ユーザは、時空間の組合せに基づく分析結果を網羅的に見ることができる。
【０１０９】
ステップ８０６において、学習制御モジュール１０９は、ステップ８０４の繰り返しの中でｉ番目のトランザクションテーブルのレコードのそれぞれについてステップ８０７、８０８の処理をそれぞれ実行するように繰り返す。
【０１１０】
ステップ８０７において、学習制御モジュール１０９は、ステップ８０６の繰り返しのｊ番目のレコードに対応する入力ベクトルを作成する。この入力ベクトルの作成では、符号語を復号して量的変数を質的変数に変換しつつ、キーワードの集合が作成される。なお、ｊ番目のレコードに量的変数が含まれている場合は、復号がスキップされてもよい。
【０１１１】
ステップ８０８において、学習制御モジュール１０９は、トピック数Ｑと作成した入力ベクトルを用いて機械学習する。なお、機械学習の処理そのものは、学習制御モジュール１０９が実行してもよいし、データ分析支援システム１０１の外部で実行されてもよく、外部で実行する場合の学習制御モジュール１０９は、その外部へトピック数Ｑと入力ベクトルの情報を送り、学習結果を得てもよい。その機械学習の処理については図１０を用いて後で詳細に説明する。
【０１１２】
ステップ８０９において、学習制御モジュール１０９は、ステップ８０７、８０８の繰り返しが終了すると、その繰り返しにより得られたｉ番目のトランザクションテーブルの学習結果を保存する。
【０１１３】
ステップ８１０において、集約制御モジュール１１０は、トピック群の組合せを最適化する。図７を用いて説明した通り、最適解は図７に示す隣接行列ｘの形式である。隣接行列ｘの要素値を参照して、ｘ（ｉ，ｊ，ｋ）＝１であれば、ｋ番目の学習テーブルのｊ番目のトピックはｉ番目のトピックグループに属すると判定する。
【０１１４】
ステップ８１１において、集約制御モジュール１１０は、トピックグループを構成する各種のデータ（トピック、キーワード、および出現確率）を集約する。この集約のために、集約制御モジュール１１０は、第１に、おのおののトピックグループを示す索引ｉ（０≦ｉ≦Ｑ）について、トピックリストをメモリ領域に確保し、以下の第２と第３の処理手順を繰り返す。
【０１１５】
第２に、集約制御モジュール１１０は、ｉ番目のトピックグループに含まれるｋ番目の学習テーブルのｊ番目のトピックを構成するr番目の構成要素、すなわちキーワードｗ（ｋ，ｊ，ｒ）と出現確率φ（ｋ，ｊ，ｒ）をトピックリストに加えてメモリに保存する。
【０１１６】
第３に、集約制御モジュール１１０は、保存時にキーワードの重複を避けて統合する。例えば、トピックリストにあるキーワードと同じキーワードが別の学習テーブルでの構成要素であった場合、２つの出現確率の平均値を、そのキーワードの出現確率として計算して保存することにより、トピックリスト内のキーワードは、そのトピックリスト内で一意となる。
【０１１７】
これによって、それぞれの学習テーブルごとの分析結果が集約され、学習テーブルをまたいだデータ関係が顕在化する。そして、集約制御モジュール１１０は、メモリに保存した情報すなわち集約した各種のデータを、集約テーブルとして集約ＤＢ１１５に格納する。
【０１１８】
ステップ８１２において、対話制御モジュール１１１は、分析結果と対話入力領域をユーザ端末１０２のディスプレイに出力する。分析結果は、集約ＤＢ１１５から得た情報であり、トピックリストのキーワードと出現確率を含む。さらに、対話入力領域には、キーワードに並列してユーザ選択を受け付けるチェックボックスを含み、ユーザからの入力を受け付ける。
【０１１９】
ユーザが複数のチェックボックスを選択し、ユーザ端末１０２を用いて関連情報出力の指示を入力すると、対話制御モジュール１１１は、選択されたチェックボックスの情報を受け付けて、逆引き情報が検索されて、関連情報としてユーザ端末１０２に出力する。
【０１２０】
図５を用いて、チェックされたキーワードが「２時台」だった場合の関連情報の出力について説明する。統括制御モジュール１０８は、対話制御モジュール１１１から「２時台」のキーワードと関連情報の検索の要求を受け取り、受け取ったキーワードに基づいて量質変換テーブル５０１を参照し、受け取ったキーワードと同じ質的表現を含むレコードを検索する。
【０１２１】
この検索により、統括制御モジュール１０８は、１番目のレコードの質的表現（２）５０５に「２時台」を見つけて、見つかった１番目のレコードに登録された逆引きテーブル名５０６の「Ｔａｂｌｅ−Ｂ」とレコード番号５０７の「１」を得る。そして、統括制御モジュール１０８は、トランザクションＤＢ１０６から「Ｔａｂｌｅ−Ｂ」というトランザクションテーブルの１番目のレコードを検索する。
【０１２２】
統括制御モジュール１０８は、検索により見つけた１番目のレコードを得て、対話制御モジュール１１１へ送る。対話制御モジュールは受け取った１番目のレコードを、量質変換前の関連情報としてユーザ端末１０２に出力する。なお、逆引きテーブル名５０６とレコード番号５０７の情報が、関連情報としてユーザ端末１０２に出力されてもよい。
【０１２３】
図９は、ユーザ対話画面の例を示す図である。図９に示した画面９０１は、分析結果出力領域９０２と対話入力領域９０３を含み、図８を用いて説明したステップ８１２において作成出力される。図９に示した例において、分析結果出力領域９０２には、「Ｇｒｏｕｐ１」すなわちトピックグループ１の分析結果として、「火曜  ０．３１」のようにキーワードと出現確率のペアが列挙される。
【０１２４】
図９に示した例では、端的には、「火曜」が含まれるレコードはトピックグループ１に属する可能性が高いことを示している。また、「Ｇｒｏｕｐ２」のトピックグループ２には別のキーワードと出現確率が列挙されている。同一のキーワードが複数のトピックグループに出現してもよい。
【０１２５】
対話入力領域９０３はチェックボックスであり、ユーザがチェックボックスにチェックをつけて、キーワードを選択することが可能な入力領域である。図９に示した例では、「火曜」、「大阪」、および「警報（３）」それぞれのチェックボックスにチェックがついており、これらのキーワードがユーザにより選択された状態を示す。
【０１２６】
逆引き情報９０４は、分析の基となった情報を示し、関連情報としてステップ８１２で作成されて出力される。量質変換により「火曜」と解釈された数値が含まれるレコードは、「トランザクションテーブルＴａｂｌｅ−Ｂ」のレコード番号が１、４、５などのレコードであり、さらに「保守テーブルＴａｂｌｅ−Ｈ０」のレコード番号が２、３、４などのレコードである。
【０１２７】
データ分析作業者は、図９に示した以上の情報から「警報（３）」が「火曜」、「大阪」、および「晴」と同時に表れるという傾向を見いだせる。元々の警報情報が含まれた「トランザクションテーブルＴａｂｌｅ−Ｂ」だけを分析していても、「警報（３）」は不定期に各地で頻発していて、特定の曜日や場所に注目しにくい場合もあり得る。
【０１２８】
このような場合であって、特定の作業者の保守作業方法が不適切であり、特定の天候のときにのみ異常が生じるという複合要因による警報の原因を調べる場合、従来は、そのような仮説をデータ分析作業者が考えて、関係する異種データを自力で調べなければならなかった。
【０１２９】
その上、このような仮説の組合せは極めて多く、データ分析作業者の作業時間は極めて大きくなる傾向がある。本実施例では、そのような仮説の可能性について、トピックグループを提示することにより、データ分析作業者にリコメンドできる。データ分析作業者の作業時間が大幅に削減することが可能になる。
【０１３０】
すなわち、「トランザクションテーブルＴａｂｌｅ−Ｂ」、「保守テーブルＴａｂｌｅ−Ｈ０」、および天候テーブルなどの異種テーブルを集約して分析することにより、異種テーブル間に分散していた有用なパターンを、データ分析作業者に見つけやすくさせることが可能になる。
【０１３１】
図１０を用いてステップ８０８の機械学習の処理フローについて詳細に説明する。
機械学習への入力情報は、トピック出現頻度の偏りを示すパラメータα、語出現頻度の偏りを示すパラメータβ、サンプリング繰り返し回数上限のパラメータＳ、トピック総数Ｋ、レコードデータの集合ｒである。
【０１３２】
パラメータα、βには固定値の定常分布を初期値に用いてもよい。繰り返し回数上限のパラメータＳは固定値でもよい。また、変数には次の４つの仮定を設ける：（１）レコードにおけるトピックの出現確率はαのディリクレ分布に従う、（２）ｋ番目のトピックにおけるデータ値の出現確率はβのディリクレ分布に従う、（３）ｄ番目のレコードにおけるｉ番目のデータ値を出現させた潜在変数は多項分布に従う、および、（４）ｄ番目のレコードにおけるｉ番目のデータ値は多項分布に従う。
【０１３３】
また、２つの統計的変数：（１）ｄ番目のレコードにおいてトピックｋが出現した回数、および（２）全レコードに対してｋ番目のトピックがデータ値索引ｖに対して推定された回数、を定義する。
【０１３４】
ステップ１００１において、すべてのテーブルに対して以降の処理を繰り返し制御する。ステップ１００２において、すべてのレコードの量的なデータ値を分類して質的なデータ値に変換する。すべてのテーブルで同じレコード数を扱ってもよい。さらに、データ値ｗに一意的に対応する索引ｖを作成する。
【０１３５】
ステップ１００３において、以降の処理を繰り返し制御する。ステップ１００４において、すべてのレコードについて、以降の処理を繰り返し制御する。ステップ１００５において、すべてのデータ値レコードについて、以降の処理を繰り返し制御する。ステップ１００６において、上記仮定に基づいて潜在変数のサンプリングを行う。ステップ１００７において、２つの統計的変数の更新を行う。
【０１３６】
ステップ１００８において、パラメータα、βを更新する。ステップ１００９において、ｋ番目のトピックにおけるデータ値の出現確率φを出力し、さらに、作成済みのデータ値ｗも出力する。以上の処理を繰り返すことによって、実際のデータの統計的性質に基づいて、当初入力したパラメータα、βの精度を更新、収束させていくことができる。ステップ１０１０において、複数のトピック（ｗとφ）について組合せ最適化を行う。
【０１３７】
ステップ１００３からステップ１００９までの各ステップはステップ８０８の処理と等価であり、周辺化ギブスサンプリングの既存技術をベースとしている。
【符号の説明】
【０１３８】
１０１  データ分析支援システム
１０９  学習制御モジュール
１１０  集約制御モジュール
１１３  量質変換ＤＢ
１１４  学習ＤＢ
１１５  集約ＤＢ
【図１】
2019168820.tif 000003
【図２】
2019168820.tif 000004
【図３】
2019168820.tif 000005
【図４】
2019168820.tif 000006
【図５】
2019168820.tif 000007
【図６】
2019168820.tif 000008
【図７】
2019168820.tif 000009
【図８】
2019168820.tif 000010
【図９】
2019168820.tif 000011
【図１０】
2019168820.tif 000012