(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-12-12
(45)【発行日】2023-12-20
(54)【発明の名称】表形式データ生成システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231213BHJP
G06N 3/094 20230101ALI20231213BHJP
【FI】
G06N20/00
G06N3/094
(21)【出願番号】P 2023011550
(22)【出願日】2023-01-30
【審査請求日】2023-08-07
【新規性喪失の例外の表示】特許法第30条第2項適用 令和4年2月16日に、「令和3年度 国立大学法人滋賀大学大学院データサイエンス研究科 修士論文最終審査兼発表会」にて公開
【早期審査対象出願】
(73)【特許権者】
【識別番号】399009239
【氏名又は名称】株式会社帝国データバンク
(74)【代理人】
【識別番号】100096002
【氏名又は名称】奥田 弘之
(74)【代理人】
【識別番号】100091650
【氏名又は名称】奥田 規之
(72)【発明者】
【氏名】岡部 壮一郎
【審査官】坂庭 剛史
(56)【参考文献】
【文献】AN, Chunsheng et al.,"A K-means Improved CTGAN Oversampling Method for Data Imbalance Problem",2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS) [online],IEEE,2022年03月,[2023年09月20日検索],インターネット<URL:https://ieeexplore.ieee.org/document/9724741>,DOI: 10.1109/QRS54544.2021.00097
【文献】XU, Lei et al.,"Modeling Tabular Data using Conditional GAN",33rd Conference on Neural Information Processing Systems (NeurIPS 2019) [online],arXiv,2019年10月,[2023年09月25日検索],インターネット<URL:https://arxiv.org/abs/1907.00503v2>,1907.00503v2
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06Q 10/04
(57)【特許請求の範囲】
【請求項1】
実在表形式データを読み込み、学習データ及びメタデータを生成する入力側データ変換手段と、
入力されたランダムノイズを素に疑似データを生成するデータ生成手段と、
上記学習データ及び疑似データの入力を受け付けて、それぞれの真偽を判定するデータ識別手段と、
上記判定結果に基づいて上記データ識別手段及びデータ生成手段のパラメータを更新する学習処理手段と、
上記のパ
ラメータ更新を所定回数繰り返した後に、上記データ生成
手段によって生成された疑似データを、上記メタデータを参照して表形式データに成形する出力側データ変換手段とを備え、
上記メタデータには、カラム名、列クラスタ番号、表クラスタ番号、値と条件ベクトルを分けるキー群、列と認識するためのベクトルの長さが列クラスタ番号×表クラスタ番号毎に格納されており、
上記入力側データ変換手段は、実在表形式データを構成する各行の表全体におけるクラスタを特定し、表クラスタ番号を各行に付与する処理と、
各値の列中におけるクラスタを特定し、列クラスタ番号を各値に付与する処理と、
各行を表クラスタ毎に分離して小表化し、各小表を横方向に連結する処理と、
列クラスタ番号に対応した条件ベクトルを各値に付与し、学習データとなす処理を実行し、
上記出力側データ変換
手段は、上記疑似データを値の部分と条件ベクトルの部分に区画する処理と、
各値の条件ベクトルを削除する処理と、
疑似データを表クラスタ番号毎に分離して小表化し、各小表を縦方向に連結する処理と、
各列にカラム名を付与して疑似表形式データとなす処理を実行することを特徴とする表形式データ生成システム。
【請求項2】
上記入力側データ変換手段は、上記実在表形式データの各行に分類属性を特定するクラス番号が設定されている場合に、各行を表クラスタ番号×クラス番号毎に分離して小表化し、各小表を横方向に連結すると共に、クラス番号を含むメタデータをクラス番号×列クラスタ番号×表クラスタ番号単位で生成し、
上記出力側データ変換
手段は、上記メタデータを参照して各行にクラス番号を付与することを特徴とする請求項1に記載の表形式データ生成システム。
【請求項3】
上記メタデータに学習データ全体中の頻度が格納されており、
上記出力側データ変換
手段は、この学習データ全体中の頻度を参照し、疑似データの件数を調整することを特徴とする請求項1または2に記載の表形式データ生成システム。
【請求項4】
表形式データ評価手段を備え、
この表形式データ評価手段は、上記実在表形式データの各列の値を2列毎に組み合わせ、それぞれをX軸及びY軸の何れかの値として座標平面にプロットすることにより、複数の点の集合である散布図を生成し、外部に出力する処理と、
上記疑似表形式データの各列の値を2列毎に組み合わせ、それぞれをX軸及びY軸の何れかの値として座標平面にプロットすることにより、複数の点の集合である散布図を生成し、外部に出力する処理を実行することを特徴とする請求項1または2に記載の表形式データ生成システム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は表形式データ生成システムに係り、特に、列と行によって構成される表形式データを、人工知能を用いて擬似的に生成する技術に関する。
【背景技術】
【0002】
企業活動に伴って発生するデータの多くは、列と行の交点に値が配置された表形式データとして蓄積されており、昨今のビッグデータ活用ブームの観点からも、その重要性が認識されてきている。
例えば、多数の企業の財務データ等に基づき統計モデルを生成し、これに特定企業の同種データを適用することにより、当該企業が所定期間内に休廃業する確率を算出する技術が存在しているが(特許文献1)、統計モデル生成の基礎となる財務データは典型的な表形式データといえる。
【文献】特開2019-117443号公報
【0003】
このように、表形式データの収集及び蓄積は統計処理を前提とした将来予測等に有益であるといえるが、以下のような問題が指摘されている。
(1) データ不足の問題
専門性が高く収集コストの嵩むデータについては、慢性的なデータ不足の問題が生じている。
(2) 機密性保持の問題
データの中には個人情報や社外秘情報が含まれている可能性があり、これらを利用することによるリスクが懸念されている。
(3) 低品質データの問題
データ収集時に欠損や誤情報の混入が生じるリスクが常に存在している。
(4) 不均衡データの問題
分類問題などでは、データのクラスが不均衡となるケースがある。例えば、存続企業に係るデータは豊富に入手できるのに対し、倒産企業に係るデータは絶対的に不足しており、大きな偏りが生じている。
【発明の開示】
【発明が解決しようとする課題】
【0004】
この発明は、実在する表形式データの特徴を備えた表形式データを擬似的に生成する技術を確立することにより、表形式データの利用に係る上記の問題を解消することを目的としている。
【課題を解決するための手段】
【0005】
上記の目的を達成するため、請求項1に記載した表形式データ生成システムは、実在表形式データを読み込み、学習データ及びメタデータを生成する入力側データ変換手段と、入力されたランダムノイズを素に疑似データを生成するデータ生成手段と、上記学習データ及び疑似データの入力を受け付けて、それぞれの真偽を判定するデータ識別手段と、上記判定結果に基づいて上記データ識別手段及びデータ生成手段のパラメータを更新する学習処理手段と、上記のパラメータ更新を所定回数繰り返した後に、上記データ生成手段によって生成された疑似データを、上記メタデータを参照して表形式データに成形する出力側データ変換手段とを備え、上記メタデータには、カラム名、列クラスタ番号、表クラスタ番号、値と条件ベクトルを分けるキー群、列と認識するためのベクトルの長さが列クラスタ番号×表クラスタ番号毎に格納されており、上記入力側データ変換手段は、実在表形式データを構成する各行の表全体におけるクラスタを特定し、表クラスタ番号を各行に付与する処理と、各値の列中におけるクラスタを特定し、列クラスタ番号を各値に付与する処理と、各行を表クラスタ毎に分離して小表化し、各小表を横方向に連結する処理と、列クラスタ番号に対応した条件ベクトルを各値に付与し、学習データとなす処理を実行し、上記出力側データ変換手段は、上記疑似データを値の部分と条件ベクトルの部分に区画する処理と、各値の条件ベクトルを削除する処理と、疑似データを表クラスタ番号毎に分離して小表化し、各小表を縦方向に連結する処理と、各列にカラム名を付与して疑似表形式データとなす処理を実行することを特徴としている。
【0006】
また、請求項2に記載した表形式データ生成システムは、請求項1に記載のシステムであって、上記入力側データ変換手段は、上記実在表形式データの各行に分類属性を特定するクラス番号が設定されている場合に、各行を表クラスタ番号×クラス番号毎に分離して小表化し、各小表を横方向に連結すると共に、クラス番号を含むメタデータをクラス番号×列クラスタ番号×表クラスタ番号単位で生成し、上記出力側データ変換手段は、上記メタデータを参照して各行にクラス番号を付与することを特徴としている。
【0007】
請求項3に記載した表形式データ生成システムは、請求項1または2に記載のシステムであって、上記メタデータに学習データ全体中の頻度が格納されており、上記出力側データ変換手段は、この学習データ全体中の頻度を参照し、疑似データの件数を調整することを特徴としている。
【0008】
請求項4に記載した表形式データ生成システムは、請求項1または2に記載のシステムであって、さらに表形式データ評価手段を備えており、この表形式データ評価手段は、上記実在表形式データの各列の値を2列毎に組み合わせ、それぞれをX軸及びY軸の何れかの値として座標平面にプロットすることにより、複数の点の集合である散布図を生成し、外部に出力する処理と、上記疑似表形式データの各列の値を2列毎に組み合わせ、それぞれをX軸及びY軸の何れかの値として座標平面にプロットすることにより、複数の点の集合である散布図を生成し、外部に出力する処理を実行することを特徴としている。
【発明の効果】
【0009】
この発明に係る表形式データ生成システムによれば、実在表形式データに基づいて生成された学習データを用い、いわゆる敵対的生成ネットワークの学習工程を通じて実在表形式データの特徴を備えた疑似表形式データを生成できるため、上記したデータ不足の問題、機密性保持の問題、低品質データの問題、不均衡データの問題を有効に解決することができる。
【図面の簡単な説明】
【0010】
【
図1】この発明に係る表形式データ生成システムの全体構成を示すブロック図である。
【
図2】学習データの生成に係る処理手順を示すフローチャートである。
【
図3】実在表形式データに表クラスタ番号を付与する様子を示す図である。
【
図4】混合正規分布モデルを用いたクラスタリングを説明する図である。
【
図5】実在表形式データに対して列クラスタ番号を付与した上で小表化し、横結合する様子を示す図である。
【
図6】値に条件ベクトルを付与して学習データとする様子等を示す図である。
【
図8】条件付き敵対的生成ネットワークを用いた疑似データの生成に係る処理手順を示すフローチャートである。
【
図9】疑似データを疑似表形式データに変換する際の処理手順を示すフローチャートである。
【
図10】疑似データを疑似表形式データに変換する際の処理手順を示す図である。
【
図11】余剰の疑似データを削除し、小表を縦結合する様子を示す図である。
【
図13】2列の実在表形式データの値と、この実在表形式データに基づいて生成された疑似表形式データの値を、それぞれXY平面上にプロットした結果を示す図である。
【
図14】3列の実在表形式データの値と、この実在表形式データに基づいて生成された疑似表形式データの値を、それぞれ2列単位で組み合わせてXY平面上にプロットした結果を示す図である。
【
図15】3列の実在表形式データの値と、この実在表形式データに基づき、従来のCTGANを用いて生成された疑似表形式データの値を、それぞれ2列単位で組み合わせてXY平面上にプロットした結果を示す図である。
【
図16】クラス番号を備えた実在表形式データに表クラスタ番号を付与する様子を示す図である。
【発明を実施するための最良の形態】
【0011】
図1のブロック図に示すように、この発明に係る表形式データ生成システム10は、実在表形式データ記憶部11と、入力側データ変換部12と、学習データ記憶部14と、メタデータ記憶部16と、学習処理部18と、ノイズ生成部20と、データ生成部22と、疑似データ記憶部24と、データ識別部26と、識別結果記憶部28と、出力側データ変換部30と、疑似表形式データ記憶部32と、表形式データ評価部34を備えている。
【0012】
上記の入力側データ変換部12、学習処理部18、ノイズ生成部20、データ生成部22、データ識別部26、出力側データ変換部30、表形式データ評価部34は、コンピュータのCPU(コンピュータがGPUを搭載している場合にはCPU及びGPU)がOS及び所定のアプリケーションプログラムに従って動作することにより実現される。
また、実在表形式データ記憶部11、学習データ記憶部14、メタデータ記憶部16、疑似データ記憶部24、識別結果記憶部28、疑似表形式データ記憶部32は、同コンピュータの記憶装置内に設けられている。
データ生成部22及びデータ識別部26は、ニューラルネットワークよりなる人工知能(AI)であり、いわゆる敵対的生成ネットワーク(Generative Adversarial Network/GAN)の「Generator」及び「Discriminator」として機能する。
【0013】
つぎに、
図2のフローチャートに従い、学習データの生成に係る処理手順を説明する。
まず、入力側データ変換部12によって、実在表形式データ記憶部11内に格納された実在の表形式データ36が読み込まれる(S10)。
ここで「表形式データ」とは、列と行の二つの属性に対して一つの値(連続値)が割り当てられている構造のデータを指している。
図3(a)は、表形式データ36の一例を示しており、A、B2つの列を備えた表形式データが示されている。値として記載された「a1」、「b1」「a2」、「b2」などには、実際には具体的な数値が充填されている。
【0014】
つぎに、入力側データ変換部12は、
図3(b)に示すように、表形式データ36の各行に対して表クラスタ番号を付与する(S12)。
ここで「表クラスタ番号」とは、表全体における各行の属するクラスタの番号を意味しており、入力側データ変換部12は各行に対して変分推論による混合正規分布モデルのクラスタリングを実行することにより、クラスタ番号を特定する。
【0015】
具体的には、
図4に示すように、複数の正規分布を発生させておき、ある点A(行を構成する値の組み合わせ)がどの正規分布に属している確率が高いかという基準でクラスタ番号を特定していく。
この際、最も確率の高いクラスタの番号を単純に選択するのではなく、所属確率の高い所定数のクラスタを絞り込んだ上で、その中からランダム抽出によって一のクラスタ番号を特定することが望ましい。
図4の例でいえば、(1)~(10)の10個の正規分布の中から点Aの所属する可能性の高いクラスタとして(1)~(3)に絞り込んだ後に、ランダム抽出で一のクラスタを選択することが該当する。
なお、発生させる正規分布の数については一定の上限(例えば10個)が設けられているが、入力側データ変換部12はその範囲内で最適な数を推定しながらクラスタリングを実行する。
【0016】
つぎに入力側データ変換部12は、表形式データ36の各値に対して列クラスタ番号を付与する(S14)。
ここで「列クラスタ番号」とは、各値が属する列においてそれぞれが属するクラスタの番号を意味しており、上記と同様、入力側データ変換部12は各値に対して混合正規分布モデルのクラスタリングを実行することにより、クラスタ番号を特定する。
図5(a)においては、「a4-『2』」や「b4-『2』」のように各値にハイフン付きの数字が追加されているが、これが列クラスタ番号に相当する。
【0017】
つぎに入力側データ変換部12は、各値を列毎のクラスタ単位で標準化する(S16)。
一般に、ニューラルネットワークを使用する際には値を標準化することが推奨されている。これは、データのスケールによってニューラルネットワーク内での重要性が変わるため、スケールを調整する必要があることから実施されている。
ただし、通常は列毎に標準化するところを、この発明では列毎のクラスタ単位で標準化を行う点に特徴がある。これは、マルチモーダル(多峰性)を考慮した結果である。
【0018】
つぎに入力側データ変換部12は、
図5(b)に示すように、各行を表クラスタ番号毎に集約した上で分離し、小表化する(S18)。
つぎに入力側データ変換部12は、
図5(c)に示すように、各小表を横方向に並べて横結合する(S20)。
各行を小表化して横結合する理由については、後述する。
【0019】
つぎに入力側データ変換部12は、
図6(a)に示すように、各値に条件ベクトルを付与して学習データを生成し、学習データ記憶部に格納する(S22)。
条件ベクトルは、各値の特性を0または1の組み合わせからなるOne-hotベクトルで表現したものよりなり、列単位のクラスタ番号が「1」の場合には「0,1」で表現され、列単位のクラスタ番号が「2」の場合には「1,0」で表現されている。
ここでは説明の便宜上、列単位のクラスタ番号が1か2に単純化されているため、条件ベクトルの桁数が2桁となっているが、例えば列のクラスタ番号が1~10まで存在する場合には、条件ベクトルの桁数も10となる。
【0020】
先のS18及びS20において各行を小表化して横結合したのは、この条件ベクトルの桁数を節約することが目的である。
仮に、小表化及び横結合をすることなく、
図5(a)の状態のデータに条件ベクトルを付与するとなると、
図6(b)に示すように、表クラスタ番号についても「1,0」で表現する必要が生じ、その分、条件ベクトルの桁数が増加して計算コストが嵩むこととなる。
このため、上記のように各行を表クラスタ番号単位で小表化し、それぞれを横結合して恰も別の列のごとく表現することにより、各値の条件ベクトルの桁数を節約している。
【0021】
つぎに、入力側データ変換部12はメタデータを生成し、メタデータ記憶部16に登録する(S24)。
ここでメタデータとは、学習完了後の疑似データを表形式に戻す際に参照されるデータであり、
図7に示すように、「(1) カラム名」、「(2) クラスタリングのモデル」、「(3) 列クラスタ番号」、「(4) クラス番号」、「(5) 表クラスタ番号」、「(6) 学習データ全体中の頻度」、「(7) 値と条件ベクトルを分けるキー群」、「(8) 列と認識するためのベクトルの長さ」のデータ項目を備えている。
【0022】
このメタデータは、「表クラスタ番号×列クラスタ番号×クラス番号」毎に生成される。ただし、この実施例における実在表形式データ36はクラス番号を備えていないため、「(4)クラス番号」についてはブランクとなされている。クラス番号については、後に詳述する。
また、メタデータは所定の順番(例えば最左小表の最左列から最右小表の最右列へと向かう順番)に従って生成される。このため、学習完了後の疑似データに対しても、同じ順番(位置)に従って参照すべきメタデータが特定される。
【0023】
以上のようにして機械学習の準備が整うと、敵対的生成ネットワーク(GAN)を用いた疑似データの生成が開始される。
この疑似データ生成工程自体は、従来の条件付きGAN(Conditional GAN)の手順と基本的に同じであるが、以下に
図8のフローチャートに従い簡潔に説明する。
【0024】
まず学習処理部18は、学習データ記憶部14から所定のバッチ数分の学習データを抽出する(S30)。
つぎに、学習処理部18の指令に基づき、ノイズ生成部20によってランダムノイズが生成され、データ生成部22に出力される(S32)。
データ生成部22は、このランダムノイズを種として疑似データを生成し、疑似データ記憶部24に格納する(S34)。
つぎに、学習処理部18によって学習データと疑似データがデータ識別部26に交互に投入される(S36)。
【0025】
これに対しデータ識別部26は、入力された各データについて真(1)か偽(0)かを判定(分類)し、その結果を識別結果記憶部28に格納する(S38)。
つぎに、学習処理部18がデータ識別部26による識別結果の正誤について評価し(S40)、その評価結果(ロス率)に基づいてデータ識別部26のパラメータを更新する(S42)。
【0026】
この後、学習処理部18によって上記の学習データと疑似データがデータ識別部26に再投入される(S44)。
これに対しデータ識別部26は、入力された各データについて真(1)か偽(0)かを再判定し、その結果を識別結果記憶部28に格納する(S46)。
つぎに、学習処理部18がデータ識別部26による識別結果の正誤について再評価し(S48)、その評価結果に基づいてデータ生成部22のパラメータを更新する(S50)。
【0027】
学習処理部18は、上記のS30~S50の処理を残りの学習データについてバッチ数単位で繰り返す。
また学習処理部18は、全学習データについてS30~S50の処理が完了した後、同じことを所定のエポック数分繰り返した後、学習工程を停止させる。
【0028】
この時点で、疑似データ記憶部24内には、学習データと特徴の良く似た疑似データが格納されていることになるが、値に条件ベクトルが付加された形式であり、人間にとって理解し難い状態であるため、出力側データ変換部30によって人間が理解し易い表形式データに変換される。
以下、
図9のフローチャートに従い、この変換処理について説明する。
【0029】
まず出力側データ変換部30は、疑似データ記憶部24から疑似データを読み込む(S50)。
つぎに、出力側データ変換部30はメタデータ記憶部16に格納された対応のメタデータを参照し、疑似データの値と条件ベクトルを識別する(S52)。
すなわち、
図10(a)に示す通り、生成された疑似データは値と条件ベクトルが混在した状態であり、人間にとっては無秩序な数値の連続に見える。
そこで出力側データ変換部30は、メタデータの「(7) 値と条件ベクトルを分けるキー群」を参照し、
図10(b)に示すように、値の部分と条件ベクトルの部分を識別する。
因みに、「(7) 値と条件ベクトルを分けるキー群」には、以下のように充填されている要素の種類と数が定義されている。
[値:1]、[条件ベクトル:2]
【0030】
つぎに出力側データ変換部30は、
図10(c)に示すように、メタデータの「(8) 列と認識するためのベクトルの長さ」を参照し、区切りとなる箇所を認識した上で(S54)、区切った要素単位で条件ベクトルを削除する(S56)。
つぎに出力側データ変換部30は、
図10(d)に示すように、メタデータの「(5) 表クラスタ番号」を参照し、疑似データの値の部分を表クラスタ番号毎に分離し、小表化する(S58)。
【0031】
図11(a)に示すように、データ生成部22は学習データの数よりも多目に疑似データを生成するよう機能する。
このため出力側データ変換部30は、
図11(b)に示すように、余剰データを削除する(S60)。余剰データの範囲については、出力側データ変換部30がメタデータの「(6) 学習データ全体中の頻度」を参照し、各表クラスタがどの程度の割合かに基づいて判断する。
また、削除するとは言っても、ある値以降を一律に除去するのではなく、必要な数だけデータをランダムに抽出し、残りのデータを破棄することによって数の調整がなされる。
【0032】
つぎに出力側データ変換部30は、
図11(c)に示すように、各小表を縦結合し、本来の表形式に戻す(S62)。
つぎに出力側データ変換部30は、
図12に示すように、各列にカラム名を付与して疑似表形式データ38を生成し、疑似表形式データ記憶部32に格納する(S64)。
【0033】
つぎに、このシステム10によって生成された疑似表形式データ38の完成度(妥当性)について検証する。
まず
図13(a)は、X列及びY列の2列よりなる実在表形式データ36の値を、表形式データ評価部34がXYの座標平面上にそのままプロットし、ディスプレイ40またはプリンタ42を介して出力した結果を示している。
図示の通り、座標平面上には二つの三日月状の図形が上下に組み合わされている様子が描かれている。
【0034】
これに対し
図13(b)は、上記実在表形式データ36から学習データを生成し、これに基づいて学習を行ったデータ生成部22が生成した疑似データを、出力側データ変換部30が疑似表形式データ38に整形した後、表形式データ評価部34が各値をXYの座標平面上にプロットした結果を示している。
図示の通り、個々の三日月形状には若干の崩れが生じているとはいえ、全体的なイメージとしてはかなりの再現性が認められる。
【0035】
図13(c)~(f)は、既存の敵対的生成ネットワークであるCT GAN、TGAN、CWGAN、Table GANによって生成した2列の疑似表形式データを、表形式データ評価部34がXYの座標平面上にプロットした結果をそれぞれ示している。
図より明らかなように、既存の技術を用いた場合、元の表形式データの特徴が全く再現されていない。
【0036】
つぎに、3列以上の表形式データの評価方法について説明する。
図14(a)は、列1、列2、列3の3つの列を備えた実在表形式データ36を示しており、
図14(b)は、表形式データ評価部34によって描画された実在表形式データ36の分析シート50を示している。
【0037】
この分析シート50は9つのマスを備えており、各マスは以下の内容を備えている。
マス(1):列1に属する各値の分布状況を示すヒストグラム。
マス(2):列1に属する値をX軸に、列2に属する対応の値をY軸にプロットした場合の分布状態を示す散布図。
マス(3):列1に属する値をX軸に、列3に属する対応の値をY軸にプロットした場合の分布状態を示す散布図。
マス(4):列2に属する値をX軸に、列1に属する対応の値をY軸にプロットした場合の分布状態を示す散布図。
マス(5):列2に属する各値の分布状況を示すヒストグラム。
マス(6):列2に属する値をX軸に、列3に属する対応の値をY軸にプロットした場合の分布状態を示す散布図。
マス(7):列3に属する値をX軸に、列1に属する対応の値をY軸にプロットした場合の分布状態を示す散布図。
マス(8):列3に属する値をX軸に、列2に属する対応の値をY軸にプロットした場合の分布状態を示す散布図。
マス(9):列3に属する各値の分布状況を示すヒストグラム。
【0038】
すなわち、この分析シート50のマス(1)、(5)、(9)は、それぞれ列1、列2、列3の値の列毎の分布状況を可視化したものであり、他のマスは表が有する3つの列の中から2つの列同士を組み合わせ、それぞれの値を座標平面のX軸及びY軸にプロットすることにより、列間の関連性を可視化したものである。
このように、3列以上の表形式データであっても、2列単位で値を組み合わせ、それぞれをXY平面状に配置することにより、列間の関連性を二次元的な図形とし視覚的に表現することが可能となる。
【0039】
これに対し
図14(c)は、
図14(a)の実在表形式データ36から学習データを生成し、これに基づいて学習を行ったデータ生成部22が生成した疑似データを、出力側データ変換部30が疑似表形式データ38に整形したものを示している(図中の「*」には、実際には具体的な数値が充填されている)。
また
図14(d)は、表形式データ評価部34によって描画された疑似表形式データ38の分析シート52を示している。
【0040】
この分析シート52も(1)~(9)の9つのマスを備えており、各マスの内容は上記した分析シート50と同じである。
ここで両分析シートを比較すると、各マスに描画された図形は比較的類似していることが視覚的に認識でき、実在表形式データ36の特徴が疑似表形式データ38においてうまく再現されていることが理解できる。
【0041】
図15は、比較対象として従来のCTGANによる分析結果を示すものである。
すなわち、
図15(c)は、
図15(a)の実在表形式データ36(
図14(a)の実在表形式データ36と同じもの)から学習データを生成し、これに基づいてCTGANによる学習を行って生成した疑似データを、出力側データ変換部30が疑似表形式データ54に整形したものを示している(図中の「*」には、実際には具体的な数値が充填されている)。
また
図15(d)は、表形式データ評価部34によって描画された疑似表形式データ54の分析シート56を示している。
【0042】
この分析シート56も(1)~(9)の9つのマスを備えており、各マスの内容は上記した分析シート50と同じである。
ここで両分析シートのマス(1)、マス(5)、マス(9)を比較すると、各値の列毎の分布状況については良く再現されていることがわかる。
一方、残りのマス同士を比較すると、両者間には描かれた図形の形状や寸法、数、配置に大きな隔たりがあり、列間の関連性がうまく再現されていないことが一目で理解できる。
【0043】
CTGANは、元々疑似表形式データの生成を企図して開発された技術ではあるが、列間の関連性を取り込む工夫がなされていないため、上記の結果も当然といえる。
これに対し本発明では、列間の関連性を表クラスタ番号として表現し、GANによる学習工程に反映させる仕組みを備えているため、実在表形式データ36の特徴をうまく捉えた疑似表形式データ38の生成に成功している。
【0044】
敵対的生成ネットワークは、主として画像データの生成目的で開発されたものであり、出力された画像を視覚を通じて比較することで容易にその性能評価が可能であったが、疑似表形式データの出来不出来を人間が感覚的に認識することは困難であり、これまではその完成度について等閑視されてきた。
これに対し、この発明では表形式データを構成する各列の値をX軸あるいはY軸の値と見立てて座標平面上にプロットするという発想により、上記のように表形式データの特徴を視覚的に表現可能としている。
【0045】
このシステム10においては、実在表形式データ36にクラス(分類)が存在する場合であっても、これを疑似表形式データ38の生成に反映させることが可能となる。例えば、倒産企業に係る財務データと存続企業に係る財務データとを別個のクラスに属するデータとして扱うことが該当する。
この場合、
図16(a)に示すように、実在表形式データ36の各行に予めクラス番号を設定し、それぞれの所属クラスを明示しておくことにより、クラスを列間の関連性の一部として組み込むことができる。
【0046】
入力側データ変換部12は、
図16(b)に示すように、このクラス番号付き実在表形式データ36の各行に対し、上記と同様の手法(混合正規分布モデルを用いたクラスタリング)により表クラスタ番号を付与する。
この後、図示は省略するが、以下の処理が実行されてクラス番号付きの疑似表形式データ38が生成される。
(1) 入力側データ変換部12が、クラス付きの表形式データ36の各値に対して、列クラスタ番号を付与する。
(2) 入力側データ変換部12が、各行を「クラス番号×表クラスタ番号」毎に集約した上で分離し、小表化する。
(3) 入力側データ変換部12が、各小表を横方向に並べて横結合する。
(4) 入力側データ変換部12が、各値に条件ベクトルを付与して学習データを生成する。
(5) 入力側データ変換部12が、メタデータを生成する。
このメタデータは、上記のように「列クラスタ番号×クラス番号×表クラスタ番号」単位で生成される。
(6) 学習データを基に、データ識別部26との競合を通じて学習したデータ生成部22により、疑似データが生成される。
(7) 出力側データ変換部30が、メタデータを参照することにより、疑似データを疑似表形式データ38に変換する。
この際、出力側データ変換部30はメタデータ中のクラス番号に基づき、各行に対応のクラス番号を付与する。
【0047】
存続企業の数に比べて倒産企業の数が圧倒的に少ないのが現状であり、このシステム10によってクラス番号付きの表形式データを増殖することにより、データの不均衡問題を有効に解決することが可能となる。
【符号の説明】
【0048】
10 表形式データ生成システム
11 実在表形式データ記憶部
12 入力側データ変換部
14 学習データ記憶部
16 メタデータ記憶部
18 学習処理部
20 ノイズ生成部
22 データ生成部
24 疑似データ記憶部
26 データ識別部
28 識別結果記憶部
30 出力側データ変換部
32 疑似表形式データ記憶部
34 表形式データ評価部
36 実在表形式データ
38 疑似表形式データ
40 ディスプレイ
42 プリンタ
50 実在表形式データの分析シート
52 本発明による疑似表形式データの分析シート
54 従来のCTGANによる疑似表形式データ
56 従来のCTGANによる疑似表形式データの分析シート
【要約】
【課題】実在する表形式データの特徴を備えた表形式データを擬似的に生成する技術を確立する。
【解決手段】実在表形式データ36を読み込み、学習データ及びメタデータを生成する入力側データ変換部12と、ランダムノイズを素に疑似データを生成するデータ生成部22と、疑似データの真偽を判定するデータ識別部26と、判定結果に基づいてデータ識別部26及びデータ生成部22のパラメータを更新する学習処理部18と、パタメータ更新を所定回数繰り返した後、メタデータを参照して疑似データを表形式データに成形する出力側データ変換部30を備えた表形式データ生成システム10。
【選択図】
図1