(57)【要約】【課題】モデルの評価値が高くなる部分集合の探索を高速に行うことができる特徴選択装置、特徴選択方法およびプログラムを提供する。【解決手段】実施形態の特徴選択装置１は、選択済み集合に未選択の特徴を一つ追加してモデルを生成し、そのモデルの評価値および評価値の改善量を算出する処理を、改善量推定値が先に算出された改善量以下となる未選択の特徴に対する処理をスキップしつつ繰り返し、改善量が最大となる未選択の特徴を選択して選択済み集合に含める一連の処理を一つのステップとし、このステップを繰り返すことで評価値が高くなる特徴の集合を探索するものであり、未選択の特徴について、過去のステップにおいて当該特徴を追加したときに算出された改善量と、当該特徴と改善量が算出された後に選択された他の特徴との類似度とに基づいて、当該特徴の改善量推定値を算出する改善量推定部１１を備える。【選択図】図１
2017167980.tif 000002
【特許請求の範囲】
【請求項１】
選択済みの特徴の集合である選択済み集合に未選択の特徴を一つ追加してモデルを生成し、そのモデルの評価値および評価値の改善量を算出する処理を、改善量推定値が先に算出された前記改善量以下となる未選択の特徴に対する処理をスキップしつつ繰り返し、前記改善量が最大となる未選択の特徴を選択して前記選択済み集合に含める一連の処理を一つのステップとし、前記ステップを繰り返すことで前記評価値が高くなる特徴の集合を探索する特徴選択装置であって、
未選択の特徴について、過去の前記ステップにおいて当該特徴を追加したときに算出された前記改善量と、当該特徴と前記改善量が算出された後に選択された他の特徴との類似度とに基づいて、前記改善量推定値を算出する改善量推定部を備える特徴選択装置。
【請求項２】
前記ステップ内で先に算出された他の特徴の前記改善量と前記改善量推定値との誤差に基づいて、前記改善量が算出されていない未選択の特徴の前記改善量推定値を補正する推定値補正部をさらに備える、請求項１に記載の特徴選択装置。
【請求項３】
前記評価値は、複数の評価指標に対応する複数の評価値を含み、
前記改善量推定部は、前記複数の評価値各々の前記改善量推定値を算出し、
前記複数の評価値各々の目標値に対する達成度に基づいて、前記複数の評価値を統合した統合評価値を算出する第１評価値統合部と、
前記複数の評価値および前記改善量推定値と前記目標値とに基づいて、前記統合評価値の推定値を算出する第２評価値統合部と、をさらに備え、
前記ステップにおいて、前記統合評価値の推定値が先に算出された前記統合評価値以下となる未選択の特徴に対する処理をスキップする、請求項１または２に記載の特徴選択装置。
【請求項４】
選択済みの特徴の集合である選択済み集合に未選択の特徴を一つ追加してモデルを生成し、そのモデルの評価値および評価値の改善量を算出する処理を、改善量推定値が先に算出された前記改善量以下となる未選択の特徴に対する処理をスキップしつつ繰り返し、前記改善量が最大となる未選択の特徴を選択して前記選択済み集合に含める一連の処理を一つのステップとし、前記ステップを繰り返すことで前記評価値が高くなる特徴の集合を探索する特徴選択方法であって、
未選択の特徴について、過去の前記ステップにおいて当該特徴を追加したときに算出された前記改善量と、当該特徴と前記改善量が算出された後に選択された他の特徴との類似度とに基づいて、前記改善量推定値を算出する特徴選択方法。
【請求項５】
コンピュータを、選択済みの特徴の集合である選択済み集合に未選択の特徴を一つ追加してモデルを生成し、そのモデルの評価値および評価値の改善量を算出する処理を、改善量推定値が先に算出された前記改善量以下となる未選択の特徴に対する処理をスキップしつつ繰り返し、前記改善量が最大となる未選択の特徴を選択して前記選択済み集合に含める一連の処理を一つのステップとし、前記ステップを繰り返すことで前記評価値が高くなる特徴の集合を探索する特徴選択装置として機能させるためのプログラムであって、
前記コンピュータに、
未選択の特徴について、過去の前記ステップにおいて当該特徴を追加したときに算出された前記改善量と、当該特徴と前記改善量が算出された後に選択された他の特徴との類似度とに基づいて、前記改善量推定値を算出する機能を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、特徴選択装置、特徴選択方法およびプログラムに関する。
【背景技術】
【０００２】
機械学習アルゴリズムを用いてモデルを構築する際に任意の特徴集合から機械学習に有用な特徴の部分集合を選択する特徴選択と呼ばれる技術がある。特徴選択にはいくつかの方法があるが、その一つとしてＷｒａｐｐｅｒ法が知られている。Ｗｒａｐｐｅｒ法は、部分集合を変更しながらモデルの生成および評価を繰り返し、モデルの評価値が高くなる部分集合を探索する方法である。
【０００３】
Ｗｒａｐｐｅｒ法による特徴選択では、探索のアプローチとして、選択済みの特徴の集合（以下、「選択済み集合」と呼ぶ）に特徴を１つずつ追加していくステップを繰り返す、前向き選択の貪欲法のアプローチがよく用いられる。しかし通常の前向き選択の貪欲法は、各ステップで未選択の特徴全てに対しモデル生成・評価を行うため、処理が膨大となる。そこで、前向き選択の貪欲法を高速化する加速貪欲法（Ａｃｃｅｌｅｒａｔｅｄ  ｇｒｅｅｄｙ  ａｌｇｏｒｉｔｈｍ）と呼ばれる探索法が提案されている。加速貪欲法に基づく特徴選択は、モデルの評価指標に劣モジュラ性という性質が成り立つとき、過去のステップで算出された評価値の改善量を利用して、後のステップで特徴を追加するときの評価値の改善量を推定し、改善量推定値が低い特徴に対する処理をスキップすることで、無駄なモデル生成処理を省く方法である。加速貪欲法は、モデルの評価値が高くなる部分集合の探索を、通常の前向き選択の貪欲法よりも高速に行えるメリットを持つ。
【０００４】
しかし、従来の加速貪欲法に基づく特徴選択は、過去のステップで算出された改善量をそのまま改善量の推定に利用するため、改善量推定値が実際の改善量よりも大幅に良い値となる場合があった。このため、モデルの評価値が高くなる部分集合の探索を十分に高速化できない場合があり、改善が求められる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Michel  Minoux，“Accelerated  greedy  algorithms  for  maximizing  submodular  set  functions”，In  Proceedings  of  the  8th  IFIP  Conference  on  Optimization  Techniques，pp  234-243，Springer，1978
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、モデルの評価値が高くなる部分集合の探索を高速に行うことができる特徴選択装置、特徴選択方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の特徴選択装置は、選択済みの特徴の集合である選択済み集合に未選択の特徴を一つ追加してモデルを生成し、そのモデルの評価値および評価値の改善量を算出する処理を、改善量推定値が先に算出された前記改善量以下となる未選択の特徴に対する処理をスキップしつつ繰り返し、前記改善量が最大となる未選択の特徴を選択して前記選択済み集合に含める一連の処理を一つのステップとし、前記ステップを繰り返すことで前記評価値が高くなる特徴の集合を探索する特徴選択装置であって、改善量推定部を備える。改善量推定部は、未選択の特徴について、過去の前記ステップにおいて当該特徴を追加したときに算出された前記改善量と、当該特徴と前記改善量が算出された後に選択された他の特徴との類似度とに基づいて、前記改善量推定値を算出する。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１実施例の特徴選択装置の機能的な構成例を示すブロック図である。
【図２】図２は、終了条件データの一例を示す図である。
【図３】図３は、評価値推定データの一例を示す図である。
【図４】図４は、選択済み集合データの一例を示す図である。
【図５】図５は、補正用データの一例を示す図である。
【図６】図６は、非類似度係数データの一例を示す図である。
【図７】図７は、評価対象集合データの一例を示す図である。
【図８】図８は、暫定一位データの一例を示す図である。
【図９】図９は、モデルデータの一例を示す図である。
【図１０−１】図１０−１は、第１実施例の特徴選択装置の処理手順の一例を示すフローチャートである。
【図１０−２】図１０−２は、第１実施例の特徴選択装置の処理手順の一例を示すフローチャートである。
【図１１】図１１は、第２実施例の特徴選択装置の機能的な構成例を示すブロック図である。
【図１２】図１２は、目標値データの一例を示す図である。
【図１３】図１３は、評価値推定データの一例を示す図である。
【図１４】図１４は、選択済み集合データの一例を示す図である。
【図１５】図１５は、暫定一位データの一例を示す図である。
【図１６】図１６は、特徴選択装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、実施形態の特徴選択装置、特徴選択方法およびプログラムを、図面を参照して詳細に説明する。本実施形態の特徴選択装置は、任意の特徴集合の部分集合を用いてモデルの生成および評価を繰り返し、モデル評価値が高くなる部分集合を探索する、Ｗｒａｐｐｅｒ法による特徴選択装置であり、特に、モデル評価値が高くなる部分集合を探索するアプローチとして加速貪欲法を用いる。
【００１０】
＜実施形態の概要＞
まず、本実施形態の概要について説明する。従来の加速貪欲法に基づく特徴選択は、過去のステップで算出されたモデルの評価値の改善量をそのまま改善量の推定に利用しており、改善量が算出された後に選択された他の特徴の影響を考慮していない。そのため、改善量推定値と実際の改善量との間に大きな乖離が生じることがあり、それによって無駄なモデル生成処理を省くことができず、モデルの評価値が高くなる部分集合の探索を十分に高速化できないことがあった。
【００１１】
そこで、本実施形態では、モデルの評価値の改善量を算出した後に選択された他の特徴と評価対象の特徴との類似度が高いほど、評価対象の特徴による改善量は過去の算出時に比べて低下することに着目し、類似度に応じた改善量の見積もりを行う。これにより、従来の加速貪欲法よりも、より実際に近い改善量の推定が可能になり、モデルの評価値が高くなる部分集合の探索を十分に高速化できる。
【００１２】
また、本実施形態では、従来の加速貪欲法よりもモデルの評価値の改善量を精度良く推定するために、ステップ内で先に評価対象となった他の特徴に対する改善量推定値と実際の改善量との誤差をフィードバックし、未評価の特徴に対する改善量推定値を自動的に補正する。これにより、より実際に近い改善量の推定が可能になり、モデルの評価値が高くなる部分集合の探索をさらに高速化することができる。
【００１３】
＜第１実施例＞
以下では、本実施形態のより具体的な実施例について説明する。なお、以下で示す実施例は一例であり、装置が同様の機能を持つならば、機能の分け方などは問わない。また、以下に示す各種データについても、本実施例と同様の情報が含まれていれば、その表現・保存形式などは問わない。
【００１４】
図１は、本実施例の特徴選択装置１の機能的な構成例を示すブロック図である。本実施例の特徴選択装置１は、図１に示すように、入力受付部２と、初期設定部３と、評価対象集合生成部４と、ステップ終了判定部５と、モデル生成部６と、モデル評価部７と、推定値補正部８と、選択済み集合更新部９と、終了判定部１０と、改善量推定部１１と、出力部１２とを備える。
【００１５】
なお、本実施例では、特徴選択装置１による処理開始前に、学習データセットＤ１および評価用データセットＤ２が用意されているものとする。学習データセットＤ１は、モデルの学習に使用するデータセットである。評価用データセットＤ２は、モデルの評価値を算出するためのデータセットである。これら学習データセットＤ１および評価用データセットＤ２は、サンプルの集合であり、両者に同様のサンプルが含まれる。各サンプルは、選択の候補となる特徴の値の集合と、正しい回答を示す正解ラベルとにより構成される。
【００１６】
また、本実施例では、特徴選択装置１による処理開始前に、特徴間類似度データＤ３が用意されているものとする。特徴間類似度データＤ３は、選択の候補となる特徴の全てのペアについて、予め算出された特徴同士の類似度を記録したデータである。類似度には、例えば相関係数などを用いる。
【００１７】
入力受付部２は、初期設定のためのユーザによる入力を受け付ける。ここでは、例えば終了条件となる特徴の最大個数などをユーザが入力するものとする。
【００１８】
初期設定部３は、入力受付部２が受け付けたユーザの入力内容を反映しつつ初期設定を行い、終了条件データＤ４、評価値推定データＤ５、選択済み集合データＤ６、補正用データＤ７、非類似度係数データＤ８を生成する。
【００１９】
図２は、終了条件データＤ４の一例を示す図である。終了条件データＤ４は、ユーザの入力に応じて、例えば、選択する特徴の最大個数などを終了条件として記録したデータである。なお、これは一例であり、例えば選択済み集合によるモデルの評価値が一定以上になったとき終了するなど、他の終了条件を用いてもよい。
【００２０】
図３は、評価値推定データＤ５の一例を示す図である。評価値推定データＤ５は、選択の候補となる全特徴について、改善量推定値、実際の改善量、比率、状態、前回スキップの各値を記録したデータである。比率は、改善量推定値に対する実際の改善量の比率を表す。状態は、「評価済」と「未評価」のいずれかを取る。前回スキップは、前回のステップでその特徴に対する処理がスキップされたかどうかを表す。初期設定時には、全特徴について、改善量推定値が十分良い値に設定され、状態は「未評価」、前回スキップは「なし」に設定される。
【００２１】
図４は、選択済み集合データＤ６の一例を示す図である。選択済み集合データＤ６は、選択済み集合に含まれる全特徴と、選択済み集合に対して算出された評価値とを記録したデータである。初期設定時には、選択済み集合データＤ６の選択済み集合を空集合とし、評価値は、予め定められた値（例えば、評価値の取り得る最小値など）が設定される。
【００２２】
図５は、補正用データＤ７の一例を示す図である。補正用データＤ７は、補正用のパラメータ（後述のＮやα）、ステップの実行回数をカウントするステップカウンタ、比率が算出された特徴とその比率などを記録したデータである。初期設定時には、ステップカウンタは１に設定され、比率が算出された特徴はレコードなしの状態とされる。なお、補正用のパラメータ（後述のＮやα）は、ここでは予め定められた値に設定されるものとするが、入力受付部２によりユーザの入力を受け付けて設定できるようにしてもよい。
【００２３】
図６は、非類似度データＤ８の一例を示す図である。非類似度データＤ８は、非類似度算出のためのパラメータ（後述のｐ）を記録したデータである。なお、非類似度算出のためのパラメータ（後述のｐ）は、ここでは予め定められた値に設定されるものとするが、入力受付部２によりユーザの入力を受け付けて設定できるようにしてもよい。
【００２４】
評価対象集合生成部４は、評価値推定データＤ５を参照し、状態が「未評価」の特徴のうち、改善量推定値が最も高い特徴（以下、特徴ｊとする）を選択済み集合に追加することにより、評価対象となる特徴の集合（以下、「評価対象集合」と呼ぶ）を生成する。そして、評価対象集合生成部４は、例えば図７に示すように、評価対象集合に含まれる各特徴を記録した評価対象集合データＤ９を生成する。このとき、評価対象集合データＤ９がすでに存在する場合は、そのデータを削除して新規に評価対象集合データＤ９を生成する。なお、評価対象集合データＤ９に評価対象集合に含まれる各特徴を記録する際は、例えば、評価対象集合の末尾の行に特徴ｊを記録するなど、特徴ｊを区別できるようにしておく。
【００２５】
ステップ終了判定部５は、評価対象集合データＤ９を参照して特徴ｊを特定し、評価値推定データＤ５を参照して、特徴ｊの改善量推定値が後述の暫定一位データＤ１０に記録された改善量以下であるか否かを判定する。そして、特徴ｊの改善量推定値が暫定一位データＤ１０に記録された改善量以下の場合に、選択済み集合更新部９に対して選択済み集合データＤ６の更新を指示し、今回のステップを終了させる。
【００２６】
図８は、暫定一位データＤ１０の一例を示す図である。暫定一位データＤ１０は、モデル評価部７により生成、更新されるデータであり、ステップ内で評価値が暫定的に一位の特徴の集合（暫定一位集合）と、その評価値および改善量が記録されている。
【００２７】
モデル生成部６は、評価対象集合データＤ９を参照して、評価対象集合データＤ９に記録された特徴のみを使って学習データセットＤ１による機械学習を行い、モデルを生成する。そして、モデル生成部６は、生成したモデルのルール、パラメータなどを表すモデルデータＤ１１を生成する。このとき、モデルデータＤ１１がすでに存在する場合は、そのデータを削除して新規にモデルデータＤ１１を生成する。
【００２８】
図９は、モデルデータＤ１１の一例を示す図である。この図１１に例示するモデルデータＤ１１は、線形判別器を用いたときのモデルデータの例であり、各特徴に対する重みｗとバイアスｂを記録している。
【００２９】
モデル評価部７は、評価対象集合データＤ９を参照して、評価対象集合データＤ９に記録された特徴のみを使って評価用データセットＤ２によるモデルの評価を行い、モデルの評価値を算出する。その後、モデル評価部７は、算出した評価値と、選択済み集合データＤ６に記録された評価値とを比較し、選択済み集合に特徴ｊを追加したことによる評価値の改善量を算出する。そして、モデル評価部７は、算出した改善量が暫定一位データＤ１０に記録されている改善量よりも大きければ、暫定一位データＤ１０を更新する。具体的には、暫定一位データＤ１０に記録されている暫定一位集合を、現在の評価対象集合で置き換える。また、暫定一位データＤ１０に記録されている評価値および改善量を、現在の評価対象集合の評価値および改善量で更新する。ただし、暫定一位データＤ１０が未生成の場合は新規作成し、現在の評価対象集合を暫定一位集合として記録し、現在の評価対象集合の評価値および改善量を記録する。また、モデル評価部７は、評価値推定データＤ５の特徴ｊの行に実際の改善量を記録し、特徴ｊの状態を「評価済」に更新する。
【００３０】
推定値補正部８は、補正用データＤ７を参照し、ステップカウンタの値が２以上、つまり初回以外のステップにおいて、以下の処理を実施する。推定値補正部８は、まず、評価対象集合データＤ９を参照して特徴ｊを特定する。そして、推定値補正部８は、評価値推定データＤ５を参照し、特徴ｊの改善量について、改善量推定値に対する実際の改善量の比率を算出して、算出した比率を補正用データＤ７に記録する。そして、補正用データＤ７に比率が記録された特徴の数が、初期設定時に設定されたＮ以上となったら、評価値推定データＤ５中の状態が「未評価」の特徴全てについて改善量推定値を補正し、評価値推定データＤ５に記録された全特徴を補正後の改善量推定値が高い順にソートして、評価値推定データＤ５を更新する。この補正により、改善量推定値が実際の改善量に近い値となり、残りのモデル生成・評価の処理をより効果的に省くことが可能になる。
【００３１】
推定値補正部８による改善量推定値の補正は、例えば下記式（１）のように行う。
【数１】
2017167980.tif 000003
ただし、ｉｍｐｅｓｔ（ｊ，ｋ）は、ｋ回目のステップにおける特徴ｊの改善量推定値（評価値推定データＤ５に記録された改善量推定値）である。また、αは初期設定時に設定された正の定数、Ｅは補正用データＤ７に比率が記録された特徴の集合、ｍａｘＲａｔｉｏ（Ｅ）は、集合Ｅの比率の中で最大の比率を示す。通常、αは１．０よりも少々大きい値に設定する。それにより、記録された比率よりも少々大きい比率で改善量推定値が補正され、実際の改善量よりも小さい値に補正されてしまうリスクを抑えることができる。
【００３２】
なお、改善量推定値の補正を行う際には、比率の記録や上記式（１）の適用について、前回のステップ（ｋ−１回目）で、モデル生成・評価のスキップを行った特徴とそれ以外の特徴とで分けて行うことが望ましい。これは、前回のステップにおけるスキップの有無により、比率が大きく異なる傾向があるためである。図５に例示した補正用データＤ７では、算出した比率を前回スキップなしの特徴と前回スキップありの特徴とで分けて記録しているため、これらを分けて上記式（１）を適用し、改善量推定値の補正を行うことができる。また、改善量推定値の補正は、比率が記録された特徴の個数がＮに達した直後のみ行ってもよいし、Ｎ以上となっている限り毎回行ってもよい。また、Ｎの値を複数設定して、それぞれの値に達するたびに改善量推定の補正を行うようにしてもよい。
【００３３】
選択済み集合更新部９は、ステップ終了判定部５からの指示に従って、選択済み集合データＤ６を、暫定一位データＤ１０の内容で更新する。具体的には、選択済み集合データＤ６の選択済み集合を、暫定一位データＤ１０の暫定一位集合で置き換える。また、選択済み集合データＤ６の評価値を、暫定一位データＤ１０の評価値で更新する。また、選択済み集合更新部９は、評価値推定データＤ５から、選択済み集合に新たに追加された特徴（以下、これを特徴ｓｋとする）に該当する行を削除する。なお、選択済み集合データＤ６に記録された選択済み集合は特徴が追加された順に並ぶため、この選択済み集合から特徴ｓｋを特定することができる。
【００３４】
終了判定部１０は、選択済み集合データＤ６および終了条件データＤ４を参照し、選択済み集合に含まれる特徴の個数が終了条件データＤ４に記録された最大個数に達すると、出力部１２に対して選択済み集合データＤ６に記録されたデータの出力を指示して、特徴選択装置１の処理を終了させる。
【００３５】
改善量推定部１１は、選択済み集合データＤ６を参照して特徴ｓｋを特定し、評価値推定データＤ５に記録された全特徴について、評価値推定データＤ５に記録されている改善量と、特徴間類似度データＤ３で示される特徴ｓｋとの類似度とに基づいて、改善量推定値を算出して評価値推定データＤ５に記録する。そして、評価値推定データＤ５に記録された全特徴を改善量推定値が高い順にソートし、評価値推定データＤ５を更新する。
【００３６】
特徴ｓｋとの類似度が高いほど、その特徴により得られる情報は選択済み集合に特徴ｓｋが追加されることで既に得られていることが想定される。このため、過去のステップで実際の改善量が記録されたときと比較して、その特徴の価値は大きく低下しているものと考えられる。したがって、改善量推定部１１は、下記式（２）のように、特徴ｓｋとの類似度が高いほど小さい値となる改善量推定値を算出する。これにより、実際の改善量により近い改善量推定値を算出することができる。
【数２】
2017167980.tif 000004
【００３７】
ここで、ｉｍｐｅｓｔ（ｊ，ｋ＋１）は、ｋ＋１回目のステップ（つまり次回のステップ）における特徴ｊの改善量推定値である。また、ｉｍｐ’（ｊ，ｋ）は、下記式（３）により表される。
【数３】
2017167980.tif 000005
すなわち、評価値推定データＤ５に記録された特徴ｊの行に、実際の改善量が記録されていればそれをｉｍｐ’（ｊ，ｋ）とし、実際の改善量が記録されていなければ、改善量推定値をｉｍｐ’（ｊ，ｋ）とする。
【００３８】
また、ＤｉｓＳｉｍ（ｊ，ｓｋ）は、特徴ｊと特徴ｓｋとの非類似度を表す値であり、例えば下記式（４）により算出される。
【数４】
2017167980.tif 000006
ここで、Ｓｉｍ（ｊ，ｓｋ）は、特徴ｊと特徴ｓｋとの類似度を表す０以上１以下の値であり、例えば相関係数などが用いられる。Ｓｉｍ（ｊ，ｓｋ）の値は、予め算出されて特徴間類似度データＤ３に記録されている。また、ｐは０以上の定数であり、通常は１≦ｐ≦２の範囲で設定するとよい。ｐの値は初期設定時に設定され、非類似度係数データＤ８に記録されている。
【００３９】
改善量推定部１１は、以上の処理を行った後、次のステップを開始するための後処理を実行する。具体的には、評価値推定データＤ５の全特徴について、状態が「評価済」ならば前回スキップの値を「なし」とし、「未評価」ならば前回スキップの値を「あり」とする。また、評価値推定データＤ５の全特徴について、状態を「未評価」にする。また、評価値推定データＤ５の全特徴について、実際の改善量を空欄とする。また、暫定一位データＤ１０を削除するとともに、補正用データＤ７を初期化する。補正用データＤ７の初期化は、比率が算出された全特徴およびその比率の削除、ステップカウンタのインクリメントが含まれる。この後処理が終了すると、特徴選択装置１は次のステップの処理を開始する。
【００４０】
出力部１２は、終了判定部１０からの指示に従って、選択済み集合データＤ６に記録されたデータを出力する。出力部１２によるデータの出力は、例えば、表示装置による表示、外部記憶装置へのデータ格納、外部装置へのデータ送信のいずれかまたは組み合わせにより実施することができる。出力部１２がデータを出力すると、特徴選択装置１は動作を終了する。なお、選択済み集合データＤ６に記録したデータ以外を出力する場合には、別途それらを保持しておくように処理を追加すればよい。
【００４１】
次に、図１０−１および図１０−２を参照しながら、本実施例の特徴選択装置１の動作を説明する。図１０−１および図１０−２は、本実施例の特徴選択装置１の処理手順の一例を示すフローチャートである。
【００４２】
ステップＳ１０１：本実施例の特徴選択装置１の動作が開始されると、まず、入力受付部２が、初期設定のためのユーザによる入力を受け付けて、次のステップＳ１０２に進む。
【００４３】
ステップＳ１０２：初期設定部３が、ステップＳ１０１で入力受付部２が受け付けたユーザの入力内容を反映しつつ初期設定を行い、次のステップＳ１０３に進む。
【００４４】
ステップＳ１０３：評価対象集合生成部４が、評価値推定データＤ５を参照し、状態が「未評価」の特徴があるかどうかを確認する。そして、「未評価」の特徴があれば（ステップＳ１０３：Ｙｅｓ）、次のステップＳ１０４に進み、「未評価」の特徴がなければ（ステップＳ１０３：Ｎｏ）、ステップＳ１１５に処理を移行する。
【００４５】
ステップＳ１０４：評価対象集合生成部４は、状態が「未評価」の特徴のうち、改善量推定値が最も高い特徴ｊを選択済み集合に追加して、評価対象集合を生成する。そして、評価対象集合生成部４は、この評価対象集合に含まれる特徴を記録した評価対象集合データＤ９を生成し、次のステップＳ１０５に進む。
【００４６】
ステップＳ１０５：ステップ終了判定部５が、評価値推定データＤ５および暫定一位データＤ１０を参照し、特徴ｊの改善量推定値が暫定一位データＤ１０に記録されている改善量（暫定一位の改善量）より大きいか否かを確認する。そして、特徴ｊの改善量推定値が暫定一位の改善量より大きければ（ステップＳ１０５：Ｙｅｓ）、次のステップＳ１０６に進み、特徴ｊの改善量推定値が暫定一位の改善量以下であれば（ステップＳ１０５：Ｎｏ）、ステップＳ１１５に処理を移行する。なお、暫定一位データＤ１０が無い場合は、必ずステップＳ１０６に進む。
【００４７】
ステップＳ１０６：モデル生成部６が、学習データセットＤ１を用いた機械学習によりモデルを生成する。モデル生成には、評価対象集合データＤ９に記録された特徴のみが使用される。そして、モデル生成部６は、生成したモデルのルールやパラメータなどを表すモデルデータＤ１１を生成し、次のステップ１０７に進む。
【００４８】
ステップＳ１０７：モデル評価部７が、評価用データセットＤ２を用いて、ステップＳ１０６で生成されたモデルを評価し、モデルの評価値を算出する。モデルの評価には、評価対象集合データＤ９に記録された特徴のみが使用される。そして、モデル評価部７は、算出した評価値と選択済み集合データＤ６に記録された評価値とに基づいて、選択済み集合に特徴ｊを追加したことによる評価値の改善量を算出し、次のステップＳ１０８に進む。
【００４９】
ステップＳ１０８：モデル評価部７は、暫定一位データＤ１０を参照し、ステップＳ１０７で算出した改善量が暫定一位の改善量より大きいか否かを確認する。そして、ステップＳ１０７で算出した改善量が暫定一位の改善量より大きければ（ステップＳ１０８：Ｙｅｓ）、次のステップＳ１０９に進み、ステップＳ１０７で算出した改善量が暫定一位の改善量以下であれば（ステップＳ１０８：Ｎｏ）、ステップＳ１１０に処理を移行する。なお、暫定一位データＤ１０が存在しない場合は新たに生成し、必ずステップＳ１０９に進む。
【００５０】
ステップＳ１０９：モデル評価部７は、評価対象集合データＤ９とステップＳ１０７で算出した評価値および改善量を用いて暫定一位データＤ１０を更新し、次のステップＳ１１０に進む。
【００５１】
ステップＳ１１０：モデル評価部７は、評価値推定データＤ５の特徴ｊについて、ステップＳ１０７で算出した改善量を実際の改善量として記録するとともに、特徴ｊの状態を「評価済」に更新し、次のステップＳ１１１に進む。
【００５２】
ステップＳ１１１：推定値補正部８が、補正用データＤ７を参照し、ステップカウンタの値が２以上となっているか否かを確認する。そして、ステップカウンタの値が２以上となっていれば（ステップＳ１１１：Ｙｅｓ）、次のステップＳ１１２に進み、ステップカウンタの値が１であれば（ステップＳ１１１：Ｎｏ）、ステップＳ１０３に戻って以降の処理を繰り返す。
【００５３】
ステップＳ１１２：推定値補正部８は、評価値推定データＤ５を参照し、特徴ｊの改善量推定値に対する実際の改善量の比率を算出する。そして、算出した比率を補正用データＤ７に記録して、次のステップＳ１１３に進む。
【００５４】
ステップＳ１１３：推定値補正部８は、補正用データＤ７を参照し、補正用データＤ７に比率が記録された特徴の数（比率が算出された特徴の数）が、補正用データＤ７に記録されているＮ以上となったか否かを判定する。そして、比率が算出された特徴の数がＮ以上であれば（ステップＳ１１３：Ｙｅｓ）、次のステップＳ１１４に進み、比率が算出された特徴の数がＮ未満であれば（ステップＳ１１３：Ｎｏ）、ステップＳ１０３に戻って以降の処理を繰り返す。
【００５５】
ステップＳ１１４：推定値補正部８は、評価値推定データＤ５を参照し、状態が「未評価」の特徴全てについて改善量推定値を補正する。そして、評価値推定データＤ５に記録された全特徴を補正後の改善量推定値が高い順にソートして評価値推定データＤ５を更新し、ステップＳ１０３に戻って以降の処理を繰り返す。
【００５６】
ステップＳ１１５：選択済み集合更新部９が、選択済み集合データＤ６を暫定一位データＤ１０の内容で更新する。また、選択済み集合データＤ６を参照して、選択済み集合に新たに追加された特徴を特定し、その特徴の行を評価値推定データＤ５から削除して、次のステップＳ１１６に進む。
【００５７】
ステップＳ１１６：終了判定部１０が、選択済み集合データＤ６と終了条件データＤ４を参照し、選択済み集合に含まれる特徴の個数が終了条件データＤ４に記録された最大個数に達したか、つまり終了条件を満たすか否かを判定する。そして、終了条件を満たさなければ（ステップＳ１１６：Ｎｏ）、次のステップＳ１１７に進み、終了条件を満たす場合は（ステップＳ１１６：Ｙｅｓ）、ステップＳ１１９に処理を移行する。
【００５８】
ステップＳ１１７：改善量推定部１１が、選択済み集合データＤ６を参照して、選択済み集合に新たに追加された特徴ｓｋを特定し、評価値推定データＤ５に記録された全特徴について、評価値推定データＤ５に記録されている改善量と、特徴間類似度データＤ３で示される特徴ｓｋとの類似度とに基づいて、改善量推定値を算出する。なおこのとき、評価値推定データＤ５に改善量が記録されていない特徴については、評価値推定データＤ５に記録されている、以前の改善量推定値を利用する。そして、改善量推定部１１は、算出した改善量推定値を評価値推定データＤ５に記録し、評価値推定データＤ５に記録された全特徴を改善量推定値が高い順にソートして評価値推定データＤ５を更新し、次のステップＳ１１８に進む。
【００５９】
ステップＳ１１８：改善量推定部１１は、上述した後処理を実行する。その後、ステップＳ１０３に戻って以降の処理（ｋ＋１回目のステップ）が繰り返される。
【００６０】
ステップＳ１１９：出力部１２が、選択済み集合データＤ６に記録されたデータを出力し、本実施例の特徴選択装置１による一連の処理が終了する。
【００６１】
以上、具体的な例を挙げながら説明したように、本実施例の特徴選択装置１は、選択の候補となる各特徴について、過去のステップにおいて選択済み集合に当該特徴を追加したときに算出されたモデルの評価値の改善量と、その改善量が算出された後のステップで選択された他の特徴と当該特徴との類似度とに基づいて、当該特徴の改善量推定値を算出するようにしている。したがって、従来の加速貪欲法よりも、より実際に近い改善量の推定が可能になり、無駄なモデルの生成および評価を効率よく省き、モデルの評価値が高くなる部分集合の探索を十分に高速化することができる。
【００６２】
また、本実施例の特徴選択装置１は、ステップ内で先に算出された他の特徴の実際の改善量と改善量推定値との誤差に基づいて、改善量が算出されていない未選択の特徴の改善量推定値を補正するようにしている。したがって、従来の加速貪欲法よりも、より実際に近い改善量の推定が可能になり、モデルの評価値が高くなる部分集合の探索をさらに高速化することができる。
【００６３】
＜第２実施例＞
次に、第２実施例について説明する。本実施例では、モデル評価の際に複数の評価指標の各々の評価値およびその改善量を算出する。また、改善量の推定をこれら複数の評価値に対してそれぞれ行う。そして、複数の評価値各々の目標値に対する達成度に基づいて、これら複数の評価値を統合した統合評価値を算出するとともに、複数の評価値および改善量推定値と目標値とに基づいて、統合評価値の推定値を算出する。そして、各ステップにおいて、統合評価値の推定値が先に算出された統合評価値以下となる未選択の特徴に対する処理をスキップする。これ以外の部分については、上述の第１実施例と共通である。以下では、第１実施例と異なる部分についてのみ説明する。
【００６４】
本実施例では、事象の発生を予測する予測モデルを生成することを想定する。そして、モデルを評価する複数の評価指標として、予測の網羅性を示す再現率と、予測の正確性を示す適合率とを例示する。ただし、生成するモデルおよびその評価指標はこれに限らない。また、３つ以上の評価指標でそれぞれ評価値を算出する構成としてもよい。
【００６５】
図１１は、本実施例の特徴選択装置１’の機能的な構成例を示すブロック図である。本実施例の特徴選択装置１’では、図１に示した第１実施例の特徴選択装置１の構成に対し、第１評価値統合部１３と、第２評価値統合部１４とが追加されている。
【００６６】
本実施例では、初期設定部３が、ユーザの入力に応じて再現率・適合率それぞれの目標値を設定し、目標値データＤ１２を生成する。図１２は、目標値データＤ１２の一例を示す図である。目標値データＤ１２は、ユーザが入力した再現率・適合率の目標値を記録したデータである。
【００６７】
また、本実施例では、第１実施例で用いた評価値推定データＤ５に代えて、例えば図１３に示すような評価値推定データＤ５’を用いる。この評価値推定データＤ５’は、選択の候補となる全特徴について、再現率と適合率それぞれの改善量推定値および実際の改善量、統合評価値の推定値、状態、前回スキップの有無などを記録したデータである。
【００６８】
また、本実施例では、第１実施例で用いた選択済み集合データＤ６に代えて、例えば図１４に示すような選択済み集合データＤ６’を用いる。この選択済み集合データＤ６’は、選択済み集合に含まれる全特徴と、選択済み集合に対して算出された再現率、適合率および統合評価値を記録したデータである。
【００６９】
また、本実施例では、第１実施例で用いた暫定一位データＤ１０に代えて、例えば図１５に示すような暫定一位データＤ１０’を用いる。この暫定一位データＤ１０’は、暫定一位集合に含まれる全特徴と、暫定一位集合に対して算出された再現率および適合率と、暫定一位集合に対して算出された統合評価値とを記録したデータである。
【００７０】
本実施例では、ステップ終了判定部５が、特徴ｊ（本実施例では「未評価」の特徴のうち統合評価値の推定値が最も高い特徴）の統合評価値の推定値が暫定一位の統合評価値以下である場合に、選択済み集合更新部９に対して選択済み集合データＤ６’の更新を指示して、今回のステップを終了させる。また、選択済み集合更新部９は、選択済み集合データＤ６’を暫定一位データＤ１０’の内容で更新する。
【００７１】
また、本実施例では、モデル評価部７が、モデル生成部６が生成したモデルの再現率および適合率を算出するとともに、選択済み集合に特徴ｊを追加したことによる再現率改善量および適合率改善量を算出する。そして、これら再現率改善量および適合率改善量を、評価値推定データＤ５’の特徴ｊの行に記録し、特徴ｊの状態を「評価済」に更新する。
【００７２】
また、本実施例では、改善量推定部１１が、第１実施例と同様の手法により、選択の候補となる各特徴の改善量推定値を再現率と適合率の双方について算出して、評価値推定データＤ５’に記録する。また、推定値補正部８は、第１実施例と同様の手法により、再現率の改善量推定値と適合率の改善量推定値の双方を補正する。
【００７３】
第１評価値統合部１３は、モデル評価部７により算出されて評価値推定データＤ５’に記録されている、特徴ｊの再現率の改善量および適合率の改善量と、選択済み集合データＤ６’に記録されている再現率および適合率を用いて、評価対象集合の再現率と適合率を算出する。そして、算出された再現率と適合率のそれぞれについて、ユーザの入力に応じて設定された目標値に対する達成度を算出し、これら再現率の達成度および適合率の達成度に基づいて、統合評価値を算出する。
【００７４】
第１評価値統合部１３は、まず、評価値推定データＤ５’に記録されている特徴ｊの再現率の改善量を選択済み集合データＤ６’に記録されている再現率に加算することにより、評価対象集合の再現率を算出する。同様に、評価値推定データＤ５’に記録されている特徴ｊの適合率の改善量を選択済み集合データＤ６’に記録されている適合率に加算することにより、評価対象集合の適合率を算出する。そして、算出された評価対象集合の再現率と適合率について、下記式（５）により再現率の達成度（再現率達成度）、下記式（６）により適合率の達成度（適合率達成度）をそれぞれ算出する。
【数５】
2017167980.tif 000007
【数６】
2017167980.tif 000008
なお、本実施例では、値が大きいほど高い評価となる再現率および適合率を評価指標として扱うため、目標値に対する評価値の達成度を上記のように定義できる。平均二乗誤差のように、値が小さいほど高い評価となる評価指標を扱う場合は、分子・分母を反転して（評価値を分母、目標値を分子とする）目標値に対する評価値の達成度を定義すればよい。
【００７５】
ここで、上記式（５）および上記式（６）をそのまま用いると、再現率達成度と適合率達成度の一方が１．０を大幅に超える場合に、他方の達成度が非常に小さくても、統合評価値が高い値になってしまう場合がある。そこで、再現率達成度を下記式（７）、適合率達成度を下記式（８）のように変換し、変換後再現率達成度および変換後適合率達成度を求めて、変換後再現率達成度および変換後適合率達成度を用いて統合評価値を算出することが望ましい。
【数７】
2017167980.tif 000009
【数８】
2017167980.tif 000010
上記式（７）のαｒと上記式（８）のαｐをともに１．０より小さい正の値（例えば０．１など）にすることで、変換後再現率達成度および変換後適合率達成度が１．０を大幅に超えないようにでき、上記の問題を防ぐことができる。
【００７６】
次に、第１評価値統合部１３は、変換後再現率達成度と変換後適合率達成度を用いて、下記式（９）により統合評価値を算出する。そして、第１評価値統合部１３により算出された統合評価値が、暫定一位データＤ１０’に記録された統合評価値よりも高ければ、暫定一位データＤ１０’を更新する。具体的には、暫定一位データＤ１０’に記録されている暫定一位集合を、現在の評価対象集合で置き換える。また、暫定一位データＤ１０’に記録されている再現率、適合率、および統合評価値を、現在の評価対象集合の再現率、適合率、および統合評価値で更新する。
【数９】
2017167980.tif 000011
【００７７】
上記式（９）で算出される統合評価値は、変換後再現率達成度と変換後適合率達成度との調和平均となっている。すなわち、これら変換後再現率達成度と変換後適合率達成度の両者の値が大きく、かつ類似した値となっているときに、統合評価値は大きな値を取る。この統合評価値が高くなる（大きな値を取る）ように部分集合の選択を行っていくことで、再現率と適合率それぞれの目標値をできるだけ達成し、かつ達成度のばらつきが少ない（バランスが良い）モデルが得られることになる。
【００７８】
第２評価値統合部１４は、評価値推定データＤ５’に記録されている特徴毎に、評価値推定データＤ５’に記録されている再現率の改善量推定値および適合率の改善量推定値と、選択済み集合データＤ６’に記録されている再現率および適合率と、目標値データＤ１２に記録されている目標値とに基づいて、統合評価値の推定値を算出する。なお、第２評価値統合部１４の処理は、推定値補正部８が改善量の推定値の補正処理を実行した直後、及び改善量推定部１１が改善量の推定処理を実行した直後のタイミングで実行される。
【００７９】
第２評価値統合部１４は、まず、評価値推定データＤ５’に記録されている再現率の改善量推定値を選択済み集合データＤ６’に記録されている再現率に加算することにより、再現率の推定値を算出する。同様に、評価値推定データＤ５’に記録されている適合率の改善量推定値を選択済み集合データＤ６’に記録されている適合率に加算することにより、適合率の推定値を算出する。
【００８０】
次に、第２評価値統合部１４は、上記式（５）の再現率を再現率の推定値に置き換えて計算を行うことにより、再現率達成度の推定値を算出する。同様に、上記式（６）の適合率を適合率の推定値に置き換えて計算を行うことにより、適合率達成度の推定値を算出する。また、第２評価値統合部１４は、上記式（７）から上記式（９）の再現率達成度を再現率達成度の推定値、適合率達成度を適合率達成度の推定値にそれぞれ置き換えて計算を行うことにより、統合評価値の推定値を算出する。そして、第２評価値統合部１４は、算出した統合評価値の推定値を評価値推定データＤ５’に記録して、評価値推定データＤ５’に記録された全特徴を統合評価値の推定値が高い順にソートして、評価値推定データＤ５’を更新する。
【００８１】
以上、具体的な例を挙げながら説明したように、本実施例の特徴選択装置１’は、モデルの性能に関する複数の評価指標の評価値を目標値に対する達成度に基づいて統合した統合評価値を算出し、この統合評価値が高くなるように特徴選択を行うようにしているので、複数の評価指標それぞれの目標値をできるだけ達成し、かつ達成度のばらつきが少ない（バランスが良い）モデルを得ることができる。
【００８２】
また、選択済み集合に追加された特徴に対応する統合評価値の推定値が暫定一位の統合評価値以下であれば、その特徴を選択済み集合に追加した評価対象集合によるモデルの生成・評価をスキップするようにしているので、第１実施例と同様に、無駄なモデルの生成および評価を効率よく省き、統合評価値が高くなる部分集合の探索を十分に高速化することができる。
【００８３】
以上説明した特徴選択装置１（１’）の機能は、例えば、一般的なコンピュータのハードウェアとソフトウェア（プログラム）との協働により実現することができる。この場合の特徴選択装置１（１’）のハードウェア構成の一例を図１６に示す。
【００８４】
本実施例の特徴選択装置１（１’）は、例えば図１６に示すように、情報処理を行うＣＰＵ（Central  Processing  Unit）１０１、ＢＩＯＳなどを記憶した読み出し専用メモリであるＲＯＭ（Read  Only  Memory）１０２、各種データを書き換え可能に記憶するＲＡＭ（Random  Access  Memory）１０３、各種データベースとして機能するとともに各種のプログラムを格納するＨＤＤ（Hard  Disk  Drive）１０４、記憶媒体１１０を用いて情報を保管したり外部に情報を配布したり外部から情報を入手するための媒体駆動装置１０５、ユーザがＣＰＵ１０１に命令や情報などを入力するためのキーボードやマウスなどの入力装置１０６、および、処理経過や結果などをユーザに表示するＬＣＤ（Liquid  Cristal  Display）などの表示装置１０７などを備え、これら各部間で送受信されるデータをバスコントローラ１０８が調停して動作する。
【００８５】
このような特徴選択装置１（１’）では、ユーザが電源を投入するとＣＰＵ１０１がＲＯＭ１０２内のローダーというプログラムを起動させ、ＨＤＤ１０４よりＯＳ（Operation  System）というコンピュータのハードウェアとソフトウェアとを管理するプログラムをＲＡＭ１０３に読み込み、このＯＳを起動させる。このようなＯＳは、ユーザの操作に応じてプログラムを起動したり、データを読み込んだり、保存を行ったりする。ＯＳのうち代表的なものとしては、Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）などが知られている。これらのＯＳ上で動作するプログラムをアプリケーションプログラムと呼んでいる。なお、アプリケーションプログラムは、所定のＯＳ上で動作するものに限らず、後述の各種処理の一部の実行をＯＳに肩代わりさせるものであってもよいし、所定のアプリケーションソフトやＯＳなどを構成する一群のプログラムファイルの一部として含まれているものであってもよい。
【００８６】
特徴選択装置１（１’）は、上記アプリケーションプログラムとして、図１や図１１に示した機能的な構成要素をそれぞれプロセスとして生成するためのプログラムをＨＤＤ１０４に記憶している。特徴選択装置１（１’）のＨＤＤ１０４にインストールされるアプリケーションプログラムは、一般的には、ＣＤ−ＲＯＭやＤＶＤなどの各種の光ディスク、各種光磁気ディスク、フレキシブルディスクなどの各種磁気ディスク、半導体メモリなどの各種方式のメディアなどの記憶媒体１１０に記録されて提供される。また、このプログラムは、例えばネットワークを利用した通信により外部から取り込まれ、ＨＤＤ１０４にインストールされてもよい。
【００８７】
以上のようなハードウェア構成を採用する場合、ＣＰＵ１０１がＯＳ上で動作する上記プログラムに従って各種の演算処理を実行することにより、例えばＲＡＭ１０３上に図６に示した機能的な構成要素が生成され、コンピュータを特徴選択装置１として機能させることができる。なお、図１や図１１に示した機能的な構成要素の一部あるいは全部を、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-programmable  Gate  Array）などの専用のハードウェアを用いて実現することもできる。
【００８８】
なお、上述の実施例では、特徴選択装置１（１’）が単体の装置として構成されていることを想定するが、特徴選択装置１（１’）は単体の装置として構成されている必要はなく、物理的に分離されてネットワークを介して接続された複数の装置により構成されていてもよい。また、特徴選択装置１（１’）は、クラウドシステム上で動作する仮想マシンとして実現されていてもよい。
【００８９】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９０】
１（１’）  特徴選択装置
２  入力受付部
３  初期設定部
４  評価対象集合生成部
５  ステップ終了判定部
６  モデル生成部
７  モデル評価部
８  推定値補正部
９  選択済み集合更新部
１０  終了判定部
１１  改善量推定部
１２  出力部
１３  第１評価値統合部
１４  第２評価値統合部
【図１】
2017167980.tif 000012
【図２】
2017167980.tif 000013
【図３】
2017167980.tif 000014
【図４】
2017167980.tif 000015
【図５】
2017167980.tif 000016
【図６】
2017167980.tif 000017
【図７】
2017167980.tif 000018
【図８】
2017167980.tif 000019
【図９】
2017167980.tif 000020
【図１０−１】
2017167980.tif 000021
【図１０−２】
2017167980.tif 000022
【図１１】
2017167980.tif 000023
【図１２】
2017167980.tif 000024
【図１３】
2017167980.tif 000025
【図１４】
2017167980.tif 000026
【図１５】
2017167980.tif 000027
【図１６】
2017167980.tif 000028