(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024072687
(43)【公開日】2024-05-28
(54)【発明の名称】データ生成プログラム、データ生成方法およびデータ生成装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240521BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022183670
(22)【出願日】2022-11-16
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】園田 亮介
(57)【要約】 (修正有)
【課題】訓練データについてオーバーサンプリングを行なう際のオーバーラップを抑制するデータ生成プログラム、データ生成方法およびデータ生成装置を提供する。
【解決手段】データ生成プログラムは、選択する処理と、生成する処理とをコンピュータに実行させる。選択する処理は、複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、複数のデータ群のうち第1の属性の値が第2の値である第2のデータ群から第1のデータを選択する。生成する処理は、第1のデータに基づいて、第1の属性の値が第2の値である新たなデータを生成する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、前記複数のデータ群のうち前記第1の属性の値が第2の値である第2のデータ群から第1のデータを選択し、
前記第1のデータに基づいて、前記第1の属性の値が前記第2の値である新たなデータを生成する、
処理をコンピュータに実行させることを特徴とするデータ生成プログラム。
【請求項2】
前記第1のデータ群は、第2の属性が第3の値であり、前記第2のデータ群は前記第2の属性が第4の値であり、
前記第1のデータ群のデータ数は、前記第1の属性が前記第1の値で前記第2の属性が前記第4の値であるデータ群より多い、
ことを特徴とする請求項1に記載のデータ生成プログラム。
【請求項3】
前記生成する処理は、前記第1の属性が前記第2の値で前記第2の属性が前記第3の値であり、前記第2のデータ群よりデータ数が多いデータ群に含まれるデータの第2の分布に基づいて前記新たなデータを生成する、
ことを特徴とする請求項2に記載のデータ生成プログラム。
【請求項4】
前記選択する処理は、前記第2のデータ群から前記第1の分布との距離が遠いデータ順に複数の前記第1のデータを選択する、
ことを特徴とする請求項1に記載のデータ生成プログラム。
【請求項5】
前記生成する処理は、前記第2のデータ群のデータ数と、前記複数のデータ群のうち前記第2のデータ群よりもデータ数の多いデータ群のデータ数との差分に基づく数の前記新たなデータを生成する、
ことを特徴とする請求項1に記載のデータ生成プログラム。
【請求項6】
複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、前記複数のデータ群のうち前記第1の属性の値が第2の値である第2のデータ群から第1のデータを選択し、
前記第1のデータに基づいて、前記第1の属性の値が前記第2の値である新たなデータを生成する、
処理をコンピュータが実行することを特徴とするデータ生成方法。
【請求項7】
複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、前記複数のデータ群のうち前記第1の属性の値が第2の値である第2のデータ群から第1のデータを選択し、
前記第1のデータに基づいて、前記第1の属性の値が前記第2の値である新たなデータを生成する、
処理を実行する制御部を含むことを特徴とするデータ生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、データ生成プログラム、データ生成方法およびデータ生成装置に関する。
【背景技術】
【0002】
近年、大学入試の合否判定、銀行の与信判定などの意思決定プロセスでは、機械学習モデルを用いた判定が活用されている。機械学習モデルは、複数の訓練データのそれぞれに含まれる特徴とクラス(合否や与信の可否など)を用いて機械学習を行なうことで、入力された特徴から適切なクラス分類が可能となる。
【0003】
複数の訓練データについては、クラスやグループなどの属性について、しばしば偏りがある。例えば、クラスについては、合格に対して不合格のほうが多くなるなど、特定のクラスに偏る場合がある。また、グループについては、男性/女性などのグループにおいて女性に対して男性のほうが多くなるなど、特定のグループに偏る場合がある。
【0004】
複数の訓練データにおけるこのような偏りは、機械学習モデルの訓練時に数が少ないクラスやグループの学習が進まず、クラス分類の精度が悪化する問題として知られている。この問題に対する従来技術としては、複数の訓練データに対して、数の少ないクラスやグループのデータを新たに生成して補完することで、精度の改善を試みるデータのオーバーサンプリング技術がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2022/044064号
【特許文献2】国際公開第2018/079020号
【特許文献3】米国特許出願公開第2021/0158094号明細書
【特許文献4】米国特許出願公開第2020/0380309号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記の従来技術では、オーバーサンプリングによって異なるクラス間でデータが重なるオーバーラップが発生するという問題がある。
【0007】
1つの側面では、訓練データについてオーバーサンプリングを行なう際のオーバーラップを抑制できるデータ生成プログラム、データ生成方法およびデータ生成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの案では、データ生成プログラムは、選択する処理と、生成する処理とをコンピュータに実行させる。選択する処理は、複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、複数のデータ群のうち第1の属性の値が第2の値である第2のデータ群から第1のデータを選択する。生成する処理は、第1のデータに基づいて、第1の属性の値が第2の値である新たなデータを生成する。
【発明の効果】
【0009】
訓練データについてオーバーサンプリングを行なう際のオーバーラップを抑制できる。
【図面の簡単な説明】
【0010】
【
図1A】
図1Aは、実施形態にかかるデータ生成装置におけるデータ生成の概要を説明する説明図である。
【
図1B】
図1Bは、近傍が同じクラスに属する割合を考慮してデータ生成を行なう場合を説明する説明図である。
【
図1C】
図1Cは、近傍が同じクラスに属する割合を考慮してデータ生成を行なう場合を説明する説明図である。
【
図2】
図2は、実施形態にかかるデータ生成装置の機能構成例を示すブロック図である。
【
図3】
図3は、実施形態にかかるデータ生成装置の動作例を示すフローチャートである。
【
図4】
図4は、実施形態にかかるデータ生成装置のデータ生成に関連する動作例を示すフローチャートである。
【
図5】
図5は、実施形態にかかるデータ生成装置のデータ生成の一例を説明する説明図である。
【
図6】
図6は、評価メトリクスを説明する説明図である。
【
図7】
図7は、評価結果の一例を説明する説明図である。
【
図8】
図8は、コンピュータ構成の一例を説明する説明図である。
【
図9】
図9は、従来のデータ生成を説明する説明図である。
【
図10】
図10は、従来のデータ生成による不均衡の是正を説明する説明図である。
【
図11】
図11は、従来のデータ生成によるオーバーラップの発生を説明する説明図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態にかかるデータ生成プログラム、データ生成方法およびデータ生成装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明するデータ生成プログラム、データ生成方法およびデータ生成装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【0012】
(オーバーラップの発生について)
ここで、FSMOTE(Fair Synthetic Minority Oversampling TEchnique)を用いて訓練データのオーバーサンプリングを行なう従来のデータ生成を例に、オーバーラップの発生を説明する。
【0013】
なお、以下の説明において、訓練データは、D={X,Y,A}とする。ここで、Xは特徴、Yはクラス、Aはグループを示す。また、オーバーサンプリングにより新たに生成する合成データは、S={XS,YS,AS}とする。また、オーバーサンプリング後の訓練データは、もとの訓練データDと合成データSとの和(D=D∪S)である。
【0014】
FSMOTEでは、訓練データDを、クラス(Y)とグループ(A)で分割することでクラスタ(データ群)を形成する。ここで、クラス(Y)については、Y={正例,負例}とする。また、グループ(A)については、A={男性,女性}とする。ついで、分割した全クラスタの大きさ(データ数)が等しくなるよう、SMOTE(Synthetic Minority Over-sampling TEchnique)を用いて合成データを生成する。
【0015】
図9は、従来のデータ生成を説明する説明図である。
図9では、可視化のため2次元の特徴(X)をもとに訓練データDをプロットしている。また、訓練データDにおける白抜きと黒塗りは、クラス(Y={正例,負例})を表している。白抜きは正例、黒塗りは負例に対応する。また、訓練データDにおける形状(丸、三角)は、グループ(A={男性,女性})を表している。丸は男性、三角は女性に対応する。
【0016】
FSMOTEでは、サイズの最も大きいクラスタ(Majorityクラスタとも呼ぶ)以外のクラスタ(Minorityクラスタとも呼ぶ)に対し、SMOTEを用いて合成データを生成するオーバーサンプリングを行なう。例えば、Majorityクラスタ(負例の男性、12個のデータ)に対し、負例の女性(5個)のMinorityクラスタについては、12-7個の合成データを生成する。
【0017】
SMOTEは、オーバーサンプリングの対象クラスタ(Minorityクラスタ)内のデータをもとに合成データを生成する。具体的には、SMOTEは、任意に選択したデータ(i)と、その近傍のデータ(j)に対し、XS=Xi+r(Xj-Xi)、YS=Yi、AS=Ai=Ajとする合成データ(S)を生成する(rは[0,1]の乱数)。要するに、SMOTEでは、オーバーサンプリングの対象クラスタ内で、あるデータ点とその近傍のデータ点とを結ぶ直線上にランダムに新たなデータ点を生成する。
【0018】
図10は、従来のデータ生成による不均衡の是正を説明する説明図である。
図10に示すように、オーバーサンプリング前の訓練データD100では、クラス(Y={正例,負例})およびグループ(A={男性,女性})のクラスタ間についてサンプル数に不均衡が生じている。これに対し、オーバーサンプリング後の訓練データD101では、上記のクラスタ間の不均衡が解消されている。
【0019】
図11は、従来のデータ生成によるオーバーラップの発生を説明する説明図である。
図11に示すように、従来のデータ生成では、サイズが小さく分散が大きいクラスタ(例えば負例の女性)内のデータに基づき合成データ(点線)を生成することから、異なるクラス(例えば正例の女性)間でデータが重なるオーバーラップが生じている。
【0020】
このようなオーバーラップが生じている訓練データD101により機械学習モデルの訓練を行なう場合、クラス間の境界が曖昧になり、機械学習モデルによる分類が失敗しやすくなる。また、女性に比べて男性ではオーバーラップが生じていないことから、機械学習モデルによる分類の公平性が悪化する場合がある。
【0021】
(実施形態の概要)
図1Aは、実施形態にかかるデータ生成装置におけるデータ生成の概要を説明する説明図である。なお、
図1Aでは、可視化のため2次元の特徴(X)をもとに訓練データDをプロットしている。また、
図9と同様、訓練データDにおける白抜きと黒塗りは、クラス(Y={正例,負例})を表しており、その形状(丸、三角)は、グループ(A={男性,女性})を表している。
【0022】
図1Aに示すように、実施形態にかかるデータ生成装置は、複数の訓練データDを属性(クラス、グループ)に基づいて分類した複数のクラスタ(データ群)について、Minorityクラスタ(図示例では正例の女性および負例の女性)に関する合成データSを生成する。
【0023】
ここで、実施形態にかかるデータ生成装置は、Majorityクラスタ(図示例では正例の男性および負例の男性)の分布(密度p)に基づいて、Minorityクラスタ内のデータから起点データD10を選択する。具体的には、実施形態にかかるデータ生成装置は、Minorityクラスタの属性と異なる(異クラス)のMajorityクラスタの分布(密度p)を求める。ついで、実施形態にかかるデータ生成装置は、求めた分布との特徴空間における距離を評価し、その距離が大きい順に起点データD10を選択する。
【0024】
一例として、実施形態にかかるデータ生成装置は、正例の女性(白抜き三角)については、異クラスのMajorityクラスタである負例の男性(黒塗り丸)のクラスタの密度pを求める。ついで、実施形態にかかるデータ生成装置は、求めた分布(密度p)と、正例の女性のデータとの特徴空間における距離を求め、求めた距離の評価結果をもとに起点データD10を選択する。
【0025】
ついで、実施形態にかかるデータ生成装置は、選択した起点データD10に基づいて、同一属性の新たな合成データSを生成する。具体的には、実施形態にかかるデータ生成装置は、起点データD10と同クラスのMajorityクラスタの分布(密度)をもとに、起点データD10に対する新たな合成データSを生成する。
【0026】
より具体的には、実施形態にかかるデータ生成装置は、起点データD10と同クラスのMajorityクラスタの分布(密度)を求め、その分布に対する起点データD10との特徴空間における距離を求める。ついで、実施形態にかかるデータ生成装置は、起点データD10との距離が等しいところに合成データSを生成する。
【0027】
一例として、実施形態にかかるデータ生成装置は、正例の女性(白抜き三角)について選択した起点データD10に対し、同クラスのMajorityクラスタである正例の男性(白抜き丸)のクラスタの分布(密度)を求める。ついで、実施形態にかかるデータ生成装置は、求めた分布(密度)と、正例の女性のデータとの特徴空間における距離を求める。ついで、実施形態にかかるデータ生成装置は、起点データD10に対して特徴空間の距離が求めた距離と同じとなる同心円状の位置にランダムに合成データSを生成する。なお、合成データSを生成する同心円状の幅は、ハイパーパラメータ等により調整可能とする。
【0028】
図1Bは、
図1Cは、近傍が同じクラスに属する割合を考慮してデータ生成を行なう場合を説明する説明図である。
図1Bに示すように、ここでは、Minorityクラスタにおいて、近傍が同じクラスに属する割合(局所密度)を考慮し、局所密度の高い位置に合成データS100を生成するケースを、比較対象として検証する。
【0029】
このように合成データS100を生成するケースでも、データのオーバーラップを回避することが可能となる。しかしながら、このケースでは、
図1Cに示すように、Minorityクラスタ内のごく一部のデータ(密集したデータ)から合成データS100が生成される可能性(まばらなデータはノイズとされる)がある。このため、Minorityクラスタの情報損失が発生し、オーバーサンプリング後の訓練データにより訓練した機械学習モデルでは、過適合などが発生する場合がある。
【0030】
図1Aに示すように、実施形態にかかるデータ生成装置では、Minorityクラスタの属性と異なる(異クラス)のMajorityクラスタの分布(密度p)に基づいて、Minorityクラスタ内のデータから起点データD10を選択する。このように、実施形態にかかるデータ生成装置では、Minorityクラスタ内のデータの局所密度に依存せず、起点データD10を選択可能である。また、起点データD10は、Minorityクラスタとは異クラスのMajorityクラスタの分布(密度p)に基づいて選択されることから、この起点データD10に基づいて生成された合成データSについて、オーバーラップが生じることを抑止できる。
【0031】
また、実施形態にかかるデータ生成装置では、起点データD10と同クラスのMajorityクラスタの分布(密度)をもとに、起点データD10に対する新たな合成データSを生成することから、Minorityクラスタ内のデータの近傍に依存しないデータ生成が可能となる。また、実施形態にかかるデータ生成装置では、同クラスのMajorityクラスタの分布に応じた特徴空間の位置に新たな合成データSを生成することができ、近傍のデータとの内挿点に合成データSの生成が制限されるようなことを回避できる。
【0032】
(実施形態にかかるデータ生成装置の機能構成)
図2は、実施形態にかかるデータ生成装置の機能構成例を示すブロック図である。
図2に示すように、データ生成装置1は、入力部10、データ分割部11、クラスタサイズ計算部12、クラスタ選択部13、第1の密度計算部14、ループ処理部15、第1の距離計算部16、重み計算部17、起点選択部18、第2の距離計算部19および合成データ生成部20を有する。
【0033】
入力部10は、入力データ(訓練データD)を受け付ける処理部である。具体的には、入力部10は、事例ごとの複数の訓練データDの入力を受け付けて、受け付けた訓練データDをデータ分割部11へ出力する。訓練データDの各々は、特徴(X)、クラス(Y)、グループ(A)を有している。
【0034】
データ分割部11は、複数の訓練データDを、クラス(Y)と、グループ(A)の属性をもとに分割し、クラスタ(データ群)を形成する処理部である。データ分割部11は、複数の訓練データDについて、あるクラス(y)とあるグループ(a)に関するクラスタCy,aへ分割する。
【0035】
例えば、訓練データDがクラス(Y={正例,負例})、グループ(A={男性,女性})の属性を有するものとする。この場合、データ分割部11は、C正例,男性、C負例,男性、C正例,女性、C負例,女性に訓練データDを分割する。
【0036】
クラスタサイズ計算部12は、各クラスタCy,aのサイズ(データ数)を計算する処理部である。具体的には、クラスタサイズ計算部12は、分割した各クラスタCy,a内のデータ数をカウントすることでサイズを求める。クラスタサイズ計算部12は、各クラスタCy,a間にデータ数の不均衡がある場合、各クラスタCy,aのデータをクラスタ選択部13へ出力し、合成データSを生成する処理を開始させる。
【0037】
クラスタサイズ計算部12は、合成データSによるオーバーサンプリングなどにより、各クラスタCy,a間のデータ数が均衡している場合、訓練データDと合成データSとの和(D=D∪S)を出力する。
【0038】
クラスタ選択部13は、各クラスタCy,aのデータをもとに、クラスタの選択を行なう処理部である。具体的には、クラスタ選択部13は、各クラスタCy,aの中からサイズの最も大きいクラスタをMajorityクラスタ(M)として選択する。クラスタ選択部13は、選択したMajorityクラスタ(M)のデータを第1の密度計算部14へ出力する。
【0039】
また、クラスタ選択部13は、各クラスタの中のMajorityクラスタ(M)以外のクラスタを、オーバーサンプリングの対象とするMinorityクラスタ(Cy,a∈C)として選択する。クラスタ選択部13は、選択したMinorityクラスタ(C)のデータをループ処理部15へ出力する。
【0040】
第1の密度計算部14は、各クラスタCy,aにおいて、Majorityクラスタ(M)に属するクラスタ(Cy,a∈M)の分布(密度py)を計算する処理部である。例えば、第1の密度計算部14は、クラスタの内のデータをもとに、パラメトリックな手法(例えば平均や中央値を計算)で分布(密度py)に関する値を計算する。なお、第1の密度計算部14における分布(密度py)の計算については、ノンパラメトリックな手法(例えばカーネル密度推定を計算)であってもよい。
【0041】
なお、第1の密度計算部14における計算手法は、ユーザが適宜選択してもよい。例えば、パラメトリックな計算手法では、計算コストが低いが分布(密度py)に関する値が不正確となる場合がある。これに対し、ノンパラメトリックの計算手法では、計算コストが高いが分布(密度py)に関する値がパラメトリックな計算手法より正確になる場合がある。
【0042】
ループ処理部15は、任意の数(β)、合成データSを生成する処理をループさせる処理部である。これにより、データ生成装置1では、ループした回数分の合成データSが生成される。
【0043】
具体的には、ループ処理部15は、Majorityクラスタ(M)のデータ数と、オーバーサンプリングの対象とするMinorityクラスタ(Cy,a∈C)のデータ数との差分に基づいてループの回数(β)を設定する。より具体的には、ループ処理部15は、差分の値をそのままループの回数(β)とする。これにより、データ生成装置1では、Minorityクラスタ(Cy,a)のデータ数がMajorityクラスタ(M)のデータ数と一致するように、合成データSを生成することができる。
【0044】
第1の距離計算部16は、オーバーサンプリングの対象とするMinorityクラスタ(Cy,a)と、このクラスタとは異なるクラスを有するMajorityクラスタの分布(密度py’)との特徴空間における距離を計算する処理部である。具体的には、第1の距離計算部16は、Minorityクラスタ(Cy,a)のデータ点(i∈Cy,a)の特徴Xiと密度py’との距離d(Xi,py’)を計算する(ただし、y≠y’)。
【0045】
なお、距離の算出方法については、特徴空間における一般的な距離を求めるEuclidean Metric、相関を考慮する距離を求めるMahalanobis Metric、特徴の性質を考慮する距離を求めるHeterogeneous Value Difference Metric等のいずれであってもよい。
【0046】
重み計算部17は、Minorityクラスタ(Cy,a)のデータ点(i∈Cy,a)ごとの、第1の距離計算部16が求めた距離d(Xi,py’)に比例する重み(Wi)を計算する処理部である。具体的には、重み計算部17は、総距離に対するデータ点(i∈Cy,a)の距離の割合などとして重み(Wi)を計算する。
【0047】
起点選択部18は、Minorityクラスタ(Cy,a)のデータ点(i∈Cy,a)の中から、距離d(Xi,py’)に比例する重み(Wi)をもとに、起点データD10を選択する処理部である。具体的には、起点選択部18は、距離が大きい順に起点データD10を選択し、選択された起点データD10(起点を示すiの値)を第2の距離計算部19に出力する。
【0048】
第2の距離計算部19は、選択された起点データD10と属性が同じクラスをもつMinorityクラスタの分布(密度py)との特徴空間における距離を計算する処理部である。具体的には、第2の距離計算部19は、第1の距離計算部16と同様の計算手法により、起点データD10に関する特徴Xiと密度pyとの距離d(Xi,py)を計算する。
【0049】
合成データ生成部20は、第2の距離計算部19が計算した距離d(Xi,py)をもとに、起点データD10に対する合成データSを生成する処理部である。具体的には、合成データ生成部20は、合成データSの特徴XSがd(Xi,py)=d(XS,py)となるような特徴空間の位置に合成データSを生成する。なお、合成データSにおけるクラスとグループについては、起点データD10と同一(YS=Yi、AS=Ai)とする。
【0050】
(実施形態にかかるデータ生成装置の動作例)
図3は、実施形態にかかるデータ生成装置1の動作例を示すフローチャートである。
図3に示すように、処理が開始されると、データ生成装置1は、入力データ(訓練データD)をデータ分割部11がクラス(Y)とグループ(A)に分割することでクラスタ(C
y,a)を形成する(ST1)。ここで、形成したクラスタ(C
y,a)については、データ数に不均衡があるものとする。
【0051】
ついで、クラスタ選択部13は、クラスタ(Cy,a)の中からMajorityクラスタ(各クラスのMajorityグループ)集合(M)を決定する(ST2)。
【0052】
ついで、クラスタ選択部13は、Majorityクラスタ(M)以外のクラスタを、オーバーサンプリングの対象となるMinorityクラスタの集合(C)として決定する(ST3)。
【0053】
ついで、データ生成装置1では、オーバーサンプリングの対象となるMinorityクラスタの集合(C)に対し、合成データ(S)を生成する(ST4)。ついで、データ生成装置1は、入力データ(D)と合成データ(S)の和を出力する(ST5)。
【0054】
図4は、実施形態にかかるデータ生成装置1のデータ生成に関連する動作例を示すフローチャートである。
図4に示すように、データ生成に関する処理が開始されると、第1の密度計算部14は、Majorityグループ集合に属する各クラスタ(C
y,a∈M)の密度p
yを推定(計算)する(ST11)。
【0055】
ついで、ループ処理部15は、オーバーサンプリングの対象となるMinorityクラスタ(Cy,a∈C)について、任意の数(β)のループ処理(ST12~ST18)を行わせる。具体的には、ループ処理部15は、Majorityクラスタ(M)のデータ数と、Minorityクラスタ(Cy,a∈C)のデータ数との差分に対応する回数のループ処理を行わせる。
【0056】
ループ処理が開始されると、第1の距離計算部16は、オーバーサンプリングの対象となるMinorityクラスタ(Cy,a)と、このクラスタとは異なるクラスをもつMajorityグループの密度(py’)との距離d(Xi,py’)を計算する(ST13)。
【0057】
ついで、重み計算部17は、オーバーサンプリングの対象となるMinorityクラスタ(Cy,a)のデータ点について、d(Xi,py’)距離に比例する重み(Wi)を計算する(ST14)。
【0058】
ついで、起点選択部18は、オーバーサンプリングの対象となるMinorityクラスタ(Cy,a)のデータ点の中から、d(Xi,py’)距離に比例する重み(Wi)に従って起点(起点データD10)を選択する(ST15)。
【0059】
ついで、第2の距離計算部19は、起点と、この起点と同じクラスを持つMajorityグループの密度(py)との距離d(Xi,py)を計算する(ST16)。ついで、合成データ生成部20は、第2の距離計算部19が計算した距離d(Xi,py)をもとに、オーバーサンプリングの対象となるMinorityクラスタ(Cy,a)を補完するための合成データSを生成する(ST17)。
【0060】
図5は、実施形態にかかるデータ生成装置のデータ生成の一例を説明する説明図である。
図5では、
図1Aと同様、可視化のため2次元の特徴(X)をもとに訓練データDをプロットした図であり、プロットした訓練データDについては
図1Aと同じであるものとする。
【0061】
図5に示すように、オーバーサンプリングの対象となるMinorityクラスタは、C
正例,女性であるものとする。データ生成装置1は、対象クラスタ(C
正例,女性)とは異なるクラスをもつMajorityグループ(C
負例,男性)の密度(p
y’)をもとに、対象クラスタの中のデータ点より起点データD10を選択する。
【0062】
ついで、データ生成装置1は、起点データD10と同じクラスのMajorityグループ(C正例,男性)の密度(py)を推定(計算)する。ついで、データ生成装置1は、起点データD10と同クラスのMajorityクラスタの分布(py)をもとに、このMajorityクラスタの分布と起点データD10との距離が同じとなる位置に合成データSを生成する。
【0063】
FSMOTEの場合は、2点間(例えば起点とその近傍点)の直線状に合成データSが生成され、生成される範囲が限定されることとなる。これに対し、データ生成装置1は、Majorityクラスタの分布と起点データD10との距離が同じとなる位置、すなわち同心円状のある範囲に分散して合成データSを生成することができる。
【0064】
(評価結果について)
ここで、データ生成装置1によるオーバーサンプリング後の訓練データDを用いて訓練した機械学習モデルの評価結果を説明する。この評価には、訓練データDとは別に用意したテストデータDtestを用いるものとする(テストデータDtestは訓練データDに含まれていない未観測のデータ)。具体的には、訓練後の機械学習モデルにテストデータDtestを適用して得られた分類結果を評価メトリクスを用いて評価する。
【0065】
図6は、評価メトリクスを説明する説明図である。
図6に示すように、評価メトリクスによる評価では、分類結果がTP(True Positive)、FN(False Negative)、FP(False Positive)、TN(True Negative)のいずれに該当するかを判定し、TP、FN、FP、TNそれぞれの数量を求める。ついで、得られた数量をもとに、Precision、Recall、FPR等の評価値を求める。
【0066】
ついで、得られた評価値をもとに、精度や公平性の評価を行なう。例えば、精度については、(1)F1=2Precision×Recall/(Precision+Recall、(2)Area Under the Recall-FPR(ROC)Curveなどがある。また、公平性については、(1)Equal Opportunity=Recall|A=a-Recall|A=a’、(2)Equalized Odds=(Rccall+FPR)|A=a-(Recall+FPR)|A=a’などがある。
【0067】
図7は、評価結果の一例を説明する説明図である。
図7における左側のグラフG1、G3は、従来のデータ生成によるオーバーサンプリング後の訓練データDを用いて訓練した機械学習モデルの評価結果を示している。また、
図7における右側のグラフG2、G4は、データ生成装置1によるオーバーサンプリング後の訓練データDを用いて訓練した機械学習モデルの評価結果を示している。
【0068】
図7に示すように、データ生成装置1によるオーバーサンプリング後の訓練データDを用いて訓練した機械学習モデルでは、分類の精度、公平性ともに良好であり(分類の公平性の悪化がない)、精度と公平性のトレードオフが改善されている。
【0069】
(効果)
以上のように、データ生成装置1は、複数の訓練データDを属性に基づいて分類した複数のデータ群(Cy,a)のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、複数のデータ群のうち第1の属性の値が第2の値である第2のデータ群から第1のデータ(起点データ)を選択する。データ生成装置1は、選択した第1のデータに基づいて、第1の属性の値が第2の値である新たなデータ(合成データS)を生成する。
【0070】
これにより、データ生成装置1では、新たなデータ(合成データS)が第1の属性の値が第1の値である第1のデータ群と重なることを抑制でき、訓練データDについてオーバーサンプリングを行なう際のオーバーラップを抑制できる。
【0071】
また、第1のデータ群は、第2の属性が第3の値であり、第2のデータ群は第2の属性が第4の値であり、第1のデータ群のデータ数は、第1の属性が第1の値で第2の属性が第4の値であるデータ群より多い。このように、データ数(サンプル数)の多い第1のデータ群(マジョリティグループ)に含まれるデータの第1の分布に基づいて起点データを選択することで、より精度よく起点データを選択することができる。
【0072】
また、データ生成装置1は、第1の属性が第2の値で第2の属性が第3の値であり、第2のデータ群よりデータ数が多いデータ群に含まれるデータの第2の分布に基づいて新たなデータを生成する。このように、第2のデータ群よりデータ数(サンプル数)が多いデータ群(マジョリティグループ)に含まれるデータの第2の分布に基づいて新たなデータを生成することで、新たなデータをより精度よく生成することができる。
【0073】
また、データ生成装置1は、第2のデータ群から第1の分布との距離が遠いデータ順に複数の起点データを選択する。このように、第1の分布との距離が遠いデータ順に起点データを選択することで、起点データをもとに生成する新たなデータが他のデータとオーバーラップすることを抑制することができる。
【0074】
また、データ生成装置1は、第2のデータ群のデータ数と、複数のデータ群のうち第2のデータ群よりもデータ数の多いデータ群のデータ数との差分に基づく数の新たなデータを生成する。これにより、データ生成装置1は、例えば、第2のデータ群のデータ数が他のデータ群のデータ数と合うように、新たなデータを生成することができる。
【0075】
(その他)
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0076】
また、データ生成装置1の入力部10、データ分割部11、クラスタサイズ計算部12、クラスタ選択部13、第1の密度計算部14、ループ処理部15、第1の距離計算部16、重み計算部17、起点選択部18、第2の距離計算部19および合成データ生成部20の各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、データ生成装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【0077】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ構成(ハードウエア)の一例を説明する。
図8は、コンピュータ構成の一例を説明する説明図である。
【0078】
図8に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、データ入力を受け付ける入力装置202と、モニタ203と、スピーカ204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、データ生成装置1は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
【0079】
ハードディスク装置209には、上記の実施形態で説明した機能構成(例えば入力部10、データ分割部11、クラスタサイズ計算部12、クラスタ選択部13、第1の密度計算部14、ループ処理部15、第1の距離計算部16、重み計算部17、起点選択部18、第2の距離計算部19および合成データ生成部20)における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【0080】
CPU201は、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、上記の機能構成(例えば入力部10、データ分割部11、クラスタサイズ計算部12、クラスタ選択部13、第1の密度計算部14、ループ処理部15、第1の距離計算部16、重み計算部17、起点選択部18、第2の距離計算部19および合成データ生成部20)に関する各種の処理を行う。すなわち、CPU201は、制御部の一例である。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。
【0081】
以上の実施形態に関し、さらに以下の付記を開示する。
【0082】
(付記1)複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、前記複数のデータ群のうち前記第1の属性の値が第2の値である第2のデータ群から第1のデータを選択し、
前記第1のデータに基づいて、前記第1の属性の値が前記第2の値である新たなデータを生成する、
処理をコンピュータに実行させることを特徴とするデータ生成プログラム。
【0083】
(付記2)前記第1のデータ群は、第2の属性が第3の値であり、前記第2のデータ群は前記第2の属性が第4の値であり、
前記第1のデータ群のデータ数は、前記第1の属性が前記第1の値で前記第2の属性が前記第4の値であるデータ群より多い、
ことを特徴とする付記1に記載のデータ生成プログラム。
【0084】
(付記3)前記生成する処理は、前記第1の属性が前記第2の値で前記第2の属性が前記第3の値であり、前記第2のデータ群よりデータ数が多いデータ群に含まれるデータの第2の分布に基づいて前記新たなデータを生成する、
ことを特徴とする付記2に記載のデータ生成プログラム。
【0085】
(付記4)前記選択する処理は、前記第2のデータ群から前記第1の分布との距離が遠いデータ順に複数の前記第1のデータを選択する、
ことを特徴とする付記1に記載のデータ生成プログラム。
【0086】
(付記5)前記生成する処理は、前記第2のデータ群のデータ数と、前記複数のデータ群のうち前記第2のデータ群よりもデータ数の多いデータ群のデータ数との差分に基づく数の前記新たなデータを生成する、
ことを特徴とする付記1に記載のデータ生成プログラム。
【0087】
(付記6)複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、前記複数のデータ群のうち前記第1の属性の値が第2の値である第2のデータ群から第1のデータを選択し、
前記第1のデータに基づいて、前記第1の属性の値が前記第2の値である新たなデータを生成する、
処理をコンピュータが実行することを特徴とするデータ生成方法。
【0088】
(付記7)前記第1のデータ群は、第2の属性が第3の値であり、前記第2のデータ群は前記第2の属性が第4の値であり、
前記第1のデータ群のデータ数は、前記第1の属性が前記第1の値で前記第2の属性が前記第4の値であるデータ群より多い、
ことを特徴とする付記6に記載のデータ生成方法。
【0089】
(付記8)前記生成する処理は、前記第1の属性が前記第2の値で前記第2の属性が前記第3の値であり、前記第2のデータ群よりデータ数が多いデータ群に含まれるデータの第2の分布に基づいて前記新たなデータを生成する、
ことを特徴とする付記7に記載のデータ生成方法。
【0090】
(付記9)前記選択する処理は、前記第2のデータ群から前記第1の分布との距離が遠いデータ順に複数の前記第1のデータを選択する、
ことを特徴とする付記6に記載のデータ生成方法。
【0091】
(付記10)前記生成する処理は、前記第2のデータ群のデータ数と、前記複数のデータ群のうち前記第2のデータ群よりもデータ数の多いデータ群のデータ数との差分に基づく数の前記新たなデータを生成する、
ことを特徴とする付記6に記載のデータ生成方法。
【0092】
(付記11)複数のデータを属性に基づいて分類した複数のデータ群のうち第1の属性の値が第1の値である第1のデータ群に含まれるデータの第1の分布に基づいて、前記複数のデータ群のうち前記第1の属性の値が第2の値である第2のデータ群から第1のデータを選択し、
前記第1のデータに基づいて、前記第1の属性の値が前記第2の値である新たなデータを生成する、
処理を実行する制御部を含むことを特徴とするデータ生成装置。
【0093】
(付記12)前記第1のデータ群は、第2の属性が第3の値であり、前記第2のデータ群は前記第2の属性が第4の値であり、
前記第1のデータ群のデータ数は、前記第1の属性が前記第1の値で前記第2の属性が前記第4の値であるデータ群より多い、
ことを特徴とする付記11に記載のデータ生成装置。
【0094】
(付記13)前記生成する処理は、前記第1の属性が前記第2の値で前記第2の属性が前記第3の値であり、前記第2のデータ群よりデータ数が多いデータ群に含まれるデータの第2の分布に基づいて前記新たなデータを生成する、
ことを特徴とする付記12に記載のデータ生成装置。
【0095】
(付記14)前記選択する処理は、前記第2のデータ群から前記第1の分布との距離が遠いデータ順に複数の前記第1のデータを選択する、
ことを特徴とする付記11に記載のデータ生成装置。
【0096】
(付記15)前記生成する処理は、前記第2のデータ群のデータ数と、前記複数のデータ群のうち前記第2のデータ群よりもデータ数の多いデータ群のデータ数との差分に基づく数の前記新たなデータを生成する、
ことを特徴とする付記11に記載のデータ生成装置。
【符号の説明】
【0097】
1…データ生成装置
10…入力部
11…データ分割部
12…クラスタサイズ計算部
13…クラスタ選択部
14…第1の密度計算部
15…ループ処理部
16…第1の距離計算部
17…重み計算部
18…起点選択部
19…第2の距離計算部
20…合成データ生成部
200…コンピュータ
201…CPU
202…入力装置
203…モニタ
204…スピーカ
205…媒体読取装置
206…インタフェース装置
207…通信装置
208…RAM
209…ハードディスク装置
210…バス
211…プログラム
212…各種データ
D、D100、D101…訓練データ
G1~G4…グラフ
S、S100…合成データ