以下、実施形態の特徴選択装置、特徴選択方法およびプログラムを、図面を参照して詳細に説明する。本実施形態の特徴選択装置は、任意の特徴集合の部分集合を用いてモデルの生成および評価を繰り返し、モデル評価値が高くなる部分集合を探索する、Wrapper法による特徴選択装置であり、特に、モデル評価値が高くなる部分集合を探索するアプローチとして加速貪欲法を用いる。
<実施形態の概要>
まず、本実施形態の概要について説明する。従来の加速貪欲法に基づく特徴選択は、過去のステップで算出されたモデルの評価値の改善量をそのまま改善量の推定に利用しており、改善量が算出された後に選択された他の特徴の影響を考慮していない。そのため、改善量推定値と実際の改善量との間に大きな乖離が生じることがあり、それによって無駄なモデル生成処理を省くことができず、モデルの評価値が高くなる部分集合の探索を十分に高速化できないことがあった。
そこで、本実施形態では、モデルの評価値の改善量を算出した後に選択された他の特徴と評価対象の特徴との類似度が高いほど、評価対象の特徴による改善量は過去の算出時に比べて低下することに着目し、類似度に応じた改善量の見積もりを行う。これにより、従来の加速貪欲法よりも、より実際に近い改善量の推定が可能になり、モデルの評価値が高くなる部分集合の探索を十分に高速化できる。
また、本実施形態では、従来の加速貪欲法よりもモデルの評価値の改善量を精度良く推定するために、ステップ内で先に評価対象となった他の特徴に対する改善量推定値と実際の改善量との誤差をフィードバックし、未評価の特徴に対する改善量推定値を自動的に補正する。これにより、より実際に近い改善量の推定が可能になり、モデルの評価値が高くなる部分集合の探索をさらに高速化することができる。
<第1実施例>
以下では、本実施形態のより具体的な実施例について説明する。なお、以下で示す実施例は一例であり、装置が同様の機能を持つならば、機能の分け方などは問わない。また、以下に示す各種データについても、本実施例と同様の情報が含まれていれば、その表現・保存形式などは問わない。
図1は、本実施例の特徴選択装置1の機能的な構成例を示すブロック図である。本実施例の特徴選択装置1は、図1に示すように、入力受付部2と、初期設定部3と、評価対象集合生成部4と、ステップ終了判定部5と、モデル生成部6と、モデル評価部7と、推定値補正部8と、選択済み集合更新部9と、終了判定部10と、改善量推定部11と、出力部12とを備える。
なお、本実施例では、特徴選択装置1による処理開始前に、学習データセットD1および評価用データセットD2が用意されているものとする。学習データセットD1は、モデルの学習に使用するデータセットである。評価用データセットD2は、モデルの評価値を算出するためのデータセットである。これら学習データセットD1および評価用データセットD2は、サンプルの集合であり、両者に同様のサンプルが含まれる。各サンプルは、選択の候補となる特徴の値の集合と、正しい回答を示す正解ラベルとにより構成される。
また、本実施例では、特徴選択装置1による処理開始前に、特徴間類似度データD3が用意されているものとする。特徴間類似度データD3は、選択の候補となる特徴の全てのペアについて、予め算出された特徴同士の類似度を記録したデータである。類似度には、例えば相関係数などを用いる。
入力受付部2は、初期設定のためのユーザによる入力を受け付ける。ここでは、例えば終了条件となる特徴の最大個数などをユーザが入力するものとする。
初期設定部3は、入力受付部2が受け付けたユーザの入力内容を反映しつつ初期設定を行い、終了条件データD4、評価値推定データD5、選択済み集合データD6、補正用データD7、非類似度係数データD8を生成する。
図2は、終了条件データD4の一例を示す図である。終了条件データD4は、ユーザの入力に応じて、例えば、選択する特徴の最大個数などを終了条件として記録したデータである。なお、これは一例であり、例えば選択済み集合によるモデルの評価値が一定以上になったとき終了するなど、他の終了条件を用いてもよい。
図3は、評価値推定データD5の一例を示す図である。評価値推定データD5は、選択の候補となる全特徴について、改善量推定値、実際の改善量、比率、状態、前回スキップの各値を記録したデータである。比率は、改善量推定値に対する実際の改善量の比率を表す。状態は、「評価済」と「未評価」のいずれかを取る。前回スキップは、前回のステップでその特徴に対する処理がスキップされたかどうかを表す。初期設定時には、全特徴について、改善量推定値が十分良い値に設定され、状態は「未評価」、前回スキップは「なし」に設定される。
図4は、選択済み集合データD6の一例を示す図である。選択済み集合データD6は、選択済み集合に含まれる全特徴と、選択済み集合に対して算出された評価値とを記録したデータである。初期設定時には、選択済み集合データD6の選択済み集合を空集合とし、評価値は、予め定められた値(例えば、評価値の取り得る最小値など)が設定される。
図5は、補正用データD7の一例を示す図である。補正用データD7は、補正用のパラメータ(後述のNやα)、ステップの実行回数をカウントするステップカウンタ、比率が算出された特徴とその比率などを記録したデータである。初期設定時には、ステップカウンタは1に設定され、比率が算出された特徴はレコードなしの状態とされる。なお、補正用のパラメータ(後述のNやα)は、ここでは予め定められた値に設定されるものとするが、入力受付部2によりユーザの入力を受け付けて設定できるようにしてもよい。
図6は、非類似度データD8の一例を示す図である。非類似度データD8は、非類似度算出のためのパラメータ(後述のp)を記録したデータである。なお、非類似度算出のためのパラメータ(後述のp)は、ここでは予め定められた値に設定されるものとするが、入力受付部2によりユーザの入力を受け付けて設定できるようにしてもよい。
評価対象集合生成部4は、評価値推定データD5を参照し、状態が「未評価」の特徴のうち、改善量推定値が最も高い特徴(以下、特徴jとする)を選択済み集合に追加することにより、評価対象となる特徴の集合(以下、「評価対象集合」と呼ぶ)を生成する。そして、評価対象集合生成部4は、例えば図7に示すように、評価対象集合に含まれる各特徴を記録した評価対象集合データD9を生成する。このとき、評価対象集合データD9がすでに存在する場合は、そのデータを削除して新規に評価対象集合データD9を生成する。なお、評価対象集合データD9に評価対象集合に含まれる各特徴を記録する際は、例えば、評価対象集合の末尾の行に特徴jを記録するなど、特徴jを区別できるようにしておく。
ステップ終了判定部5は、評価対象集合データD9を参照して特徴jを特定し、評価値推定データD5を参照して、特徴jの改善量推定値が後述の暫定一位データD10に記録された改善量以下であるか否かを判定する。そして、特徴jの改善量推定値が暫定一位データD10に記録された改善量以下の場合に、選択済み集合更新部9に対して選択済み集合データD6の更新を指示し、今回のステップを終了させる。
図8は、暫定一位データD10の一例を示す図である。暫定一位データD10は、モデル評価部7により生成、更新されるデータであり、ステップ内で評価値が暫定的に一位の特徴の集合(暫定一位集合)と、その評価値および改善量が記録されている。
モデル生成部6は、評価対象集合データD9を参照して、評価対象集合データD9に記録された特徴のみを使って学習データセットD1による機械学習を行い、モデルを生成する。そして、モデル生成部6は、生成したモデルのルール、パラメータなどを表すモデルデータD11を生成する。このとき、モデルデータD11がすでに存在する場合は、そのデータを削除して新規にモデルデータD11を生成する。
図9は、モデルデータD11の一例を示す図である。この図11に例示するモデルデータD11は、線形判別器を用いたときのモデルデータの例であり、各特徴に対する重みwとバイアスbを記録している。
モデル評価部7は、評価対象集合データD9を参照して、評価対象集合データD9に記録された特徴のみを使って評価用データセットD2によるモデルの評価を行い、モデルの評価値を算出する。その後、モデル評価部7は、算出した評価値と、選択済み集合データD6に記録された評価値とを比較し、選択済み集合に特徴jを追加したことによる評価値の改善量を算出する。そして、モデル評価部7は、算出した改善量が暫定一位データD10に記録されている改善量よりも大きければ、暫定一位データD10を更新する。具体的には、暫定一位データD10に記録されている暫定一位集合を、現在の評価対象集合で置き換える。また、暫定一位データD10に記録されている評価値および改善量を、現在の評価対象集合の評価値および改善量で更新する。ただし、暫定一位データD10が未生成の場合は新規作成し、現在の評価対象集合を暫定一位集合として記録し、現在の評価対象集合の評価値および改善量を記録する。また、モデル評価部7は、評価値推定データD5の特徴jの行に実際の改善量を記録し、特徴jの状態を「評価済」に更新する。
推定値補正部8は、補正用データD7を参照し、ステップカウンタの値が2以上、つまり初回以外のステップにおいて、以下の処理を実施する。推定値補正部8は、まず、評価対象集合データD9を参照して特徴jを特定する。そして、推定値補正部8は、評価値推定データD5を参照し、特徴jの改善量について、改善量推定値に対する実際の改善量の比率を算出して、算出した比率を補正用データD7に記録する。そして、補正用データD7に比率が記録された特徴の数が、初期設定時に設定されたN以上となったら、評価値推定データD5中の状態が「未評価」の特徴全てについて改善量推定値を補正し、評価値推定データD5に記録された全特徴を補正後の改善量推定値が高い順にソートして、評価値推定データD5を更新する。この補正により、改善量推定値が実際の改善量に近い値となり、残りのモデル生成・評価の処理をより効果的に省くことが可能になる。
推定値補正部8による改善量推定値の補正は、例えば下記式(1)のように行う。
ただし、imp
est(j,k)は、k回目のステップにおける特徴jの改善量推定値(評価値推定データD5に記録された改善量推定値)である。また、αは初期設定時に設定された正の定数、Eは補正用データD7に比率が記録された特徴の集合、maxRatio(E)は、集合Eの比率の中で最大の比率を示す。通常、αは1.0よりも少々大きい値に設定する。それにより、記録された比率よりも少々大きい比率で改善量推定値が補正され、実際の改善量よりも小さい値に補正されてしまうリスクを抑えることができる。
なお、改善量推定値の補正を行う際には、比率の記録や上記式(1)の適用について、前回のステップ(k−1回目)で、モデル生成・評価のスキップを行った特徴とそれ以外の特徴とで分けて行うことが望ましい。これは、前回のステップにおけるスキップの有無により、比率が大きく異なる傾向があるためである。図5に例示した補正用データD7では、算出した比率を前回スキップなしの特徴と前回スキップありの特徴とで分けて記録しているため、これらを分けて上記式(1)を適用し、改善量推定値の補正を行うことができる。また、改善量推定値の補正は、比率が記録された特徴の個数がNに達した直後のみ行ってもよいし、N以上となっている限り毎回行ってもよい。また、Nの値を複数設定して、それぞれの値に達するたびに改善量推定の補正を行うようにしてもよい。
選択済み集合更新部9は、ステップ終了判定部5からの指示に従って、選択済み集合データD6を、暫定一位データD10の内容で更新する。具体的には、選択済み集合データD6の選択済み集合を、暫定一位データD10の暫定一位集合で置き換える。また、選択済み集合データD6の評価値を、暫定一位データD10の評価値で更新する。また、選択済み集合更新部9は、評価値推定データD5から、選択済み集合に新たに追加された特徴(以下、これを特徴skとする)に該当する行を削除する。なお、選択済み集合データD6に記録された選択済み集合は特徴が追加された順に並ぶため、この選択済み集合から特徴skを特定することができる。
終了判定部10は、選択済み集合データD6および終了条件データD4を参照し、選択済み集合に含まれる特徴の個数が終了条件データD4に記録された最大個数に達すると、出力部12に対して選択済み集合データD6に記録されたデータの出力を指示して、特徴選択装置1の処理を終了させる。
改善量推定部11は、選択済み集合データD6を参照して特徴skを特定し、評価値推定データD5に記録された全特徴について、評価値推定データD5に記録されている改善量と、特徴間類似度データD3で示される特徴skとの類似度とに基づいて、改善量推定値を算出して評価値推定データD5に記録する。そして、評価値推定データD5に記録された全特徴を改善量推定値が高い順にソートし、評価値推定データD5を更新する。
特徴s
kとの類似度が高いほど、その特徴により得られる情報は選択済み集合に特徴s
kが追加されることで既に得られていることが想定される。このため、過去のステップで実際の改善量が記録されたときと比較して、その特徴の価値は大きく低下しているものと考えられる。したがって、改善量推定部11は、下記式(2)のように、特徴s
kとの類似度が高いほど小さい値となる改善量推定値を算出する。これにより、実際の改善量により近い改善量推定値を算出することができる。
ここで、imp
est(j,k+1)は、k+1回目のステップ(つまり次回のステップ)における特徴jの改善量推定値である。また、imp’(j,k)は、下記式(3)により表される。
すなわち、評価値推定データD5に記録された特徴jの行に、実際の改善量が記録されていればそれをimp’(j,k)とし、実際の改善量が記録されていなければ、改善量推定値をimp’(j,k)とする。
また、DisSim(j,s
k)は、特徴jと特徴s
kとの非類似度を表す値であり、例えば下記式(4)により算出される。
ここで、Sim(j,s
k)は、特徴jと特徴s
kとの類似度を表す0以上1以下の値であり、例えば相関係数などが用いられる。Sim(j,s
k)の値は、予め算出されて特徴間類似度データD3に記録されている。また、pは0以上の定数であり、通常は1≦p≦2の範囲で設定するとよい。pの値は初期設定時に設定され、非類似度係数データD8に記録されている。
改善量推定部11は、以上の処理を行った後、次のステップを開始するための後処理を実行する。具体的には、評価値推定データD5の全特徴について、状態が「評価済」ならば前回スキップの値を「なし」とし、「未評価」ならば前回スキップの値を「あり」とする。また、評価値推定データD5の全特徴について、状態を「未評価」にする。また、評価値推定データD5の全特徴について、実際の改善量を空欄とする。また、暫定一位データD10を削除するとともに、補正用データD7を初期化する。補正用データD7の初期化は、比率が算出された全特徴およびその比率の削除、ステップカウンタのインクリメントが含まれる。この後処理が終了すると、特徴選択装置1は次のステップの処理を開始する。
出力部12は、終了判定部10からの指示に従って、選択済み集合データD6に記録されたデータを出力する。出力部12によるデータの出力は、例えば、表示装置による表示、外部記憶装置へのデータ格納、外部装置へのデータ送信のいずれかまたは組み合わせにより実施することができる。出力部12がデータを出力すると、特徴選択装置1は動作を終了する。なお、選択済み集合データD6に記録したデータ以外を出力する場合には、別途それらを保持しておくように処理を追加すればよい。
次に、図10−1および図10−2を参照しながら、本実施例の特徴選択装置1の動作を説明する。図10−1および図10−2は、本実施例の特徴選択装置1の処理手順の一例を示すフローチャートである。
ステップS101:本実施例の特徴選択装置1の動作が開始されると、まず、入力受付部2が、初期設定のためのユーザによる入力を受け付けて、次のステップS102に進む。
ステップS102:初期設定部3が、ステップS101で入力受付部2が受け付けたユーザの入力内容を反映しつつ初期設定を行い、次のステップS103に進む。
ステップS103:評価対象集合生成部4が、評価値推定データD5を参照し、状態が「未評価」の特徴があるかどうかを確認する。そして、「未評価」の特徴があれば(ステップS103:Yes)、次のステップS104に進み、「未評価」の特徴がなければ(ステップS103:No)、ステップS115に処理を移行する。
ステップS104:評価対象集合生成部4は、状態が「未評価」の特徴のうち、改善量推定値が最も高い特徴jを選択済み集合に追加して、評価対象集合を生成する。そして、評価対象集合生成部4は、この評価対象集合に含まれる特徴を記録した評価対象集合データD9を生成し、次のステップS105に進む。
ステップS105:ステップ終了判定部5が、評価値推定データD5および暫定一位データD10を参照し、特徴jの改善量推定値が暫定一位データD10に記録されている改善量(暫定一位の改善量)より大きいか否かを確認する。そして、特徴jの改善量推定値が暫定一位の改善量より大きければ(ステップS105:Yes)、次のステップS106に進み、特徴jの改善量推定値が暫定一位の改善量以下であれば(ステップS105:No)、ステップS115に処理を移行する。なお、暫定一位データD10が無い場合は、必ずステップS106に進む。
ステップS106:モデル生成部6が、学習データセットD1を用いた機械学習によりモデルを生成する。モデル生成には、評価対象集合データD9に記録された特徴のみが使用される。そして、モデル生成部6は、生成したモデルのルールやパラメータなどを表すモデルデータD11を生成し、次のステップ107に進む。
ステップS107:モデル評価部7が、評価用データセットD2を用いて、ステップS106で生成されたモデルを評価し、モデルの評価値を算出する。モデルの評価には、評価対象集合データD9に記録された特徴のみが使用される。そして、モデル評価部7は、算出した評価値と選択済み集合データD6に記録された評価値とに基づいて、選択済み集合に特徴jを追加したことによる評価値の改善量を算出し、次のステップS108に進む。
ステップS108:モデル評価部7は、暫定一位データD10を参照し、ステップS107で算出した改善量が暫定一位の改善量より大きいか否かを確認する。そして、ステップS107で算出した改善量が暫定一位の改善量より大きければ(ステップS108:Yes)、次のステップS109に進み、ステップS107で算出した改善量が暫定一位の改善量以下であれば(ステップS108:No)、ステップS110に処理を移行する。なお、暫定一位データD10が存在しない場合は新たに生成し、必ずステップS109に進む。
ステップS109:モデル評価部7は、評価対象集合データD9とステップS107で算出した評価値および改善量を用いて暫定一位データD10を更新し、次のステップS110に進む。
ステップS110:モデル評価部7は、評価値推定データD5の特徴jについて、ステップS107で算出した改善量を実際の改善量として記録するとともに、特徴jの状態を「評価済」に更新し、次のステップS111に進む。
ステップS111:推定値補正部8が、補正用データD7を参照し、ステップカウンタの値が2以上となっているか否かを確認する。そして、ステップカウンタの値が2以上となっていれば(ステップS111:Yes)、次のステップS112に進み、ステップカウンタの値が1であれば(ステップS111:No)、ステップS103に戻って以降の処理を繰り返す。
ステップS112:推定値補正部8は、評価値推定データD5を参照し、特徴jの改善量推定値に対する実際の改善量の比率を算出する。そして、算出した比率を補正用データD7に記録して、次のステップS113に進む。
ステップS113:推定値補正部8は、補正用データD7を参照し、補正用データD7に比率が記録された特徴の数(比率が算出された特徴の数)が、補正用データD7に記録されているN以上となったか否かを判定する。そして、比率が算出された特徴の数がN以上であれば(ステップS113:Yes)、次のステップS114に進み、比率が算出された特徴の数がN未満であれば(ステップS113:No)、ステップS103に戻って以降の処理を繰り返す。
ステップS114:推定値補正部8は、評価値推定データD5を参照し、状態が「未評価」の特徴全てについて改善量推定値を補正する。そして、評価値推定データD5に記録された全特徴を補正後の改善量推定値が高い順にソートして評価値推定データD5を更新し、ステップS103に戻って以降の処理を繰り返す。
ステップS115:選択済み集合更新部9が、選択済み集合データD6を暫定一位データD10の内容で更新する。また、選択済み集合データD6を参照して、選択済み集合に新たに追加された特徴を特定し、その特徴の行を評価値推定データD5から削除して、次のステップS116に進む。
ステップS116:終了判定部10が、選択済み集合データD6と終了条件データD4を参照し、選択済み集合に含まれる特徴の個数が終了条件データD4に記録された最大個数に達したか、つまり終了条件を満たすか否かを判定する。そして、終了条件を満たさなければ(ステップS116:No)、次のステップS117に進み、終了条件を満たす場合は(ステップS116:Yes)、ステップS119に処理を移行する。
ステップS117:改善量推定部11が、選択済み集合データD6を参照して、選択済み集合に新たに追加された特徴skを特定し、評価値推定データD5に記録された全特徴について、評価値推定データD5に記録されている改善量と、特徴間類似度データD3で示される特徴skとの類似度とに基づいて、改善量推定値を算出する。なおこのとき、評価値推定データD5に改善量が記録されていない特徴については、評価値推定データD5に記録されている、以前の改善量推定値を利用する。そして、改善量推定部11は、算出した改善量推定値を評価値推定データD5に記録し、評価値推定データD5に記録された全特徴を改善量推定値が高い順にソートして評価値推定データD5を更新し、次のステップS118に進む。
ステップS118:改善量推定部11は、上述した後処理を実行する。その後、ステップS103に戻って以降の処理(k+1回目のステップ)が繰り返される。
ステップS119:出力部12が、選択済み集合データD6に記録されたデータを出力し、本実施例の特徴選択装置1による一連の処理が終了する。
以上、具体的な例を挙げながら説明したように、本実施例の特徴選択装置1は、選択の候補となる各特徴について、過去のステップにおいて選択済み集合に当該特徴を追加したときに算出されたモデルの評価値の改善量と、その改善量が算出された後のステップで選択された他の特徴と当該特徴との類似度とに基づいて、当該特徴の改善量推定値を算出するようにしている。したがって、従来の加速貪欲法よりも、より実際に近い改善量の推定が可能になり、無駄なモデルの生成および評価を効率よく省き、モデルの評価値が高くなる部分集合の探索を十分に高速化することができる。
また、本実施例の特徴選択装置1は、ステップ内で先に算出された他の特徴の実際の改善量と改善量推定値との誤差に基づいて、改善量が算出されていない未選択の特徴の改善量推定値を補正するようにしている。したがって、従来の加速貪欲法よりも、より実際に近い改善量の推定が可能になり、モデルの評価値が高くなる部分集合の探索をさらに高速化することができる。
<第2実施例>
次に、第2実施例について説明する。本実施例では、モデル評価の際に複数の評価指標の各々の評価値およびその改善量を算出する。また、改善量の推定をこれら複数の評価値に対してそれぞれ行う。そして、複数の評価値各々の目標値に対する達成度に基づいて、これら複数の評価値を統合した統合評価値を算出するとともに、複数の評価値および改善量推定値と目標値とに基づいて、統合評価値の推定値を算出する。そして、各ステップにおいて、統合評価値の推定値が先に算出された統合評価値以下となる未選択の特徴に対する処理をスキップする。これ以外の部分については、上述の第1実施例と共通である。以下では、第1実施例と異なる部分についてのみ説明する。
本実施例では、事象の発生を予測する予測モデルを生成することを想定する。そして、モデルを評価する複数の評価指標として、予測の網羅性を示す再現率と、予測の正確性を示す適合率とを例示する。ただし、生成するモデルおよびその評価指標はこれに限らない。また、3つ以上の評価指標でそれぞれ評価値を算出する構成としてもよい。
図11は、本実施例の特徴選択装置1’の機能的な構成例を示すブロック図である。本実施例の特徴選択装置1’では、図1に示した第1実施例の特徴選択装置1の構成に対し、第1評価値統合部13と、第2評価値統合部14とが追加されている。
本実施例では、初期設定部3が、ユーザの入力に応じて再現率・適合率それぞれの目標値を設定し、目標値データD12を生成する。図12は、目標値データD12の一例を示す図である。目標値データD12は、ユーザが入力した再現率・適合率の目標値を記録したデータである。
また、本実施例では、第1実施例で用いた評価値推定データD5に代えて、例えば図13に示すような評価値推定データD5’を用いる。この評価値推定データD5’は、選択の候補となる全特徴について、再現率と適合率それぞれの改善量推定値および実際の改善量、統合評価値の推定値、状態、前回スキップの有無などを記録したデータである。
また、本実施例では、第1実施例で用いた選択済み集合データD6に代えて、例えば図14に示すような選択済み集合データD6’を用いる。この選択済み集合データD6’は、選択済み集合に含まれる全特徴と、選択済み集合に対して算出された再現率、適合率および統合評価値を記録したデータである。
また、本実施例では、第1実施例で用いた暫定一位データD10に代えて、例えば図15に示すような暫定一位データD10’を用いる。この暫定一位データD10’は、暫定一位集合に含まれる全特徴と、暫定一位集合に対して算出された再現率および適合率と、暫定一位集合に対して算出された統合評価値とを記録したデータである。
本実施例では、ステップ終了判定部5が、特徴j(本実施例では「未評価」の特徴のうち統合評価値の推定値が最も高い特徴)の統合評価値の推定値が暫定一位の統合評価値以下である場合に、選択済み集合更新部9に対して選択済み集合データD6’の更新を指示して、今回のステップを終了させる。また、選択済み集合更新部9は、選択済み集合データD6’を暫定一位データD10’の内容で更新する。
また、本実施例では、モデル評価部7が、モデル生成部6が生成したモデルの再現率および適合率を算出するとともに、選択済み集合に特徴jを追加したことによる再現率改善量および適合率改善量を算出する。そして、これら再現率改善量および適合率改善量を、評価値推定データD5’の特徴jの行に記録し、特徴jの状態を「評価済」に更新する。
また、本実施例では、改善量推定部11が、第1実施例と同様の手法により、選択の候補となる各特徴の改善量推定値を再現率と適合率の双方について算出して、評価値推定データD5’に記録する。また、推定値補正部8は、第1実施例と同様の手法により、再現率の改善量推定値と適合率の改善量推定値の双方を補正する。
第1評価値統合部13は、モデル評価部7により算出されて評価値推定データD5’に記録されている、特徴jの再現率の改善量および適合率の改善量と、選択済み集合データD6’に記録されている再現率および適合率を用いて、評価対象集合の再現率と適合率を算出する。そして、算出された再現率と適合率のそれぞれについて、ユーザの入力に応じて設定された目標値に対する達成度を算出し、これら再現率の達成度および適合率の達成度に基づいて、統合評価値を算出する。
第1評価値統合部13は、まず、評価値推定データD5’に記録されている特徴jの再現率の改善量を選択済み集合データD6’に記録されている再現率に加算することにより、評価対象集合の再現率を算出する。同様に、評価値推定データD5’に記録されている特徴jの適合率の改善量を選択済み集合データD6’に記録されている適合率に加算することにより、評価対象集合の適合率を算出する。そして、算出された評価対象集合の再現率と適合率について、下記式(5)により再現率の達成度(再現率達成度)、下記式(6)により適合率の達成度(適合率達成度)をそれぞれ算出する。
なお、本実施例では、値が大きいほど高い評価となる再現率および適合率を評価指標として扱うため、目標値に対する評価値の達成度を上記のように定義できる。平均二乗誤差のように、値が小さいほど高い評価となる評価指標を扱う場合は、分子・分母を反転して(評価値を分母、目標値を分子とする)目標値に対する評価値の達成度を定義すればよい。
ここで、上記式(5)および上記式(6)をそのまま用いると、再現率達成度と適合率達成度の一方が1.0を大幅に超える場合に、他方の達成度が非常に小さくても、統合評価値が高い値になってしまう場合がある。そこで、再現率達成度を下記式(7)、適合率達成度を下記式(8)のように変換し、変換後再現率達成度および変換後適合率達成度を求めて、変換後再現率達成度および変換後適合率達成度を用いて統合評価値を算出することが望ましい。
上記式(7)のα
rと上記式(8)のα
pをともに1.0より小さい正の値(例えば0.1など)にすることで、変換後再現率達成度および変換後適合率達成度が1.0を大幅に超えないようにでき、上記の問題を防ぐことができる。
次に、第1評価値統合部13は、変換後再現率達成度と変換後適合率達成度を用いて、下記式(9)により統合評価値を算出する。そして、第1評価値統合部13により算出された統合評価値が、暫定一位データD10’に記録された統合評価値よりも高ければ、暫定一位データD10’を更新する。具体的には、暫定一位データD10’に記録されている暫定一位集合を、現在の評価対象集合で置き換える。また、暫定一位データD10’に記録されている再現率、適合率、および統合評価値を、現在の評価対象集合の再現率、適合率、および統合評価値で更新する。
上記式(9)で算出される統合評価値は、変換後再現率達成度と変換後適合率達成度との調和平均となっている。すなわち、これら変換後再現率達成度と変換後適合率達成度の両者の値が大きく、かつ類似した値となっているときに、統合評価値は大きな値を取る。この統合評価値が高くなる(大きな値を取る)ように部分集合の選択を行っていくことで、再現率と適合率それぞれの目標値をできるだけ達成し、かつ達成度のばらつきが少ない(バランスが良い)モデルが得られることになる。
第2評価値統合部14は、評価値推定データD5’に記録されている特徴毎に、評価値推定データD5’に記録されている再現率の改善量推定値および適合率の改善量推定値と、選択済み集合データD6’に記録されている再現率および適合率と、目標値データD12に記録されている目標値とに基づいて、統合評価値の推定値を算出する。なお、第2評価値統合部14の処理は、推定値補正部8が改善量の推定値の補正処理を実行した直後、及び改善量推定部11が改善量の推定処理を実行した直後のタイミングで実行される。
第2評価値統合部14は、まず、評価値推定データD5’に記録されている再現率の改善量推定値を選択済み集合データD6’に記録されている再現率に加算することにより、再現率の推定値を算出する。同様に、評価値推定データD5’に記録されている適合率の改善量推定値を選択済み集合データD6’に記録されている適合率に加算することにより、適合率の推定値を算出する。
次に、第2評価値統合部14は、上記式(5)の再現率を再現率の推定値に置き換えて計算を行うことにより、再現率達成度の推定値を算出する。同様に、上記式(6)の適合率を適合率の推定値に置き換えて計算を行うことにより、適合率達成度の推定値を算出する。また、第2評価値統合部14は、上記式(7)から上記式(9)の再現率達成度を再現率達成度の推定値、適合率達成度を適合率達成度の推定値にそれぞれ置き換えて計算を行うことにより、統合評価値の推定値を算出する。そして、第2評価値統合部14は、算出した統合評価値の推定値を評価値推定データD5’に記録して、評価値推定データD5’に記録された全特徴を統合評価値の推定値が高い順にソートして、評価値推定データD5’を更新する。
以上、具体的な例を挙げながら説明したように、本実施例の特徴選択装置1’は、モデルの性能に関する複数の評価指標の評価値を目標値に対する達成度に基づいて統合した統合評価値を算出し、この統合評価値が高くなるように特徴選択を行うようにしているので、複数の評価指標それぞれの目標値をできるだけ達成し、かつ達成度のばらつきが少ない(バランスが良い)モデルを得ることができる。
また、選択済み集合に追加された特徴に対応する統合評価値の推定値が暫定一位の統合評価値以下であれば、その特徴を選択済み集合に追加した評価対象集合によるモデルの生成・評価をスキップするようにしているので、第1実施例と同様に、無駄なモデルの生成および評価を効率よく省き、統合評価値が高くなる部分集合の探索を十分に高速化することができる。
以上説明した特徴選択装置1(1’)の機能は、例えば、一般的なコンピュータのハードウェアとソフトウェア(プログラム)との協働により実現することができる。この場合の特徴選択装置1(1’)のハードウェア構成の一例を図16に示す。
本実施例の特徴選択装置1(1’)は、例えば図16に示すように、情報処理を行うCPU(Central Processing Unit)101、BIOSなどを記憶した読み出し専用メモリであるROM(Read Only Memory)102、各種データを書き換え可能に記憶するRAM(Random Access Memory)103、各種データベースとして機能するとともに各種のプログラムを格納するHDD(Hard Disk Drive)104、記憶媒体110を用いて情報を保管したり外部に情報を配布したり外部から情報を入手するための媒体駆動装置105、ユーザがCPU101に命令や情報などを入力するためのキーボードやマウスなどの入力装置106、および、処理経過や結果などをユーザに表示するLCD(Liquid Cristal Display)などの表示装置107などを備え、これら各部間で送受信されるデータをバスコントローラ108が調停して動作する。
このような特徴選択装置1(1’)では、ユーザが電源を投入するとCPU101がROM102内のローダーというプログラムを起動させ、HDD104よりOS(Operation System)というコンピュータのハードウェアとソフトウェアとを管理するプログラムをRAM103に読み込み、このOSを起動させる。このようなOSは、ユーザの操作に応じてプログラムを起動したり、データを読み込んだり、保存を行ったりする。OSのうち代表的なものとしては、Windows(登録商標)、UNIX(登録商標)などが知られている。これらのOS上で動作するプログラムをアプリケーションプログラムと呼んでいる。なお、アプリケーションプログラムは、所定のOS上で動作するものに限らず、後述の各種処理の一部の実行をOSに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやOSなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
特徴選択装置1(1’)は、上記アプリケーションプログラムとして、図1や図11に示した機能的な構成要素をそれぞれプロセスとして生成するためのプログラムをHDD104に記憶している。特徴選択装置1(1’)のHDD104にインストールされるアプリケーションプログラムは、一般的には、CD−ROMやDVDなどの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク、半導体メモリなどの各種方式のメディアなどの記憶媒体110に記録されて提供される。また、このプログラムは、例えばネットワークを利用した通信により外部から取り込まれ、HDD104にインストールされてもよい。
以上のようなハードウェア構成を採用する場合、CPU101がOS上で動作する上記プログラムに従って各種の演算処理を実行することにより、例えばRAM103上に図6に示した機能的な構成要素が生成され、コンピュータを特徴選択装置1として機能させることができる。なお、図1や図11に示した機能的な構成要素の一部あるいは全部を、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-programmable Gate Array)などの専用のハードウェアを用いて実現することもできる。
なお、上述の実施例では、特徴選択装置1(1’)が単体の装置として構成されていることを想定するが、特徴選択装置1(1’)は単体の装置として構成されている必要はなく、物理的に分離されてネットワークを介して接続された複数の装置により構成されていてもよい。また、特徴選択装置1(1’)は、クラウドシステム上で動作する仮想マシンとして実現されていてもよい。
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。