(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118319
(43)【公開日】2024-08-30
(54)【発明の名称】データ処理プログラム,データ処理方法および情報処理装置
(51)【国際特許分類】
G06F 16/906 20190101AFI20240823BHJP
【FI】
G06F16/906
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023024677
(22)【出願日】2023-02-20
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】高橋 秀和
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175FA03
5B175HB03
(57)【要約】
【課題】データ集合に含まれるデータを適切に分類する。
【解決手段】個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する、処理をコンピュータに実行させる。
【選択図】
図28
【特許請求の範囲】
【請求項1】
個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、
算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、
前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する
処理をコンピュータに実行させる、データ処理プログラム。
【請求項2】
前記算出する処理は、
前記データ集合に含まれる前記複数のデータを、前記複数の数値属性それぞれの数値に基づき複数の基底データ集合に分割し、
前記データ集合の前記傾向と、前記複数のデータそれぞれとの前記距離を、前記データ集合の前記傾向と、前記複数の基底データ集合それぞれとの平均二乗誤差の算出により、前記基底データ集合毎に算出する、処理を含み、
前記分割する処理は、前記データ集合を、前記平均二乗誤差の値に応じて前記基底データ集合毎に前記複数のグループに分割する、処理を含む、
請求項1に記載のデータ処理プログラム。
【請求項3】
前記分類する処理は、前記グループ毎に、前記グループに含まれる基底データ集合間の距離に基づいて、前記グループに含まれる前記基底データ集合どうしを併合する、処理を含む、
請求項2に記載のデータ処理プログラム。
【請求項4】
前記併合する処理は、前記グループ毎に、前記空間において隣接する基底データ集合どうしを併合して得られる部分データ集合に含まれるデータ数が所定の条件を満たすまで、前記隣接する基底データ集合どうしを併合する、処理を含む、
請求項3に記載のデータ処理プログラム。
【請求項5】
前記併合する処理は、前記グループに含まれる複数の前記基底データ集合のうちの、前記空間における前記複数の数値属性それぞれの最小値又は最大値のデータを含む基底データ集合から前記併合を開始する、処理を含む、
請求項4に記載のデータ処理プログラム。
【請求項6】
前記基底データ集合は、前記空間において第1の形状の領域であり、
前記併合する処理は、前記空間において前記部分データ集合を含む領域の形状が第2の形状となるように、前記隣接する基底データ集合どうしを併合する、処理を含む、
請求項4又は請求項5に記載のデータ処理プログラム。
【請求項7】
前記算出する処理は、前記データ集合に含まれる前記複数のデータの回帰分析により、前記データ集合の前記空間中の傾向を算出する、処理を含む、
請求項1~請求項5のいずれか1項に記載のデータ処理プログラム。
【請求項8】
個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、
算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、
前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する
処理をコンピュータが実行する、データ処理方法。
【請求項9】
個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、
算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、
前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する
制御部を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理プログラム,データ処理方法および情報処理装置に関する。
【背景技術】
【0002】
複数の数値属性を有するデータのデータセット(データ集合)から、属性値等に基づきデータを分類、例えばグループ化する手法が知られている。当該手法により得られるグループは、セグメントと称されてもよい。また、当該手法は、セグメント抽出又はData Segmentationと称されてもよい。セグメントは、データ集合から抽出される部分データ集合の一例である。
【0003】
例えば、データセットが、属性として収入(income)及び借入金額(loan_amount:融資額)を含む住宅融資データであるものとする。なお、収入及び借入金額の間のように、属性間には、所定の関係性、例えば相関関係等の傾向が存在する。
【0004】
例えば、住宅融資データがマーケティング等のデータ分析に利用される場合を想定する。一例として、セグメント抽出により、住宅融資データから、収入区分=1(<$20k),借入金額区分=1(<$500k)等の条件を満たすセグメント(顧客グループ)を抽出できる。これにより、ユーザは、属性(例えば収入又は借入金額)の区分毎に条件を揃えた顧客グループについて、顧客グループ内又は顧客グループ間のデータ比較を行なうことが可能となる。
【0005】
セグメント抽出の手法の一例として、χ(カイ)マージがある。χマージは、χ2乗検定を用いたボトムアップな分割点決定方式の1つである。χマージでは、属性値を離散化し、隣接する区間で各データクラスの度数分布に有意な差がない区間を併合する処理が行なわれる。
【0006】
また、セグメント抽出の手法の他の例として、凝集型クラスタリングがある。凝集型クラスタリングは、ボトムアップ型のクラスタリング方式の1つである。凝集型クラスタリングでは、各データを要素数=1のクラスタに入れ、それらのクラスタ間の距離に従って、クラスタの併合を繰り返す処理が行なわれる。凝集型クラスタリングにおいて、クラスタ間の距離は、属性値から算出される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2017-38161号公報
【特許文献2】米国特許出願公開第2018/0083995号明細書
【特許文献3】米国特許出願公開第2019/0005112号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述したセグメント抽出の手法では、例えば、度数分布又は属性値が類似するデータどうしが1つのセグメントに併合される。このため、抽出される同一セグメント内に、データセット全体の傾向に従ったデータと、当該傾向とは異なるデータとが混在することがある、換言すれば、セグメント抽出により適切なセグメントが得られない可能性がある。
【0009】
適切なセグメントが得られないことにより、例えば、セグメント内又はセグメント間のデータを利用する種々の処理において精度の低下が発生する可能性がある。
【0010】
1つの側面では、本発明は、データ集合に含まれるデータを適切に分類することを目的の1つとする。
【課題を解決するための手段】
【0011】
1つの側面では、データ処理プログラムは、コンピュータに、以下の処理を実行させてよい。前記処理は、個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出してよい。また、前記処理は、算出した前記距離に基づいて、前記データ集合を複数のグループに分割してよい。さらに、前記処理は、前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類してよい。
【発明の効果】
【0012】
1つの側面では、本発明は、データ集合に含まれるデータを適切に分類することができる。
【図面の簡単な説明】
【0013】
【
図1】データセットに含まれる複数のデータの散布図の一例を示す図である。
【
図2】
図1に示すデータセットから抽出したセグメントの母数のヒートマップの一例を示す図である。
【
図3】
図2に示すセグメントの併合結果の一例を示す図である。
【
図4】
図1に示す散布図におけるデータの傾向の一例を示す図である。
【
図5】一実施形態に係るサーバにより分割されるグループの一例を説明するための図である。
【
図6】一実施形態に係るサーバにより分類されるデータの一例を説明するための図である。
【
図7】一実施形態の一例としてのサーバの機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
【
図8】一実施形態の一例としてのサーバのソフトウェア構成例を示すブロック図である。
【
図10】入力データの散布図の一例を示す図である。
【
図11】平均二乗誤差の算出処理の一例を示す図である。
【
図12】分類部による基底セグメントのグループ分け処理の一例を説明するための図である。
【
図13】分類部による基底セグメントのグループ分け処理の一例を説明するための図である。
【
図14】基底セグメントの併合条件の一例を説明するための図である。
【
図15】基底セグメントの併合処理の一例を説明するための図である。
【
図16】基底セグメントの併合処理の一例を説明するための図である。
【
図17】基底セグメントの併合処理の一例を説明するための図である。
【
図18】基底セグメントの併合処理の一例を説明するための図である。
【
図19】基底セグメントの併合処理の一例を説明するための図である。
【
図20】基底セグメントの併合処理の一例を説明するための図である。
【
図21】基底セグメントの併合処理の一例を説明するための図である。
【
図22】基底セグメントの併合処理の一例を説明するための図である。
【
図23】基底セグメントの併合処理の一例を説明するための図である。
【
図24】基底セグメントの併合処理の一例を説明するための図である。
【
図25】基底セグメントの併合処理の一例を説明するための図である。
【
図26】基底セグメントの併合処理の一例を説明するための図である。
【
図27】基底セグメントの併合処理の一例を説明するための図である。
【
図28】一実施形態に係るサーバの動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して本プログラム,方法および装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0015】
〔A〕セグメント抽出の説明
まず、セグメント抽出について説明する。一実施形態では、収入(income)及び借入金額(loan_amount)の属性を有する住宅融資データがデータセットとして用いられる場合を例に挙げて説明する。
【0016】
図1は、データセットに含まれる複数のデータの散布図の一例を示す図である。
図1に例示するように、符号Aで示す散布図は、横軸を収入、縦軸を借入金額として定義された二次元空間上に、データをプロットしたものである。なお、横軸及び縦軸の値は、それぞれ、実際の収入及び借入金額の値を0.0~1.0の範囲内に収まるようにスケーリングした値である。
【0017】
図2は、
図1に示すデータセットから抽出したセグメントの母数のヒートマップの一例を示す図である。
図2の符号Bに示すヒートマップには、横軸を収入、左縦軸を借入金額として定義された二次元空間上に、四角枠で示すセグメントが配置されている。セグメントの母数は、四角枠内に数字で表記されるとともに、右縦軸に示すように、母数が1000増加する度に四角枠内の網掛けが濃くなるような濃淡で表されている。
【0018】
図2の横軸及び縦軸の目盛りは、それぞれ、
図1に示す横軸及び縦軸の範囲を10段階のランクに分割したものである。例えば、左下の母数(データ数):225のセグメントは、ランク(1, 1)(収入,借入金額)のセグメントである。
【0019】
図2に例示するように、複数の属性(収入及び借入金額)の組み合わせでデータセットからセグメントが抽出されると、抽出されたセグメントの母数に極端な偏りが発生することがある。例えば、符号B1で示すランク(5, 1)のセグメントの母数は8004である一方、符号B2で示すランク(3, 4)のセグメントの母数は2であり、母数に4000倍以上の差がある。
【0020】
なお、
図2に例示するセグメントは、データセットを、各属性の値の範囲に応じた初期設定区間(
図2の例ではランク)で分割して得られる最小粒度のセグメントである。当該セグメントは、「基底セグメント」と称されてもよい。基底セグメントは、基底データ集合の一例である。
【0021】
図3は、
図2に示すセグメント(基底セグメント)の併合結果の一例を示す図である。
図3の符号Cに示すヒートマップには、所定のセグメント抽出手法により、
図2に示す基底セグメントを併合して得られたセグメントが、点線枠により示されている。併合して得られたセグメントの母数は、点線枠の左右方向中央の上部に太字の数字で示されている。所定のセグメント抽出手法としては、例えば、χマージ又は凝集型クラスタリング等の、度数分布又は属性値の類似に基づきセグメントを併合する、種々の手法が挙げられる。
【0022】
図4は、
図1に示す散布図におけるデータの傾向の一例を示す図である。
図4の符号Dに示す散布図において、データセット全体の傾向(全体傾向)を実線(符号D1参照)で示す。また、
図4の符号D2及びD3は、
図3に示す併合後のセグメントのうち、例えばランク(1~3, 1)の1つのセグメントに含まれるデータの傾向を示す。
【0023】
符号D2は、ランク(2, 1)の基底セグメントの一部と、ランク(3, 1)の基底セグメントの一部とに含まれるデータの傾向が、全体傾向に類似している範囲を示す。符号D3は、ランク(1, 1)の基底セグメントと、ランク(2, 1)の基底セグメントの一部とに含まれるデータの傾向が、全体傾向とは異なっている範囲を示す。
【0024】
このように、
図3に示す併合後のセグメントは、データの度数分布又は属性値が類似している基底セグメントどうしを単純に併合して得られたものであって、基底セグメントに含まれるデータの傾向が全体傾向と類似するか否かについては考慮されていない。このため、データセットの全体傾向とは異なる基底セグメントどうしが併合される、或いは、全体傾向に従ったデータを含む基底セグメントと全体傾向とは異なるデータを含む基底セグメントとが併合される、換言すれば、セグメント抽出により適切なセグメントが得られない可能性がある。
【0025】
適切なセグメントが得られないことにより、セグメント内又はセグメント間のデータを利用する種々の処理、一例として、抽出されたセグメント(例えば顧客グループ)を用いたデータ分析において、精度の低下が発生する可能性がある。例えば、セグメント内のデータが全体傾向と合わないことにより、データ比較等の分析に失敗する、又は、有効な比較結果が得られない場合がある。また、例えば、抽出されたセグメントに基づき加工したデータセットを訓練データとして利用し、機械学習モデルの機械学習を行なう場合には、訓練された機械学習モデルを用いた推論の精度が低下する可能性がある。
【0026】
そこで、1つの側面では、一実施形態において、データセットを適切なセグメントに分類するための手法を説明する。また、他の側面では、一実施形態において、セグメント間のデータ数の偏り(
図2参照)を軽減させるための手法を説明する。
【0027】
〔B〕一実施形態に係る手法の説明
一実施形態において、データ集合に含まれるデータを分類する装置、例えばサーバは、以下の(i)~(iii)の処理を実行してよい。
【0028】
(i)サーバは、個々のデータが複数の数値属性を有するデータ集合の複数の数値属性によって定義される空間中の傾向と、データ集合に含まれる複数のデータそれぞれとの距離を算出する。
【0029】
(ii)サーバは、算出した距離に基づいて、データ集合を複数のグループに分割する。
【0030】
(iii)サーバは、複数のグループのそれぞれにおいて、グループに含まれるデータ集合を複数の数値属性の値に基づいて分類する。
【0031】
これにより、一実施形態に係るサーバによれば、データ集合を属性間の関係性に沿った部分データ集合に分類することができる。
【0032】
図5は、一実施形態に係るサーバにより分割されるグループの一例を説明するための図である。
図5の符号Eは、住宅融資データに含まれる複数のデータを、横軸を収入、縦軸を借入金額として定義した二次元空間上にプロットした散布図の一部の領域の拡大図であり、符号Fは、
図1に例示する散布図である。
【0033】
符号Fで示す散布図において、データセットの全体傾向を表す直線を符号F1で示し、第1のセグメントの範囲(領域)を符号F2で示し、第2のセグメントの範囲(領域)を符号F3で示す。
【0034】
符号Eで示す散布図において、データセットの全体傾向を表す直線を符号E1で示し、符号F2のセグメントに含まれるデータの傾向を表す直線を符号E2で示し、符号F3のセグメントに含まれるデータの傾向を表す直線を符号E3で示す。なお、符号E1~E3,F1に示す直線は、一例として、データの回帰直線であってよい。
【0035】
符号E2で示す直線は、符号E1で示す直線と傾きが類似しているため、第1のセグメント(符号F2参照)は、全体傾向に類似するセグメントであるといえる。一方、符号E3で示す直線は、符号E1で示す直線と傾きに一定以上の差があるため、第2のセグメント(符号F3参照)は、全体傾向と異なるセグメントであるといえる。
【0036】
一実施形態に係るサーバによれば、上記(ii)の処理により、第1のセグメントの範囲に含まれるデータと、第2のセグメントの範囲に含まれるデータとを互いに異なるグループに含めるように、住宅融資データに含まれるデータを分割することができる。
【0037】
図6は、一実施形態に係るサーバにより分類されるデータの一例を説明するための図である。
図6の符号Gは、
図3に示す手法により分類されたセグメントを示し、
図6の符号Hは、一実施形態に係るサーバにより分類されたセグメントを示す。
【0038】
図6の符号G1に示すヒートマップ、及び、符号G2に示す散布図では、上述したように、住宅融資データの全体傾向とは異なるセグメントが併合される。
【0039】
一方、
図6の符号H1に示すヒートマップ、及び、符号H2に示す散布図では、例えば全体傾向との類似度が同程度であるグループ内の複数のデータ、例えば基底セグメントのそれぞれにおいて、基底セグメントに含まれるデータ(データ集合)が複数の数値属性の値に基づき分類される。一例として、複数の基底セグメントが1つのセグメントに併合される。
【0040】
一実施形態に係るサーバによれば、上記(iii)の処理により、データ傾向に従ったセグメント併合を実現できる。また、サーバは、併合後のセグメントに含まれるデータ数に上限を設けることにより、セグメント間のデータ数の偏りの軽減を実現できる。
【0041】
〔C〕ハードウェア構成例
一実施形態に係るサーバ1(
図8参照)は、仮想サーバ(VM:Virtual Machine)であってもよいし、物理サーバであってもよい。また、サーバ1の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、サーバ1の機能のうちの少なくとも一部は、クラウド環境により提供されるハードウェア(HW)リソース及びネットワーク(NW)リソースを用いて実現されてもよい。
【0042】
図7は、一実施形態の一例としてのサーバ1の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。サーバ1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが
図7に例示するHW構成を備えてよい。
【0043】
図7に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a,グラフィック処理装置10b,メモリ10c,記憶部10d,IF(Interface)部10e,IO(Input / Output)部10f及び読取部10gを備えてよい。
【0044】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10jで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0045】
プロセッサ10aとしては、例えば、CPU,MPU,APU,DSP,ASIC,FPGA等の集積回路(IC:integrated circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0046】
グラフィック処理装置10bは、IO部10fのうちのモニタ等の出力装置に対する画面表示制御を行なう。また、グラフィック処理装置10bは、機械学習モデルを利用した機械学習処理及び推論処理を実行するアクセラレータとしての構成を有してよい。グラフィック処理装置10bとしては、種々の演算処理装置、例えば、GPU(Graphics Processing Unit),APU,DSP,ASIC又はFPGA等の集積回路(IC)が挙げられる。
【0047】
メモリ10cは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10cとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0048】
記憶部10dは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10dとしては、HDD(Hard Disk Drive)等の磁気ディスク装置,SSD(Solid State Drive)等の半導体ドライブ装置,不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ,SCM(Storage Class Memory),ROM(Read Only Memory)等が挙げられる。
【0049】
記憶部10dは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10h(データ処理プログラム)を格納してよい。
【0050】
例えば、サーバ1のプロセッサ10aは、記憶部10dに格納されたプログラム10hをメモリ10cに展開して実行することにより、後述する制御部20(
図8参照)としての機能を実現できる。
【0051】
IF部10eは、サーバ1と他のコンピュータとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10eは、イーサネット(登録商標)等の電気通信(例えばLAN(Local Area Network))、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。
【0052】
なお、プログラム10hは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10dに格納されてもよい。
【0053】
IO部10fは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部10fは、入力装置及び表示装置が一体となったタッチパネル等を含んでもよい。出力装置は、グラフィック処理装置10bに接続されてよい。
【0054】
読取部10gは、記録媒体10iに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10gは、記録媒体10iを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10gとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10iにはプログラム10hが格納されてもよく、読取部10gが記録媒体10iからプログラム10hを読み出して記憶部10dに格納してもよい。
【0055】
記録媒体10iとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0056】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。
【0057】
〔D〕ソフトウェア構成例
図8は、一実施形態の一例としてのサーバ1のソフトウェア構成例を示すブロック図である。サーバ1は、情報処理装置又はコンピュータの一例である。
【0058】
図8に示すように、サーバ1は、例示的に、基底セグメント抽出部12,全体傾向抽出部13,指標値算出部14,分類部15,併合部16及び訓練データ生成部17を備えてよい。また、サーバ1は、機械学習処理を行なう場合には機械学習部18を備えてもよい。さらに、サーバ1は、推論処理を行なう場合には推論部19を備えてもよい。サーバ1が備えるブロック12~19は、制御部20の一例である。制御部20の機能は、例えば、
図7に示すコンピュータ10のプロセッサ10aが、メモリ10cに展開されたプログラム10hを実行することにより実現されてよい。
【0059】
また、
図8に示すように、サーバ1は、例示的に、入力データ11a,基底セグメント11b,全体傾向11c,指標値11d,分類済み基底セグメント11e,併合済みセグメント11f及び訓練データ11gを記憶可能な記憶領域を備えてよい。また、当該記憶領域は、サーバ1が機械学習部18を備える場合、機械学習モデル11hを記憶可能であってもよい。さらに、当該記憶領域は、サーバ1が推論部19を備える場合、推論用データ11i及び推論結果11jを記憶可能であってもよい。
【0060】
サーバ1が有する記憶領域は、例えば、
図7に示すコンピュータ10のメモリ10c及び記憶部10dのうちの一方又は双方の記憶領域により実現されてよい。
【0061】
サーバ1は、例えば、入力データ11a,訓練未実施の機械学習モデル11h及び推論用データ11iのうちの少なくとも1つを、図示しない他のコンピュータからIF部10e及びネットワークを介して受信し、記憶領域に格納してもよい。
【0062】
また、サーバ1は、例えば、記憶領域に格納された併合済みセグメント11f,訓練データ11g,訓練済みの機械学習モデル11h及び推論結果11jのうちの少なくとも1つを、IF部10e及びネットワークを介して、図示しない他のコンピュータに送信してもよい。なお、サーバ1は、中間データ、例えばデータ11b~11eのうちの少なくとも1つを、IF部10e及びネットワークを介して、図示しない他のコンピュータに送信してもよい。
【0063】
図9は、入力データ11aの一例を示す図である。入力データ11aは、データ集合の一例であり、例えば住宅融資データである。
図9に例示するように、入力データ11aは、収入(income)及び借入金額(loan_amount)の2つの属性を有するデータ(エントリ)の集合である。
【0064】
収入及び借入金額は、それぞれ、属性の値が数値である数値属性である。
図9の例では、収入の数値は、実際の収入の数値を、実際の収入の数値範囲に応じて0.0~1.0の範囲内に収まるようにスケーリングした値である。また、借入金額の数値は、実際の借入金額の数値を、実際の借入金額の最小値から最大値までの数値範囲に応じて0.0~1.0の範囲内に収まるようにスケーリングした値である。
【0065】
なお、
図9では、入力データ11aが10件のデータ(エントリ)を有する例を示すが、実際には多数(例えば1000件以上)のデータを有してよい。また、入力データ11aは、
図9に例示する属性以外に、他の数値属性及び非数値属性のうちの一方又は双方を含んでもよい。
【0066】
基底セグメント抽出部12は、入力データ11aから基底セグメント11bを抽出する。例えば、基底セグメント11bは、入力データ11aを、各属性の値の範囲に応じた初期設定区間で分割して得られる最小粒度のセグメントである。
【0067】
図10は、入力データ11aの散布図の一例を示す図である。
図10の符号Iに示す散布図は、横軸を収入、縦軸を借入金額として定義された二次元空間上に、入力データ11aに含まれる複数のデータの各々をプロットしたものである。
【0068】
図10の符号I1に示すように、基底セグメント11bは、例えば、収入及び借入金額の各々の数値範囲(0.0~1.0)を所定数(例えば10)に分割(区分け)した矩形領域のセグメントである。例えば、基底セグメント11bの初期設定区間は、横軸及び縦軸ともに0.1である。
【0069】
基底セグメント11bは、例えば、空間中のセグメントの位置(例えば各軸上の範囲),セグメントに含まれる(属する)データを特定するための情報,セグメントに含まれるデータ数,等の情報を含んでよい。
【0070】
なお、処理負荷の軽減のため、例えば、サーバ1は、処理対象の基底セグメント11bを、所定のデータ数以上の基底セグメント11bに制限してもよい。以下の説明では、サーバ1は、データ数が5以上の基底セグメント11bを処理対象にするものとする。
【0071】
全体傾向抽出部13は、入力データ11aから全体傾向11cを抽出する。全体傾向11cは、入力データ11aの複数の数値属性によって定義される空間中の傾向の一例である。全体傾向11cは、例えば、入力データ11aに含まれる複数のデータの分布傾向を、直線,曲線,又はこれらの組み合わせにより表現する数式であってよい。一例として、全体傾向11cは、入力データ11aに含まれる複数のデータに対する種々の回帰分析によって算出されてよい。一実施形態では、全体傾向11は、回帰分析の結果の一例として算出される回帰直線であってよい。全体傾向抽出部13による全体傾向11cの算出手法としては、既知の種々の手法が採用されてよい。
【0072】
図10の符号I2は、入力データ11aの回帰直線の一例である。符号I2で示す回帰直線は、符号Iで示す散布図の横軸をx軸,縦軸をy軸とすると、y=0.3687x+0.0857で表される。
【0073】
指標値算出部14は、基底セグメント11b及び全体傾向11cに基づき、指標値11dを算出する。指標値11dは、全体傾向11cと、入力データ11aに含まれるデータそれぞれとの距離の一例である。一実施形態では、指標値11dは、基底セグメント11b毎に算出されてよい。
【0074】
指標値11dとしては、例えば、データ群間の距離を表す種々の指標値が用いられてよく、一例として、平均二乗誤差(MSE:Mean Squared Error)が用いられてよい。
【0075】
指標値算出部14は、例えば、基底セグメント11b毎に、全体傾向11cと、当該基底セグメント11bに含まれるデータとの間のMSEを算出してよい。
【0076】
図11は、平均二乗誤差(MSE)の算出処理の一例を示す図である。
図11では、n(nは1以上の整数)個のデータを含む或る基底セグメント11b(破線枠参照)に着目する。基底セグメント11b内のデータをi(iは1以上n以下の整数)で示し、データiの収入(横軸)の数値及び借入金額(縦軸)の数値をそれぞれx
i及びy
iで示すと、MSEは、下記式(1)により算出されてよい。
【数1】
【0077】
以下、yハットをy^と表記する。上記式(1)において、y^iは、回帰直線y^におけるx=xiのときのy^の値を意味する。回帰直線は、y^=0.3687x+0.0857であるものとする。
【0078】
このように、サーバ1による上記(i)の処理は、基底セグメント抽出部12,全体傾向抽出部13及び指標値算出部14により実行されてよい。換言すれば、基底セグメント抽出部12,全体傾向抽出部13及び指標値算出部14は、入力データ11aの複数の数値属性によって定義される空間中の傾向と、入力データ11aに含まれるデータそれぞれとの距離を算出してよい。
【0079】
なお、指標値算出部14は、基底セグメント11b毎にMSEを算出するものとしたが、これに限定されるものではない。例えば、指標値算出部14は、基底セグメント11bよりも小さい粒度、一例として、データ毎に、全体傾向11cとデータとの間の距離を算出してもよい。この場合、指標値算出部14は、上記式(1)において、n=1とした計算を行なってよい。
【0080】
分類部15は、指標値算出部14が算出した距離に基づいて、入力データ11aを複数のグループに分割することで、サーバ1による上記(ii)の処理を実行する。
【0081】
分類部15は、例えば、指標値11dの一例であるMSEと所定の閾値とを比較し、比較結果に応じて、各基底セグメント11bを複数のグループのうちのいずれかのグループにグループ分けすることで、分類済み基底セグメント11eを取得してよい。分類済み基底セグメント11eは、例えば、基底セグメント11bの各々にグループの識別情報が付加された情報であってよい。
【0082】
図12及び
図13は、分類部15による基底セグメント11bのグループ分け処理の一例を説明するための図である。
図12の符号Jに示す散布図は、
図10の符号Iに示す散布図における各基底セグメント11bに、MSEと基底セグメント11b内のデータ数とを表記したものである。
図13の符号Kには、MSEと所定の閾値とに基づく各基底セグメント11bのグループ分け結果の一例を示す。
【0083】
図13の符号Kに例示するように、分類部15は、MSEが所定の閾値未満の基底セグメント11bを、細かい斜線で示す第1グループに分類し、MSEが所定の閾値以上の基底セグメント11bを、粗い斜線で示す第2グループに分類してよい。所定の閾値は、例えば、ユーザにより予め指定されてよく、
図13の例では、0.01である。
【0084】
MSEが小さいほど、全体傾向11cと基底セグメント11bとの間の距離が近い、換言すれば、基底セグメント11bに含まれるデータの傾向が全体傾向11cと類似することを意味する。一方、MSEが大きいほど、全体傾向11cと基底セグメント11bとの間の距離が遠い、換言すれば、基底セグメント11bに含まれるデータの傾向が全体傾向11cとは異なることを意味する。
【0085】
従って、第1グループは、入力データ11aに含まれる複数のデータのうちの、全体傾向11cと類似する傾向を有する基底セグメント11bに含まれるデータのグループであるといえる。また、第2グループは、入力データ11aに含まれる複数のデータのうちの、全体傾向11cと異なる傾向を有する基底セグメント11bに含まれるデータのグループであるといえる。
【0086】
なお、一実施形態では、1つの閾値を用いて、入力データ11aを2つのグループに分類する例を示すが、これに限定されるものではない。例えば、分類部15は、2つ以上の閾値を用いて、MSEが2つ以上の閾値により区分される3つ以上のグル-プのうちのいずれのグループに属するかに応じて、入力データ11aを3つ以上のグループに分類してもよい。
【0087】
併合部16は、複数のグループのそれぞれにおいて、グループに含まれる入力データ11aを複数の数値属性の値に基づいて分類することで、サーバ1による上記(iii)の処理を実行する。
【0088】
併合部16は、例えば、分類済み基底セグメント11eにおける同一のグループ毎に、同一のグループ内の基底セグメント11b間の位置(配置)関係に基づいて1以上の基底セグメント11bを併合することで、併合済みセグメント11fを取得してよい。併合済みセグメント11fは、部分データ集合の一例であり、例えば、基底セグメント11bの各々にセグメント(併合後のセグメント)の識別情報が付加された情報であってよい。
【0089】
例えば、併合部16は、所定の併合条件に従い、1以上の基底セグメント11bを併合してよい。併合条件は、例えば、以下の(a)~(d)の全てを含む条件であってよい。
【0090】
(a)併合の判定を開始する空間上の基底セグメント11bは、各軸の最小値又は最大値に位置する基底セグメント11bとする。例えば、併合部16は、二次元空間における複数の数値属性それぞれの最小値又は最大値のデータを含む基底セグメント11bから併合を開始する。
【0091】
一実施形態では、併合部16は、
図13の例における横軸の最小値(0.1~0.2),縦軸の最小値(0.0~0.1)の基底セグメント11b、換言すれば、左下端の基底セグメント11bから併合の判定を開始する。
【0092】
(b)併合部16は、同一グループ内の隣接する基底セグメント11bどうしを併合する。
「隣接する基底セグメント11b」とは、空間上の複数の軸のうちの、1つの軸の数値範囲が連続し、他の全ての軸の数値範囲が同一となる2つの基底セグメント11bを意味してよい。
【0093】
(c)併合後のセグメントに含まれるデータ数がN(Nは整数)未満となること。
Nは、例えば、ユーザにより予め指定されてよい。一実施形態では、N=200であるものとする。例えば、併合部16は、基底セグメント11bどうしを併合して得られるセグメントに含まれるデータ数が所定の条件を満たすまで、隣接する基底セグメント11bどうしを併合する。
【0094】
所定の条件とは、一例として、基底セグメント11bどうしを併合して得られるセグメントに含まれるデータ数が所定数(例えばN)を超えること、であってもよい。この場合、併合部16は、例えば、当該データ数がN=200を超える直前まで、隣接する基底セグメント11bどうしを併合してよい。
【0095】
(d)併合後のセグメントが矩形となること。
図14は、基底セグメント11bの併合条件の一例を説明するための図である。
図14の例では、実線で示す3つの基底セグメント11b(符号L参照)が、同一のグループに属する隣接する基底セグメント11bであるものとする。併合部16は、上記(b)の条件に従い、紙面左下及び左上の基底セグメント11bを併合する(符号L1参照)。
【0096】
一方、併合部16は、符号L1の併合の後に、紙面左上及び右上の基底セグメント11bの併合可否を判定するが、当該併合後に、3つの基底セグメント11bの形状は矩形とならない(符号L2参照)。このように、併合部16は、上記(b)の条件を満たす基底セグメント11bどうしを併合後のセグメントが矩形にならない場合、上記(d)の条件に従い、当該基底セグメント11bどうしの併合を抑制する。このように、併合部16は、セグメントが矩形形状となるように、隣接する基底セグメント11bどうしを併合する。
【0097】
なお、基底セグメント11bの二次元空間上における形状である矩形形状は、第1の形状の一例である。また、複数の基底セグメント11bの併合後の形状は、第2の形状の一例である。すなわち、併合部16は、空間において基底セグメント11bを含む領域の形状が第2の形状となるように、隣接する基底セグメント11bどうしを併合する、といえる。複数の数値属性によって定義される空間が二次元以外、例えば三次元である場合、第1及び第2の形状のそれぞれは、例えば、直方体等の形状であってもよい。第1の形状及び第2の形状の少なくとも一方は、上述した形状に限定されるものではなく、種々の幾何学的形状であってもよい。
【0098】
併合部16は、上記(a)~(d)の併合条件に基づき、グループ毎に、基底セグメント11bの併合可否の判定を繰り返し、全ての基底セグメント11bについての判定(分類)が終了すると、併合済みセグメント11fを出力してよい。併合済みセグメント11fの出力は、例えば、サーバ1の出力装置(IO部10f)への画面表示やユーザへの通知、併合済みセグメント11fを利用するソフトウェア(アプリケーション)への送信、等を含んでよい。
【0099】
以下、
図15~
図27を参照して、併合部16による基底セグメント11bの併合処理の一例を説明する。
図15~
図27は、基底セグメント11bの併合処理の一例を説明するための図である。
図15~
図19には、第1グループにおける併合処理の一例を示し、
図20~
図27には、第2グループにおける併合処理の一例を示す。
【0100】
なお、
図15~
図27において、符号K1~K12の各々は、
図13に示す基底セグメント11bのグループ分け結果(符号K参照)に対して、併合部16により併合されたセグメントを図示したものである。
【0101】
以下の説明において、特定の基底セグメント11bを示す場合には、基底セグメント11bの座標位置(x軸(収入),y軸(借入金額))を用いて表記する場合がある。例えば、
図15の左下端の基底セグメント11bを、基底セグメント(0.1~0.2, 0.0~0.1)と表記する。
【0102】
まず、併合部16は、第1グループにおける併合処理を実行する。なお、併合部16は、複数のグループのうちのいずれのグループから併合処理を開始してもよい。
【0103】
図15に示すように、併合部16は、左下端の基底セグメント11bと、その紙面上側の基底セグメント(0.1~0.2, 0.1~0.2)とを併合して、併合セグメントK1を取得する。なお、併合セグメントK1のデータ数は25であり、N=200未満である。併合部16は、併合セグメントK1と基底セグメント(0.2~0.3, 0.1~0.2)との併合可否を判定するが、併合した場合に矩形にならない(上記(d)の条件を満たさない)ため、これ以上の併合を抑制し、併合セグメントK1を確定する。
【0104】
図16に示すように、併合部16は、基底セグメント(0.2~0.3, 0.1~0.2)から基底セグメント(0.3~0.4, 0.2~0.3)までの4つの基底セグメント11bを併合して、併合セグメントK2を取得する。併合セグメントK2のデータ数は199であり、N=200未満である。併合部16は、併合セグメントK2と基底セグメント(0.4~0.5, 0.1~0.2)及び基底セグメント(0.4~0.5, 0.2~0.3)との併合可否を判定するが、併合した場合にデータ数がN以上となる(上記(c)の条件を満たさない)ため、これ以上の併合を抑制し、併合セグメントK2を確定する。
【0105】
図17に示すように、併合部16は、基底セグメント(0.4~0.5, 0.1~0.2)から基底セグメント(0.4~0.5, 0.3~0.4)までの3つの基底セグメント11bを併合して、併合セグメントK3を取得する(データ数126)。これ以上の併合は上記(d)の条件を満たさなくなるため、併合部16は、これ以上の併合を抑制し、併合セグメントK3を確定する。
【0106】
図18に示すように、併合部16は、基底セグメント(0.5~0.6, 0.2~0.3)から基底セグメント(0.6~0.7, 0.3~0.4)までの4つの基底セグメント11bを併合して、併合セグメントK4を取得する(データ数160)。これ以上の併合は上記(d)の条件を満たさなくなるため、併合部16は、これ以上の併合を抑制し、併合セグメントK4を確定する。
【0107】
図19に示すように、併合部16は、基底セグメント(0.7~0.8, 0.3~0.4)から基底セグメント(0.9~1.0, 0.4~0.5)までの6つの基底セグメント11bを併合して、併合セグメントK5を取得する(データ数125)。併合セグメントK5に隣接する他の未併合の基底セグメント11bが第1グループに存在しない(上記(b)の条件をみたさない)ため、併合部16は、これ以上の併合を抑制し、併合セグメントK5を確定する。
【0108】
次に、併合部16は、第2グループにおける併合処理を実行する。
【0109】
図20に示すように、併合部16は、基底セグメント(0.2~0.3, 0.0~0.1)から基底セグメント(0.5~0.6, 0.0~0.1)までの4つの基底セグメント11bを併合して、併合セグメントK6を取得する(データ数55)。これ以上の併合は上記(d)の条件を満たさなくなるため、併合部16は、これ以上の併合を抑制し、併合セグメントK6を確定する。
【0110】
図21に示すように、併合部16は、基底セグメント(0.3~0.4, 0.3~0.4)を1つの併合セグメントK7として取得する(データ数23)。併合セグメントK7に隣接する他の未併合の基底セグメント11bが第2グループに存在しない(上記(b)の条件を満たさない)ため、併合部16は、これ以上の併合を抑制し、併合セグメントK7を確定する。
【0111】
図22に示すように、併合部16は、基底セグメント(0.4~0.5, 0.4~0.5)から基底セグメント(0.6~0.7, 0.5~0.6)までの6つの基底セグメント11bを併合して、併合セグメントK8を取得する(データ数69)。これ以上の併合は上記(d)の条件を満たさなくなるため、併合部16は、これ以上の併合を抑制し、併合セグメントK8を確定する。
【0112】
図23に示すように、併合部16は、基底セグメント(0.5~0.6, 0.1~0.2)から基底セグメント(0.9~1.0, 0.1~0.2)までの5つの基底セグメント11bを併合して、併合セグメントK9を取得する(データ数80)。これ以上の併合は上記(d)の条件を満たさなくなるため、併合部16は、これ以上の併合を抑制し、併合セグメントK9を確定する。
【0113】
図24に示すように、併合部16は、基底セグメント(0.7~0.8, 0.2~0.3)から基底セグメント(0.9~1.0, 0.2~0.3)までの3つの基底セグメント11bを併合して、併合セグメントK10を取得する(データ数44)。併合セグメントK10に隣接する他の未併合の基底セグメント11bが第2グループに存在しない(上記(b)の条件を満たさない)ため、併合部16は、これ以上の併合を抑制し、併合セグメントK10を確定する。
【0114】
図25に示すように、併合部16は、基底セグメント(0.7~0.8, 0.5~0.6)から基底セグメント(0.9~1.0, 0.5~0.6)までの3つの基底セグメント11bを併合して、併合セグメントK11を取得する(データ数33)。これ以上の併合は上記(d)の条件を満たさなくなるため、併合部16は、これ以上の併合を抑制し、併合セグメントK11を確定する。
【0115】
図26に示すように、併合部16は、基底セグメント(0.8~0.9, 0.6~0.7)を1つの併合セグメントK12として取得する(データ数7)。併合セグメントK12に隣接する他の未併合の基底セグメント11bが第2グループに存在しない(上記(b)の条件を満たさない)ため、併合部16は、これ以上の併合を抑制し、併合セグメントK12を確定する。
【0116】
以上により、第1グループ及び第2グループのそれぞれについて、グループ内の基底セグメント11bの併合が完了する。
【0117】
なお、一実施形態では、データ数が5以上の基底セグメント11bを処理対象の基底セグメント11bとして、併合判定行なう場合を例に挙げて説明したが、これに限定されるものではない。例えば、全体傾向11cとは異なる傾向を有するデータのグループ(例えば第2グループ)の基底セグメント11bについては、処理対象とする基底セグメント11bのデータ数の閾値(例えば5)にかかわらず、併合処理において併合候補の基底セグメント11bとして扱われてもよい。
【0118】
例えば、
図20において、併合部16は、基底セグメント(0.2~0.3, 0.0~0.1)から基底セグメント(0.6~0.7, 0.0~0.1)又は(0.9~1.0, 0.0~0.1)までの5つ又は8つの基底セグメント11bを併合して、併合セグメントK6を取得してもよい。また、
図21において、併合部16は、基底セグメント(0.3~0.4, 0.3~0.4)から基底セグメント(0.3~0.4, 0.4~0.5)までの2つの基底セグメント11bを併合して、併合セグメントK7を取得してもよい。
【0119】
図27は、
図25及び
図26に示す併合処理の代替処理の一例を説明するための図である。
図27に示すように、併合部16は、
図25及び
図26に示す併合セグメントK11及びK12に代えて、併合セグメントK11’を取得してもよい。例えば、併合部16は、基底セグメント(0.7~0.8, 0.5~0.6)から基底セグメント(0.9~1.0, 0.6~0.7)までの6つの基底セグメント11bを併合して、併合セグメントK11’を取得する。併合セグメントK11’に隣接する他の未併合の基底セグメント11bが第2グループに存在しない(上記(b)の条件を満たさない)ため、併合部16は、これ以上の併合を抑制し、併合セグメントK11’を確定する。
【0120】
なお、部分データ集合(セグメント)を取得する手法、すなわちデータ集合を分類しセグメントを取得する手法は、上述した実施形態に限られるものではない。
【0121】
一例として、データ集合は、データ集合に含まれるデータの数値属性の値に基づいて分類されてもよい。一例として、データ集合は、データ集合に含まれる基準となるデータと他のデータとの間の距離に基づいて分類されてもよい。一例として、データ集合は、データ集合に含まれる基準となるデータから所定の距離内にあるデータが同一セグメントとなるように分類されてもよい。一例として、データ集合は、データ集合に含まれる基準となるデータに近いデータから順番に所定のデータ数を満たすまでのデータを同一セグメントとして、分類されてもよい。
【0122】
また、データ集合の分類に用いられる、データ集合に含まれる基準となるデータと他のデータとの間の距離は、数値属性の軸に応じて異なってもよい。単位あたりの距離は、数値属性の軸に応じて異なってもよい。データ集合に含まれる基準となるデータと他のデータとの間の距離は、空間内の物理的な距離でなく、特定の数値属性の軸を定め数値属性の値の差から算出してもよい。
【0123】
図8の説明に戻り、訓練データ生成部17は、入力データ11a及び併合済みセグメント11fに基づき、訓練データ11gを生成する。
【0124】
訓練データ生成部17は、例えば、入力データ11aに含まれる複数のデータのそれぞれについて、併合済みセグメント11fの併合セグメント毎に、公平性の判断を行なってよい。そして、訓練データ生成部17は、入力データ11aに含まれる複数のデータのそれぞれについて、判断結果に基づき、データの是正処理を行ない、是正処理が行なわれたデータを含む複数のデータを、訓練データ11gとして取得してよい。公平性の判断処理並びにデータの是正処理は、既知の種々の手法が採用されてよい。
【0125】
機械学習部18は、訓練データ11gを利用した機械学習モデル11hの訓練(機械学習処理)を実行する。機械学習部18による機械学習モデル11hの訓練手法としては、既知の種々の手法が採用されてよい。
【0126】
例えば、訓練データ生成部17による訓練データ11gの生成(入力データ11aの是正処理)により、機械学習モデル11hによる不公平な推論を抑制することが可能となる。一例として、訓練データ生成部17による公平性の判断処理により、全体傾向11cに対する類似の程度が近いデータどうしをまとめた併合セグメント毎に、差別等の不公平な推論結果の出力を引き起こし得るデータを、入力データ11aの中から推定できる。また、データの是正処理により、例えば、推定したデータにおける保護属性に対する非保護属性の値を書き換え、保護属性と非保護属性との間の相関を軽減することで、機械学習モデル11hによる不公平な推論を抑制できる。保護属性とは、例えば、性別、年齢、人種、国籍等の、差別の発生し得る属性であり、非保護属性とは、例えば、収入及び借入金額等の属性である。
【0127】
推論部19は、推論用データ11iと機械学習部18による訓練済み機械学習モデル11hとを用いた推論処理を実行する。例えば、推論部19は、推論用データ11iを訓練済み機械学習モデル11hに入力することで、推論結果11jを取得してよい。
【0128】
以上のように、一実施形態に係るサーバ1によれば、入力データ11aに含まれる複数のデータのそれぞれ、例えば基底セグメント11bのそれぞれについて、全体傾向11cとの類似度、例えば全体傾向11cとの差(近さ)に従った分類が行なわれる。例えば、全体傾向11cとの類似度が同程度のデータを、これらのデータ間の距離に基づき分類(例えば部分データ集合に分類)することができる。
【0129】
これにより、データ集合を属性間の関係性に沿った部分データ集合に分類することができ、例えば、同一セグメント内に、全体傾向11cに従ったデータと異なるデータとが混在することを抑制できる。従って、例えば、セグメント抽出によって適切なセグメントを取得することができ、セグメント内又はセグメント間のデータを利用する種々の処理、一例として、抽出されたセグメント(例えば顧客グループ)を用いたデータ分析において、精度の低下を抑制できる。また、例えば、抽出されたセグメントに基づき加工したデータセットを訓練データ11gとして利用することで、訓練済み機械学習モデル11hを用いた推論の精度の低下を抑制できる。
【0130】
さらに、併合後のセグメントに含まれるデータ数に上限を設けることにより、セグメント間のデータ数の偏りの軽減を実現できる。
【0131】
〔E〕動作例
次に、上述の如く構成された一実施形態の一例としてのサーバ1における動作例を、
図28に示すフローチャート(ステップS1~S8)に従って説明する。
図28は、一実施形態に係るサーバ1の動作例を説明するためのフローチャートである。
【0132】
ステップS1において、サーバ1の基底セグメント抽出部12は、入力データ11aから基底セグメント11bを抽出する。
【0133】
ステップS2において、全体傾向抽出部13は、入力データ11aから全体傾向11cを抽出する。
【0134】
ステップS3において、指標値算出部14は、各基底セグメント11bの全体傾向11cに対する指標値、例えば、基底セグメント11bと全体傾向11cとの差を算出する。
【0135】
ステップS4において、分類部15は、入力データ11aに含まれる複数のデータを、指標値11dに基づき複数のグループに分割する。例えば、分類部15は、指標値11dに基づき、各基底セグメント11bを複数のグループのうちのいずれかにグループ分けすることで、分類済み基底セグメント11eを取得する。
【0136】
ステップS5において、併合部16は、グループ分け結果に基づき、基底セグメント11bを併合することで、併合済みセグメント11fを取得する。例えば、併合部16は、グループ毎に、グループ内のデータ間の距離に基づき、データどうし(例えば基底セグメント11bどうし)を併合することで、複数のデータを部分データ集合に分類する。
【0137】
ステップS6において、訓練データ生成部17は、併合済みセグメント11fごとに、入力データ11aの公平性を判断する。
【0138】
ステップS7において、訓練データ生成部17は、公平性の判断結果に基づき、入力データ11aの是正処理(修正処理)を行なうことで、訓練データ11gを取得する。
【0139】
ステップS8において、機械学習部18は、訓練データ11gを用いて機械学習モデル11hの訓練を行ない、処理が終了する。
【0140】
なお、訓練済み機械学習モデル11hは、推論部19により推論用データ11iを用いた推論処理に利用されてよい。或いは、訓練済み機械学習モデル11hは、他のコンピュータ等に送信され、推論処理に利用されてもよい。
【0141】
〔F〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0142】
例えば、
図8に示すサーバ1が備えるブロック12~19は、任意の組み合わせで併合してもよく、それぞれ分割してもよい。
【0143】
また、一実施形態に係る併合部16は、併合条件として、上記(a)~(d)を用いるものとしたが、これに限定されるものではない。例えば、併合済みセグメント11fを矩形の形状にするための上記(d)の条件は、併合条件から除外されてもよい。
【0144】
上記(d)の条件によれば、併合済みセグメント11fを用いたデータ分析等において、併合済みセグメント11fの領域を使用し易くする、例えば単一の範囲条件によって併合済みセグメント11fを容易に指定できるという効果を奏するものである。
【0145】
併合条件から上記(d)の条件を除外することにより、併合済みセグメント11fは、矩形以外の形状になり得る。これにより、例えば、基底セグメント11bどうしをより柔軟に併合することが可能となり、併合済みセグメント11f間のデータ数の偏りをより軽減できる可能性を高めることができる。なお、データ分析等においては、併合済みセグメント11fを複合条件で指定することが可能である。
【0146】
また、例えば、
図8に示すサーバ1は、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。一例として、各ブロック12~19はWebサーバ及びアプリケーションサーバ、各データ11a~11jを格納する記憶領域はDBサーバ、等であってもよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、サーバ1としての処理機能を実現してもよい。
【0147】
〔G〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0148】
(付記1)
個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、
算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、
前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する
処理をコンピュータに実行させる、データ処理プログラム。
【0149】
(付記2)
前記算出する処理は、
前記データ集合に含まれる前記複数のデータを、前記複数の数値属性それぞれの数値に基づき複数の基底データ集合に分割し、
前記データ集合の前記傾向と、前記複数のデータそれぞれとの前記距離を、前記データ集合の前記傾向と、前記複数の基底データ集合それぞれとの平均二乗誤差の算出により、前記基底データ集合毎に算出する、処理を含み、
前記分割する処理は、前記データ集合を、前記平均二乗誤差の値に応じて前記基底データ集合毎に前記複数のグループに分割する、処理を含む、
付記1に記載のデータ処理プログラム。
【0150】
(付記3)
前記分類する処理は、前記グループ毎に、前記グループに含まれる基底データ集合間の距離に基づいて、前記グループに含まれる前記基底データ集合どうしを併合する、処理を含む、
付記2に記載のデータ処理プログラム。
【0151】
(付記4)
前記併合する処理は、前記グループ毎に、前記空間において隣接する基底データ集合どうしを併合して得られる部分データ集合に含まれるデータ数が所定の条件を満たすまで、前記隣接する基底データ集合どうしを併合する、処理を含む、
付記3に記載のデータ処理プログラム。
【0152】
(付記5)
前記併合する処理は、前記グループに含まれる複数の前記基底データ集合のうちの、前記空間における前記複数の数値属性それぞれの最小値又は最大値のデータを含む基底データ集合から前記併合を開始する、処理を含む、
付記4に記載のデータ処理プログラム。
【0153】
(付記6)
前記基底データ集合は、前記空間において第1の形状の領域であり、
前記併合する処理は、前記空間において前記部分データ集合を含む領域の形状が第2の形状となるように、前記隣接する基底データ集合どうしを併合する、処理を含む、
付記4又は付記5に記載のデータ処理プログラム。
【0154】
(付記7)
前記算出する処理は、前記データ集合に含まれる前記複数のデータの回帰分析により、前記データ集合の前記空間中の傾向を算出する、処理を含む、
付記1~付記6のいずれか1項に記載のデータ処理プログラム。
【0155】
(付記8)
個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、
算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、
前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する
処理をコンピュータが実行する、データ処理方法。
【0156】
(付記9)
前記算出する処理は、
前記データ集合に含まれる前記複数のデータを、前記複数の数値属性それぞれの数値に基づき複数の基底データ集合に分割し、
前記データ集合の前記傾向と、前記複数のデータそれぞれとの前記距離を、前記データ集合の前記傾向と、前記複数の基底データ集合それぞれとの平均二乗誤差の算出により、前記基底データ集合毎に算出する、処理を含み、
前記分割する処理は、前記データ集合を、前記平均二乗誤差の値に応じて前記基底データ集合毎に前記複数のグループに分割する、処理を含む、
付記8に記載のデータ処理方法。
【0157】
(付記10)
前記分類する処理は、前記グループ毎に、前記グループに含まれる基底データ集合間の距離に基づいて、前記グループに含まれる前記基底データ集合どうしを併合する、処理を含む、
付記9に記載のデータ処理方法。
【0158】
(付記11)
前記併合する処理は、前記グループ毎に、前記空間において隣接する基底データ集合どうしを併合して得られる部分データ集合に含まれるデータ数が所定の条件を満たすまで、前記隣接する基底データ集合どうしを併合する、処理を含む、
付記10に記載のデータ処理方法。
【0159】
(付記12)
前記併合する処理は、前記グループに含まれる複数の前記基底データ集合のうちの、前記空間における前記複数の数値属性それぞれの最小値又は最大値のデータを含む基底データ集合から前記併合を開始する、処理を含む、
付記11に記載のデータ処理方法。
【0160】
(付記13)
前記基底データ集合は、前記空間において第1の形状の領域であり、
前記併合する処理は、前記空間において前記部分データ集合を含む領域の形状が第2の形状となるように、前記隣接する基底データ集合どうしを併合する、処理を含む、
付記11又は付記12に記載のデータ処理方法。
【0161】
(付記14)
前記算出する処理は、前記データ集合に含まれる前記複数のデータの回帰分析により、前記データ集合の前記空間中の傾向を算出する、処理を含む、
付記8~付記13のいずれか1項に記載のデータ処理方法。
【0162】
(付記15)
個々のデータが複数の数値属性を有するデータ集合の前記複数の数値属性によって定義される空間中の傾向と、前記データ集合に含まれる複数のデータそれぞれとの距離を算出し、
算出した前記距離に基づいて、前記データ集合を複数のグループに分割し、
前記複数のグループのそれぞれにおいて、前記グループに含まれる前記データ集合を前記複数の数値属性の値に基づいて分類する
制御部を備える、情報処理装置。
【0163】
(付記16)
前記制御部は、
前記算出する処理において、
前記データ集合に含まれる前記複数のデータを、前記複数の数値属性それぞれの数値に基づき複数の基底データ集合に分割し、
前記データ集合の前記傾向と、前記複数のデータそれぞれとの前記距離を、前記データ集合の前記傾向と、前記複数の基底データ集合それぞれとの平均二乗誤差の算出により、前記基底データ集合毎に算出し、
前記分割する処理において、前記データ集合を、前記平均二乗誤差の値に応じて前記基底データ集合毎に前記複数のグループに分割する、
付記15に記載の情報処理装置。
【0164】
(付記17)
前記制御部は、前記分類する処理において、前記グループ毎に、前記グループに含まれる基底データ集合間の距離に基づいて、前記グループに含まれる前記基底データ集合どうしを併合する、
付記16に記載の情報処理装置。
【0165】
(付記18)
前記制御部は、前記併合する処理において、前記グループ毎に、前記空間において隣接する基底データ集合どうしを併合して得られる部分データ集合に含まれるデータ数が所定の条件を満たすまで、前記隣接する基底データ集合どうしを併合する、
付記17に記載の情報処理装置。
【0166】
(付記19)
前記制御部は、前記併合する処理において、前記グループに含まれる複数の前記基底データ集合のうちの、前記空間における前記複数の数値属性それぞれの最小値又は最大値のデータを含む基底データ集合から前記併合を開始する、
付記18に記載の情報処理装置。
【0167】
(付記20)
前記基底データ集合は、前記空間において第1の形状の領域であり、
前記制御部は、前記併合する処理において、前記空間において前記部分データ集合を含む領域の形状が第2の形状となるように、前記隣接する基底データ集合どうしを併合する、
付記18又は付記19に記載の情報処理装置。
【符号の説明】
【0168】
1 サーバ
10 コンピュータ
11a 入力データ
11b 基底セグメント
11c 全体傾向
11d 指標値
11e 分類済み基底セグメント
11f 併合済みセグメント
11g 訓練データ
11h 機械学習モデル
11i 推論用データ
11j 推論結果
12 基底セグメント抽出部
13 全体傾向抽出部
14 指標値算出部
15 分類部
16 併合部
17 訓練データ生成部
18 機械学習部
19 推論部
20 制御部