(57)【要約】【課題】複数の評価指標の各々に設定された目標値をできるだけ達成するように部分集合の選択を行うことができる特徴選択装置、特徴選択方法およびプログラムを提供する。【解決手段】実施形態の特徴選択装置１は、モデルの性能に関する複数の評価指標の各々の評価値を算出するモデル評価部７と、複数の評価指標の各々について、設定された目標値に対する評価値の達成度を算出し、複数の評価指標の各々の達成度が高く、かつ、複数の評価指標間における達成度のばらつきが少ないほど高評価となる統合評価値を算出する評価値統合部８と、を備え、統合評価値が高くなる部分集合を探索する。【選択図】図６
2017167979.tif 000002
【特許請求の範囲】
【請求項１】
特徴集合の部分集合を用いたモデルの生成および評価を繰り返し、評価値が高くなる前記部分集合を探索する特徴選択装置であって、
前記モデルの性能に関する複数の評価指標の各々の評価値を算出するモデル評価部と、
前記複数の評価指標の各々について、設定された目標値に対する前記評価値の達成度を算出し、前記複数の評価指標の各々の前記達成度が高く、かつ、前記複数の評価指標間における前記達成度のばらつきが少ないほど高評価となる統合評価値を算出する評価値統合部と、を備え、
前記統合評価値が高くなる前記部分集合を探索する特徴選択装置。
【請求項２】
前記モデルはデータを複数のクラスに分類する識別モデルであり、
前記複数の評価指標は、前記複数のクラスのうち一つまたは複数を評価対象とし、前記評価対象のクラスごとに、当該クラスに分類されるべきデータがもれなく分類されているかを示す再現率と、当該評価対象のクラスに分類されたデータのうち正しく分類されている割合を示す適合率とを含む、請求項１に記載の特徴選択装置。
【請求項３】
前記モデルは事象の発生を予測する予測モデルであり、
前記複数の評価指標は、予測の網羅性を示す再現率と、予測の正確性を示す適合率とを含む、請求項１または２に記載の特徴選択装置。
【請求項４】
前記特徴集合に含まれる各特徴に、特徴の抽出に要する時間が長いほど大きな値となる第１コストが与えられ、
前記部分集合に含まれる各特徴の前記第１コストに基づいて、前記部分集合のコストである第２コストを算出するコスト評価部をさらに備え、
前記第２コストが設定された上限値以下であるとの制約条件を満たし、かつ、前記統合評価値が高くなる前記部分集合を探索する、請求項１乃至３のいずれか一項に記載の特徴選択装置。
【請求項５】
前記部分集合から１つの特徴を除外したときの前記第２コストの低下と前記統合評価値の低下との比率を示す除外損失を、除外する特徴ごとに算出する除外損失評価部をさらに備え、
前記第２コストが前記上限値を超えた場合に、前記除外損失に基づいて前記部分集合から除外する特徴を選択する、請求項４に記載の特徴選択装置。
【請求項６】
前記モデルは事象の発生を予測する予測モデルであり、
前記部分集合に対して前記モデルによる予測結果が得られる時期の早さに応じたスコアを算出し、算出したスコアに基づいて前記統合評価値を補正する評価値補正部をさらに備え、
補正した前記統合評価値が高くなる前記部分集合を探索する、請求項１乃至５のいずれか一項に記載の特徴選択装置。
【請求項７】
特徴集合の部分集合を用いたモデルの生成および評価を繰り返し、評価値が高くなる前記部分集合を探索する特徴選択方法であって、
前記モデルの性能に関する複数の評価指標の各々の評価値を算出するステップと、
前記複数の評価指標の各々について、設定された目標値に対する前記評価値の達成度を算出し、前記複数の評価指標の各々の前記達成度が高く、かつ、前記複数の評価指標間における前記達成度のばらつきが少ないほど高評価となる統合評価値を算出するステップと、を含み、
前記統合評価値が高くなる前記部分集合を探索する特徴選択方法。
【請求項８】
コンピュータを、特徴集合の部分集合を用いたモデルの生成および評価を繰り返し、評価値が高くなる前記部分集合を探索する特徴選択装置として機能させるためのプログラムであって、
前記コンピュータに、
前記モデルの性能に関する複数の評価指標の各々の評価値を算出する機能と、
前記複数の評価指標の各々について、設定された目標値に対する前記評価値の達成度を算出し、前記複数の評価指標の各々の前記達成度が高く、かつ、前記複数の評価指標間における前記達成度のばらつきが少ないほど高評価となる統合評価値を算出する機能と、を実現させ、
前記統合評価値が高くなる前記部分集合を探索させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、特徴選択装置、特徴選択方法およびプログラムに関する。
【背景技術】
【０００２】
機械学習アルゴリズムを用いてモデルを構築する際に任意の特徴集合から機械学習に有用な特徴の部分集合を選択する特徴選択と呼ばれる技術がある。特徴選択にはいくつかの方法があるが、その一つとしてＷｒａｐｐｅｒ法が知られている。Ｗｒａｐｐｅｒ法は、部分集合を変更しながらモデルの生成および評価を繰り返し、評価値が高くなる部分集合を探索する方法である。
【０００３】
モデルの性能を評価する評価指標には様々なものがある。例えば、事象の発生を予測する予測モデルの評価指標としては、予測の網羅性を示す「再現率」や、予測の正確性を示す「適合率」などがある。再現率と適合率は基本的にトレードオフの関係にあり、双方の評価値がともに最大値をとるような部分集合を選択することは困難である。そこで、再現率と適合率の調和平均である「Ｆ値」を評価指標として用いる場合もある。Ｆ値を用いてモデルを評価した場合、再現率と適合率のバランスがよいモデルの評価値が高くなる。
【０００４】
しかし、モデルの用途によっては、例えば、再現率をある程度確保しながら適合率を優先したモデルを構築したい、あるいは逆に、適合率をある程度確保しながら再現率を優先したモデルを構築したいといった要望もある。従来の技術では、このように複数の評価指標の各々で目標が異なる場合に、それらをできるだけ達成するように部分集合の選択を行うことができず、改善が求められる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−１９７８１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、複数の評価指標の各々に設定された目標値をできるだけ達成するように部分集合の選択を行うことができる特徴選択装置、特徴選択方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の特徴選択装置は、特徴集合の部分集合を用いたモデルの生成および評価を繰り返し、評価値が高くなる前記部分集合を探索する特徴選択装置であって、モデル評価部と、評価値統合部と、を備える。モデル評価部は、前記モデルの性能に関する複数の評価指標の各々の評価値を算出する。評価値統合部は、前記複数の評価指標の各々について、設定された目標値に対する前記評価値の達成度を算出し、前記複数の評価指標の各々の前記達成度が高く、かつ、前記複数の評価指標間における前記達成度のばらつきが少ないほど高評価となる統合評価値を算出する。実施形態の特徴選択装置は、前記統合評価値が高くなる前記部分集合を探索する。
【図面の簡単な説明】
【０００８】
【図１】図１は、一定周期でモデルによる推定を行う例を説明する図である。
【図２】図２は、時系列データを使って将来の期間におけるデータを予測する例を説明する図である。
【図３】図３は、データセットの一例を示す図である。
【図４】図４は、コスト設定データの一例を示す図である。
【図５】図５は、補正設定データの一例を示す図である。
【図６】図６は、実施例の特徴選択装置の機能的な構成例を示すブロック図である。
【図７】図７は、目標値データの一例を示す図である。
【図８】図８は、コスト制約データの一例を示す図である。
【図９】図９は、終了条件データの一例を示す図である。
【図１０】図１０は、特徴候補データの一例を示す図である。
【図１１】図１１は、選択済み集合データの一例を示す図である。
【図１２】図１２は、モードデータの一例を示す図である。
【図１３】図１３は、評価対象集合データの一例を示す図である。
【図１４】図１４は、コスト評価部の処理とデータとの関係を示す図である。
【図１５】図１５は、コストデータの一例を示す図である。
【図１６】図１６は、モデルデータの一例を示す図である。
【図１７】図１７は、評価値データの一例を示す図である。
【図１８】図１８は、評価値統合部の処理とデータとの関係を示す図である。
【図１９】図１９は、統合評価値データの一例を示す図である。
【図２０】図２０は、評価値補正部の処理とデータとの関係を示す図である。
【図２１】図２１は、補正済み評価値データの一例を示す図である。
【図２２】図２２は、除外損失評価部の処理とデータとの関係を示す図である。
【図２３】図２３は、最終評価データの一例を示す図である。
【図２４】図２４は、暫定一位データの一例を示す図である。
【図２５】図２５は、最良集合データの一例を示す図である。
【図２６−１】図２６−１は、追加モード時における特徴選択装置の処理手順の一例を示すフローチャートである。
【図２６−２】図２６−２は、追加モード時における特徴選択装置の処理手順の一例を示すフローチャートである。
【図２７−１】図２７−１は、除外モード時における特徴選択装置の処理手順の一例を示すフローチャートである。
【図２７−２】図２７−２は、除外モード時における特徴選択装置の処理手順の一例を示すフローチャートである。
【図２８】図２８は、特徴選択装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、実施形態の特徴選択装置、特徴選択方法およびプログラムを、図面を参照して詳細に説明する。本実施形態の特徴選択装置は、任意の特徴集合の部分集合を用いたモデルの生成および評価を繰り返し、評価値が高くなる部分集合を探索する、Ｗｒａｐｐｅｒ法による特徴選択装置である。
【００１０】
＜実施形態の概要＞
まず、本実施形態の概要について説明する。従来のＷｒａｐｐｅｒ法による特徴選択装置は、モデルの性能に関する複数の評価指標に対して各々設定された目標値を考慮し、それらをできるだけ達成するように特徴選択を行う機能がない。そのため、ユーザが所望するモデルを得るのが難しいという問題がある。
【００１１】
そこで、本実施形態では、複数の評価指標の目標値に対する評価値の達成度に基づいて、これら複数の評価指標の評価値を統合した「統合評価値」を算出する。そして、この統合評価値が高くなる部分集合を探索する。統合評価値は、複数の評価指標の各々の達成度が高く、かつ、複数の評価指標間における達成度のばらつきが少ないほど高評価となる評価値である。これにより、複数の評価指標の各々に設定された目標値をできるだけ達成するように部分集合の選択を行うことができ、ユーザが所望するモデルを得ることができる。
【００１２】
また、従来のＷｒａｐｐｅｒ法による特徴選択装置は、モデルの性能（予測精度、推定精度など）以外の要素を考慮して特徴選択を行うための機能がない。しかし、実際のデータ分析を考えると、モデルを評価する上で性能以外の要素も考慮したい場合がある。
【００１３】
例えば、図１に示すように、一定周期でモデルによる予測・推定を行う場合を考える。この場合、予測・推定の周期ごとに、観測データからの特徴抽出とモデル適用を完了させる必要がある。このとき、使用する特徴集合（特徴選択装置により選択された部分集合）の中に、抽出に多くの時間を要する特徴が大量に含まれていると、一定周期での予測・推定ができない。したがって、特徴選択を行う際には、評価対象の部分集合により得られるモデルの性能だけでなく、その部分集合内の全特徴の抽出に要する処理時間が、予め定められた時間内に収まるか否かをチェックすることが求められる。
【００１４】
そこで、本実施形態では、部分集合内の全特徴の抽出に要する処理時間をその部分集合のコストと定義し、部分集合のコストが所定の上限値以下であるとの制約条件を満たしつつ、上記の統合評価値が高くなるように特徴選択を行う。これにより、実際のデータ分析において有用で、かつ、高性能なモデルを得ることができる。
【００１５】
また、例えば図２に示すように、時系列データを使って将来の期間における事象の発生を予測する場合を考える（以下、この期間を「予測対象期間」と呼ぶ）。予測結果に応じて予測対象期間までに何らかの対策を行いたい場合、予測結果はなるべく早い時期に得られることが望ましい。予測の精度が高くても、予測結果が予測対象期間の直前にしか得られなければ、予測モデルの価値は低下する。一方で、予測の精度が少々悪くても、早い時期に予測結果が得られる方が、予測モデルの価値が高いこともある。
【００１６】
図２に示すように、予測対象期間に対して、様々な位置に設置したウィンドウから特徴を抽出し、それらを特徴選択の候補とする場合、使用する特徴集合（特徴選択装置により選択された部分集合）に応じて予測結果が得られる時期も変化する。そこで、本実施形態では、評価対象の部分集合により得られるモデルにより予測結果が得られる時期の早さ（図２における期間Ｔの長さ）をその部分集合のスコアと定義し、部分集合のスコアに基づいて上記の統合評価値を補正する。補正は、図２における期間Ｔが長いほど、予測精度が同じモデルでも評価値が高くなるようにする。これにより、実際のデータ分析において有用で、かつ、高性能なモデルを得ることができる。
【００１７】
＜実施例＞
以下では、本実施形態のより具体的な実施例について説明する。本実施例では、評価値が高くなる部分集合を探索するアプローチとして、例えば、前向き選択の貪欲法と後ろ向き選択の貪欲法を想定する。前向き選択の貪欲法は、選択済みの特徴の集合（以下、これを「選択済み集合」と呼ぶ）に対して特徴を追加する処理を繰り返す。本実施例の特徴選択装置は、このような前向き選択の貪欲法による特徴選択のモードをベースとし、必要に応じて、選択済み集合から特徴を除外する後ろ向き選択の貪欲法による特徴選択のモードに切り替えて処理を行う。以下、前者のモードを「追加モード」と呼び、後者のモードを「除外モード」と呼ぶ。
【００１８】
なお、以下で示す実施例は一例であり、装置が同様の機能を持つならば、機能の分け方などは問わない。また、以下に示す各種データについても、本実施例と同様の情報が含まれていれば、その表現・保存形式などは問わない。
【００１９】
本実施例では、以下に示す前提条件や設定に従って特徴選択・モデル生成を行うものとする。なお、ここに示した以外の条件や設定についても対応できるようにし、後述の初期設定の際にユーザの入力などに応じて条件や設定を切り替えられるようにしてもよい。例えば、初期設定時のユーザの入力に応じて、用いる評価指標を選択できるようにするなどが考えられる。
【００２０】
＜生成するモデル＞
本実施例では、ある機器の故障が発生するか否かを２クラス識別により予測するモデル（予測モデル）を生成するものとする。例えば、与えられた入力データが、「故障が発生するクラス」と「故障が発生しないクラス」の２クラスのうち、どちらに属するかを推定し分類するモデルを生成する。このモデルは、入力された特徴の値に対して、予測対象期間に故障が発生するか否かを示すデータ（以下、「ラベル」と呼ぶ）を出力する。このようなモデルは、例えばSupport  Vector  Machine、決定木、ロジスティック回帰などの機械学習アルゴリズムにより生成できる。
【００２１】
＜学習データセットおよび評価用データセット＞
学習データセットは、機械学習によるモデル生成に用いられるデータセットであり、評価用データセットは、生成されたモデルの評価に用いられるデータセットである。学習データセットおよび評価用データセットは、サンプルの集合であり、両者に同様のサンプルが含まれる。以下、学習データセットと評価用データセットを区別しない場合は、単に「データセット」と呼ぶ。
【００２２】
図３は、データセットＤ１の一例を示す図である。図３に示すデータセットＤ１は、１つの行が１つのサンプルに対応する。各サンプルは、選択の候補となる特徴の値の集合と、正しい予測のラベル（以下、「正解ラベル」と呼ぶ）により構成される。図３に示すデータセットＤ１は、選択の候補となる特徴の数（特徴集合に含まれる特徴の総数）が３００個である場合の例を示している。また、各サンプルの正解ラベルは、機器に故障が発生したことを「１」、機器に故障が発生しなかったことを「−１」で表している。なお、学習データセットと評価用データセットに含まれるサンプル同士は、モデル生成の前に毎回ランダムに入れ替えたり、交差検定を用いて決めたりしてもよい。本実施例では簡単のため、学習データセットと評価用データセットそれぞれに含まれるサンプルは変更されないものとする。
【００２３】
＜特徴選択処理の終了条件＞
本実施例では、選択済み集合に含まれる特徴の個数が後述の初期設定時に定めた最大個数に達した場合、あるいは、除外モードによる処理が初期設定時に定めた上限回数実行された場合に、処理を終了するものとする。なお、これは一例であり、例えば選択済み集合によるモデルの再現率、適合率の達成度が一定以上になったとき終了するなど、他の終了条件を用いてもよい。
【００２４】
＜モデルの評価指標＞
評価対象となる部分集合（以下、これを「評価対象集合」と呼ぶ）Ｘを用いて生成されるモデルの性能（予測モデルの予測精度）は、モデルを用いて評価用データセットに対して予測を行い、得られた予測結果について、下記式（１）で表される再現率と、下記式（２）で表される適合率とを算出することで評価する。これはすなわち、「故障が発生するクラス」と「故障が発生しないクラス」の２クラスのうち、評価対象として、「故障が発生するクラス」のほうに着目し、「故障が発生するクラス」に分類されるべきデータがもらさず分類されているかを再現率で、「故障が発生するクラス」に分類されたデータのうち正しく分類されている割合を適合率でそれぞれ評価するということである。なお、ここでは評価対象のクラスを「故障が発生するクラス」のみとしているが、複数のクラスを対象として再現率・適合率を評価してもよい。
【数１】
2017167979.tif 000003
【数２】
2017167979.tif 000004
【００２５】
本実施例では、これら再現率と適合率のそれぞれに対して、ユーザが初期設定時に目標値を設定する。そして、モデルの評価により得られる再現率の値（評価値）と適合率の値（評価値）とをそれぞれの目標値を考慮して統合し、統合評価値merged_eval（Ｘ）を算出する。なお、ここに示した評価指標は一例であり、数値として算出され、目標値が設定できる評価指標であれば、任意の種類のものを用いてよい。また、３種類以上の評価指標を用いても構わない。
【００２６】
＜コストと制約＞
本実施例では、特徴集合に含まれる各特徴ｘそれぞれにコストfeature_cost（ｘ）が設定されているものとする。コストfeature_cost（ｘ）は、例えば特徴量ｘの抽出に要する平均的な処理時間などが考えられる。評価対象集合Ｘのコストcost（Ｘ）は、例えば下記式（３）に示すように、評価対象集合Ｘに含まれる各特徴ｘのコストfeature_cost（ｘ）の総和で定義されるものとする。
【数３】
2017167979.tif 000005
【００２７】
本実施例では、下記式（４）に示すように、評価対象集合Ｘのコストcost（Ｘ）が上限値max_cost以下であるとの制約条件を設定する。上限値max_costは、初期設定時にユーザが値を設定するものとする。
【数４】
2017167979.tif 000006
【００２８】
なお、これらの設定は一例であり、評価対象集合Ｘのコストcost（Ｘ）は、Ｘの要素数の増加に伴い増加する傾向を持つ数値であれば、任意の定義を用いてよい。例えば、特徴抽出を並列処理するのであれば、評価対象集合Ｘに含まれる各特徴ｘのコストfeature_cost（ｘ）の総和ではなく、最大値を用いるなどの方法も考えられる。
【００２９】
コストfeature_cost（ｘ）に関する設定は、例えば図４に示すようなコスト設定データＤ２によって、本実施例の特徴選択装置による処理開始前に定義されているものとする。このコスト設定データＤ２には、特徴集合に含まれる各特徴ｘそれぞれのコストfeature_cost（ｘ）が示されている。なお、初期設定時などのユーザの入力に応じて、特徴ｘのコストfeature_cost（ｘ）の値や、評価対象集合Ｘのコストcost（Ｘ）の算出方法などを設定できるようにしても構わない。
【００３０】
＜スコアと補正方法＞
本実施例では、特徴集合に含まれる各特徴ｘそれぞれにスコアfeature_score（ｘ）が設定されているものとする。スコアfeature_score（ｘ）は、例えば図２に示した特徴ごとの猶予期間ｔの長さなどが挙げられる。評価対象集合Ｘのスコアscore（Ｘ）は、例えば下記式（５）に示すように、評価対象集合Ｘに含まれる各特徴ｘのスコアfeature_score（ｘ）の最小値で定義されるものとする。
【数５】
2017167979.tif 000007
【００３１】
本実施例では、統合評価値merged_eval（Ｘ）を算出した後、下記式（６）に示すように、評価対象集合Ｘのスコアscore（Ｘ）に応じて統合評価値merged_eval（Ｘ）を補正し、補正済み評価値corrected_eval（Ｘ）を得る。
【数６】
2017167979.tif 000008
ここで、関数ｆ（・）は、例えば下記式（７）に示すようなものが考えられる。なお、下記式（７）のα（score（Ｘ））は、score（Ｘ）が大きいほど大きい値となる係数である。本実施例では、score（Ｘ）の値に応じたα（score（Ｘ））の値が事前に設定されているものとするが（図５参照）、score（Ｘ）とα（score（Ｘ））の関係に関して、他の任意の関数を定義してもよい。
【数７】
2017167979.tif 000009
【００３２】
なお、ここに示した補正の方法は一例であり、評価対象集合Ｘのスコアscore（Ｘ）が良い値となるほど、補正済み評価値corrected_eval（Ｘ）も良い値となるような補正方法であれば、任意の方法を用いて構わない。例えば、上記式（７）では統合評価値merged_eval（Ｘ）に評価対象集合Ｘのスコアscore（Ｘ）に応じた係数α（score（Ｘ））を乗じているが、評価対象集合Ｘのスコアscore（Ｘ）に応じた係数α（score（Ｘ））を加算する方法も考えられる。また、より複雑な関数を定義しても構わない。
【００３３】
スコアfeature_score（ｘ）やスコアscore（Ｘ）に応じた係数α（score（Ｘ））に関する設定は、例えば図５に示すような補正設定データＤ３によって、本実施例の特徴選択装置による処理開始前に定義されているものとする。この補正設定データＤ３には、特徴集合に含まれる各特徴ｘそれぞれのスコアfeature_score（ｘ）と、評価対象集合Ｘのスコアscore（Ｘ）の値に応じた係数α（score（Ｘ））のテーブルが示されている。なお、初期設定時などのユーザの入力に応じて、特徴ｘのスコアfeature_score（ｘ）の値や、評価対象集合Ｘのスコアscore（Ｘ）の算出方法、補正済み評価値corrected_eval（Ｘ）の算出方法などを設定できるようにしても構わない。
【００３４】
＜装置構成＞
次に、本実施例の特徴選択装置の機能的な構成について説明する。図６は、本実施例の特徴選択装置１の機能的な構成例を示すブロック図である。本実施例の特徴選択装置１は、図６に示すように、入力受付部２と、初期設定部３と、評価対象集合生成部４と、コスト評価部５と、モデル生成部６と、モデル評価部７と、評価値統合部８と、評価値補正部９と、除外損失評価部１０と、暫定一位更新部１１と、選択済み集合更新部１２と、終了判定部１３と、出力部１４とを備える。
【００３５】
入力受付部２は、初期設定のためのユーザによる入力を受け付ける。ここでは、再現率・適合率の目標値、評価対象集合Ｘのコストcost（Ｘ）の上限値max_cost、終了条件における特徴の最大個数と除外モード実行の最大回数を、ユーザが入力するものとする。なお、評価対象集合Ｘのコストcost（Ｘ）の上限値max_costについては、各特徴ｘのスコアfeature_score（ｘ）のうち、最小の値未満となる値は受け付けないものとする。
【００３６】
初期設定部３は、入力受付部２が受け付けたユーザの入力内容を反映し、目標値データＤ４、コスト制約データＤ５、終了条件データＤ６、特徴候補データＤ７、選択済み集合データＤ８、モードデータＤ９の生成および初期設定を行う。
【００３７】
図７は、目標値データＤ４の一例を示す図である。目標値データＤ４は、ユーザの入力に応じて、再現率・適合率の目標値を記録したデータである。図７に例示する目標値データＤ４は、再現率の目標値が０．９、適合率の目標値が０．４に設定されたことを示している。
【００３８】
図８は、コスト制約データＤ５の一例を示す図である。コスト制約データＤ５は、ユーザの入力に応じて、評価対象集合Ｘのコストcost（Ｘ）の上限値max_costを記録したデータである。図８に例示するコスト制約データＤ５は、上限値max_costが５．０に設定されたことを示している。
【００３９】
図９は、終了条件データＤ６の一例を示す図である。終了条件データＤ６は、ユーザの入力に応じて、選択する特徴の最大個数と除外モード実行の最大回数とを記録したデータである。図９に例示する終了条件データＤ６は、選択する特徴の最大個数が５０個、除外モード実行の最大回数が１０回に設定されたことを示している。
【００４０】
図１０は、特徴候補データＤ７の一例を示す図である。特徴候補データＤ７は、選択の候補となる全特徴（特徴集合に含まれる全特徴）とそれらの状態を記録したデータである。図１０は、選択の候補となる特徴の数（特徴集合に含まれる特徴の総数）が３００個の場合の特徴候補データＤ７の例を示している。各特徴の状態は、「未評価」、「保留」、「評価済み」、「選択済み」、「違反」、「除外」のいずれかを取る。初期設定時には、特徴候補データＤ７の全特徴の状態が「未評価」に設定される。
【００４１】
図１１は、選択済み集合データＤ８の一例を示す図である。選択済み集合データＤ８は、選択済み集合に含まれる全特徴と、選択済み集合に対して算出された補正済み評価値corrected_eval（Ｘ）と、選択済み集合に対して算出されたコストcost（Ｘ）とを記録したデータである。初期設定時には、選択済み集合データＤ８の選択済み集合を空集合とし、補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）は任意の値が設定される。
【００４２】
図１２は、モードデータＤ９の一例を示す図である。モードデータＤ９は、現在のモードが追加モードと除外モードのどちらであるかを記録したデータである。初期設定時には、モードデータＤ９のモードは追加モードに設定される。
【００４３】
評価対象集合生成部４は、モードデータＤ９、特徴候補データＤ７および選択済み集合データＤ８を参照し、追加モード時であれば状態が「未評価」の特徴を選択済み集合に１つ追加、除外モード時であれば選択済み集合から、特徴候補データＤ７に示された状態が「評価済み」でない特徴を１つ除外することにより評価対象集合を生成する。また、追加モード時であれば追加した特徴、除外モード時であれば除外した特徴について、特徴候補データＤ７の状態を「保留」にする。そして、評価対象集合生成部４は、例えば図１３に示すように、評価対象集合に含まれる各特徴を記録した評価対象集合データＤ１０を生成する。このとき、評価対象集合データＤ１０がすでに存在する場合は、そのデータを削除して新規に評価対象集合データＤ１０を生成する。
【００４４】
コスト評価部５は、評価対象集合生成部４が生成した評価対象集合のコストcost（Ｘ）を算出し、算出したコストcost（Ｘ）が上限値max_costを超えていないかを判定する。図１４は、コスト評価部５の処理とデータとの関係を示す図である。図中のReferはデータの参照を意味し、Createはデータの生成を意味し、Updateはデータの更新を意味する。
【００４５】
コスト評価部５は、まず、評価対象集合データＤ１０とコスト設定データＤ２を参照し、評価対象集合生成部４が生成した評価対象集合のコストcost（Ｘ）を上記式（３）により算出する。次に、コスト評価部５は、コスト制約データＤ５を参照し、算出した評価対象集合のコストcost（Ｘ）が上限値max_costを超えていないかを判定する。この判定の結果、評価対象集合のコストcost（Ｘ）が上限値max_costを超えていなければ、コスト評価部５は、特徴候補データＤ７を参照して、状態が「保留」となっている特徴の状態を「評価済み」に更新する。そして、例えば図１５に示すように、評価対象集合のコストcost（Ｘ）を記録したコストデータＤ１１を生成する。このとき、コストデータＤ１１がすでに存在する場合は、そのデータを削除して新規にコストデータＤ１１を生成する。
【００４６】
一方、評価対象集合のコストcost（Ｘ）が上限値max_costを超えた場合は、コスト評価部５は、特徴候補データＤ７を参照して、状態が「保留」の特徴の状態を「違反」に更新する。このとき、特徴候補データＤ７の特徴の状態が全て「選択済み」か「違反」か「除外」となった場合、コスト評価部５は、モードデータＤ９を除外モードに更新する。
【００４７】
モデル生成部６は、評価対象集合データＤ１０と学習データセット（データセットＤ１）を参照し、評価対象集合データＤ１０に記録された特徴のみを使ってモデル生成を行う。そして、モデル生成部６は、生成したモデルのルール、パラメータなどを表すモデルデータＤ１２を生成する。このとき、モデルデータＤ１２がすでに存在する場合は、そのデータを削除して新規にモデルデータＤ１２を生成する。図１６は、モデルデータＤ１２の一例を示す図である。この図１６に例示するモデルデータＤ１２は、線形判別器を用いたときのモデルデータの例であり、各特徴に対する重みｗとバイアスｂを記録している。
【００４８】
モデル評価部７は、評価対象集合データＤ１０、モデルデータＤ１２および評価用データセット（データセットＤ１）を参照し、評価対象集合データＤ１０に記録された特徴のみを使って、モデル生成部６が生成したモデルの再現率を上記式（１）、適合率を上記式（２）により算出する。そして、モデル評価部７は、算出した再現率と適合率とを評価値として記録した評価値データＤ１３を生成する。このとき、評価値データＤ１３がすでに存在する場合は、そのデータを削除して新規に評価値データＤ１３を生成する。図１７は、評価値データＤ１３の一例を示す図である。図１７に例示する評価値データＤ１３は、算出した再現率の評価値が０．６、適合率の評価値が０．３であったことを示している。
【００４９】
評価値統合部８は、複数の評価指標である再現率と適合率のそれぞれについて、モデル評価部７が算出した評価値の目標値に対する達成度を算出し、これら再現率の達成度および適合率の達成度に基づいて、統合評価値を算出する。図１８は、評価値統合部８の処理とデータとの関係を示す図である。図中のReferはデータの参照を意味し、Createはデータの生成を意味する。
【００５０】
評価値統合部８は、まず、評価値データＤ１３と目標値データＤ４を参照し、下記式（８）により再現率の達成度（再現率達成度）、下記式（９）により適合率の達成度（適合率達成度）をそれぞれ算出する。
【数８】
2017167979.tif 000010
【数９】
2017167979.tif 000011
なお、本実施例では、値が大きいほど高い評価となる再現率および適合率を評価指標として扱うため、目標値に対する評価値の達成度を上記のように定義できる。平均二乗誤差のように、値が小さいほど高い評価となる評価指標を扱う場合は、分子・分母を反転して（評価値を分母、目標値を分子とする）目標値に対する評価値の達成度を定義すればよい。
【００５１】
ここで、上記式（８）および上記式（９）をそのまま用いると、再現率達成度と適合率達成度の一方が１．０を大幅に超える場合に、他方の達成度が非常に小さくても、統合評価値が高い値になってしまう場合がある。そこで、再現率達成度を下記式（１０）、適合率達成度を下記式（１１）のように変換し、変換後再現率達成度および変換後適合率達成度を求めて、変換後再現率達成度および変換後適合率達成度を用いて統合評価値を算出することが望ましい。
【数１０】
2017167979.tif 000012
【数１１】
2017167979.tif 000013
上記式（１０）のαｒと上記式（１１）のαｐをともに１．０より小さい正の値（例えば０．１など）にすることで、変換後再現率達成度および変換後適合率達成度が１．０を大幅に超えないようにでき、上記の問題を防ぐことができる。これらαｒとαｐの値は予め定められているものとするが、初期設定時にユーザの入力に応じて設定してもよい。
【００５２】
次に、評価値統合部８は、変換後再現率達成度と変換後適合率達成度を用いて、下記式（１２）により、統合評価値merged_eval（Ｘ）を算出する。
【数１２】
2017167979.tif 000014
そして、評価値統合部８は、算出した統合評価値merged_eval（Ｘ）を記録した統合評価値データＤ１４を生成する。このとき、統合評価値データＤ１４がすでに存在する場合は、そのデータを削除して新規に統合評価値データＤ１４を生成する。図１９は、統合評価値データＤ１４の一例を示す図である。図１９に例示する統合評価値データＤ１４は、算出した統合評価値merged_eval（Ｘ）が０．７０６であったことを示している。
【００５３】
上記式（１２）で算出される統合評価値merged_eval（Ｘ）は、変換後再現率達成度と変換後適合率達成度との調和平均となっている。すなわち、これら変換後再現率達成度と変換後適合率達成度の両者の値が大きく、かつ類似した値となっているときに、統合評価値merged_eval（Ｘ）は大きな値を取る。この統合評価値merged_eval（Ｘ）が高くなる（大きな値を取る）ように部分集合の選択を行っていくことで、再現率と適合率それぞれの目標値をできるだけ達成し、かつ達成度のばらつきが少ない（バランスが良い）モデルが得られることになる。
【００５４】
評価値補正部９は、評価対象集合生成部４が生成した評価対象集合のスコアscore（Ｘ）を算出し、このスコアscore（Ｘ）が高いほど高評価となるように、評価値統合部８が算出した統合評価値merged_eval（Ｘ）を補正する。図２０は、評価値補正部９の処理とデータとの関係を示す図である。図中のReferはデータの参照を意味し、Createはデータの生成を意味する。
【００５５】
評価値補正部９は、まず、評価対象集合データＤ１０と補正設定データＤ３を参照し、評価対象集合生成部４が生成した評価対象集合のスコアscore（Ｘ）を上記式（５）により算出する。次に、評価値補正部９は、統合評価値データＤ１４と補正設定データＤ３を参照し、上記式（６）および式（７）により、統合評価値merged_eval（Ｘ）をスコアscore（Ｘ）に応じて補正した補正済み評価値corrected_eval（Ｘ）を算出する。そして、評価値補正部９は、算出した補正済み評価値corrected_eval（Ｘ）を記録した補正済み評価値データＤ１５を生成する。このとき、補正済み評価値データＤ１５がすでに存在する場合は、そのデータを削除して新規に補正済み評価値データＤ１５を生成する。図２１は、補正済み評価値データＤ１５の一例を示す図である。図２１に例示する補正済み評価値データＤ１５は、算出した補正済み評価値corrected_eval（Ｘ）が０．７７６であったことを示している。
【００５６】
除外損失評価部１０は、除外モード時に、選択済み集合から１つの特徴を除外したときのコストcost（Ｘ）の低下と、モデルの性能の低下との比率を示す除外損失を、除外する特徴ごとに算出する。図２２は、除外損失評価部１０の処理とデータとの関係を示す図である。図中のReferはデータの参照を意味し、Createはデータの生成を意味する。
【００５７】
除外損失評価部１０は、モードデータＤ９、選択済み集合データＤ８、補正済み評価値データＤ１５およびコストデータＤ１１を参照し、除外モード時に除外損失を算出する。具体的には、除外損失評価部１０は、選択済み集合データＤ８に記録された選択済み集合  Ｘｓの補正済み評価値corrected_eval（Ｘｓ）およびコストcost（Ｘｓ）と、補正済み評価値データＤ１５に記録された評価対象集合Ｘの補正済み評価値corrected_eval（Ｘ）およびコストデータＤ１１に記録されたコストcost（Ｘ）とを用い、下記式（１３）により、除外損失を算出する。
【数１３】
2017167979.tif 000015
【００５８】
そして、除外損失評価部１０は、評価対象集合Ｘの補正済み評価値corrected_eval（Ｘ）、コストcost（Ｘ）および上記式（１３）で算出した除外損失を記録した最終評価データＤ１６を生成する。図２３は、最終評価データＤ１６の一例を示す図である。図２３に例示する最終評価データＤ１６は、算出した除外損失が０．００２１であったことを示している。なお、追加モード時においては、除外損失の値は使用されないため、除外損失として任意の値を記録した最終評価データＤ１６を生成すればよい。
【００５９】
暫定一位更新部１１は、モードデータＤ９、最終評価データＤ１６および暫定一位データＤ１７を参照し、追加モード時であれば暫定一位データＤ１７よりも最終評価データＤ１６の方に記録された補正済み評価値corrected_eval（Ｘ）の方が高い場合、除外モード時であれば暫定一位データＤ１７よりも最終評価データＤ１６に記録された除外損失の方が小さい場合に、暫定一位データＤ１７を更新する。
【００６０】
図２４は、暫定一位データＤ１７の一例を示す図である。図２４に示すように、暫定一位データＤ１７には、評価値が暫定的に一位の評価対象集合Ｘと、その評価対象集合Ｘの補正済み評価値corrected_eval（Ｘ）、コストcost（Ｘ）および除外損失が記録されている。なお、暫定一位データＤ１７が存在しない場合、暫定一位更新部１１は暫定一位データＤ１７を新規に生成し、そのときの評価対象集合Ｘと、最終評価データＤ１６に記録されている補正済み評価値corrected_eval（Ｘ）、コストcost（Ｘ）および除外損失を暫定一位データＤ１７に記録する。
【００６１】
選択済み集合更新部１２は、モードデータＤ９、選択済み集合データＤ８および特徴候補データＤ７を参照し、追加モード時であれば、まず、状態が「未評価」の特徴があるかどうかを確認する。そして、状態が「未評価」の特徴が存在しない場合、選択済み集合更新部１２は、暫定一位データＤ１７に記録された評価対象集合Ｘ、補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）で選択済み集合データＤ８を更新し、暫定一位データＤ１７を削除する。また、選択済み集合更新部１２は、特徴候補データＤ７の各特徴の状態を以下のように更新する。
Ｉ．選択済み集合データＤ８に含まれる特徴：状態を「選択済み」にする。
ＩＩ．状態が「除外」の特徴：そのままにする。
ＩＩＩ．その他の状態の特徴：状態を「未評価」にする。
【００６２】
さらに、選択済み集合更新部１２は、最良集合データＤ１８を参照し、更新後の選択済み集合データＤ８の補正済み評価値corrected_eval（Ｘ）が、最良集合データＤ１８に記録された補正済み評価値corrected_eval（Ｘ）よりも高ければ、選択済み集合データＤ８の内容で最良集合データＤ１８を更新する。
【００６３】
図２５は、最良集合データＤ１８の一例を示す図である。図２５に示すように、最良集合データＤ１８には、その時点で評価が最も高い部分集合である最良集合と、その最良集合の補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）が記録されている。なお、最良集合データＤ１８が存在しない場合、選択済み集合更新部１２は、最良集合データＤ１８を新規に生成し、選択済み集合データＤ８に記録されている内容を最良集合データＤ１８に記録する。
【００６４】
また、除外モード時であれば、選択済み集合更新部１２は、まず、選択済み集合Ｘｓの中に状態が「評価済み」でない特徴があるかどうかを確認する。そして、状態が「評価済み」でない特徴が存在しない場合、選択済み集合更新部１２は、選択済み集合データＤ８と暫定一位データＤ１７を参照し、選択済み集合データＤ８に存在し暫定一位データＤ１７に存在しない特徴を特定する。そして、その特徴について特徴候補データＤ７中の状態を「除外」にし、暫定一位データＤ１７を削除する。
【００６５】
その後、選択済み集合更新部１２は、追加モード時と同様に、選択済み集合データＤ８、最良集合データＤ１８の更新を行う。また、選択済み集合更新部１２は、追加モード時と同様に、上記のＩ．からＩＩＩ．に従って特徴候補データＤ７の各特徴の状態を更新する。
【００６６】
終了判定部１３は、モードデータＤ９、選択済み集合データＤ８および終了条件データＤ６を参照し、追加モード時であれば、選択済み集合Ｘｓに含まれる特徴の個数が終了条件データＤ６に記録された最大個数に達すると、出力部１４に対して最良集合データＤ１８に記録されたデータの出力を指示して、特徴選択装置１の処理を終了させる。
【００６７】
また、除外モード時であれば、終了判定部１３は、除外モードの実行回数をカウントしておき、カウントした除外モードの実行回数が終了条件データＤ６に記録された除外モード実行の最大回数に達すると、出力部１４に対して最良集合データＤ１８に記録されたデータの出力を指示して、特徴選択装置１の処理を終了させる。
【００６８】
出力部１４は、終了判定部１３からの指示に従って、最良集合データＤ１８に記録されたデータを出力する。出力部１４によるデータの出力は、例えば、表示装置による表示、外部記憶装置へのデータ格納、外部装置へのデータ送信のいずれかまたは組み合わせにより実施することができる。なお、最良集合データＤ１８に記録したデータ以外を出力する場合には、別途それらを保持しておくように処理を追加すればよい。
【００６９】
＜動作説明＞
次に、本実施例の特徴選択装置１の動作を説明する。本実施例の特徴選択装置１は、まず初めにユーザの入力に応じて各種初期設定を行った後、選択済み集合に特徴を追加する追加モードと、選択済み集合から特徴を除外する除外モードとを切り替えながら処理を行っていく。基本は追加モードで動作するが、上記式（４）で示した制約条件を満たすことができなくなった場合、除外モードに移行する。そして、選択済み集合から一定個数（本実施例では１つ）の特徴が除外されると、また追加モードの処理に移行する。以下、追加モード時の処理と除外モード時の処理とに分けて、それぞれの処理手順の一例をフローチャートに沿って説明する。
【００７０】
まず、追加モード時の処理手順を説明する。図２６−１および図２６−２は、追加モード時における特徴選択装置１の処理手順の一例を示すフローチャートである。追加モードは、選択済み集合に特徴を追加するループを繰り返す、本実施例の特徴選択装置１の基本となるモードである。
【００７１】
ステップＳ１０１：追加モードによる処理が開始されると、まず、評価対象集合生成部４が、モードデータＤ９を確認する。そして、モードデータＤ９が示す現在のモードが追加モードでれば、次のステップＳ１０２に進み、除外モードであれば、後述の除外モードの処理に移行する。
【００７２】
ステップＳ１０２：評価対象集合生成部４は、特徴候補データＤ７を参照し、状態が「未評価」の特徴があるかどうかを確認する。そして、「未評価」の特徴があれば（ステップＳ１０２：Ｙｅｓ）、次のステップＳ１０３に進み、「未評価」の特徴がなければ（ステップＳ１０２：Ｎｏ）、ステップＳ１１５に処理を移行する。
【００７３】
ステップＳ１０３：評価対象集合生成部４は、選択済み集合データＤ８と特徴候補データＤ７を参照し、特徴候補データＤ７に含まれる特徴の中で状態が「未評価」の特徴を選択済み集合に１つ追加した評価対象集合Ｘを生成する。そして、評価対象集合生成部４は、この評価対象集合Ｘに含まれる特徴を記録した評価対象集合データＤ１０を生成し、特徴候補データＤ７の中の追加した特徴の状態を「保留」に更新して、次のステップＳ１０４に進む。
【００７４】
ステップＳ１０４：コスト評価部５が、評価対象集合データＤ１０とコスト設定データＤ２を参照し、ステップＳ１０３で生成された評価対象集合Ｘのコストcost（Ｘ）を上記式（３）により算出して、次のステップＳ１０５に進む。
【００７５】
ステップＳ１０５：コスト評価部５は、コスト制約データＤ５を参照し、上記式（４）により、ステップＳ１０４で算出したコストcost（Ｘ）が制約条件を満たすか否かを判定する。そして、ステップＳ１０４で算出したコストcost（Ｘ）が制約条件を満たす場合（ステップＳ１０５：Ｙｅｓ）、コスト評価部５は、ステップＳ１０４で算出したコストcost（Ｘ）を記録したコストデータＤ１１を生成し、ステップＳ１０３で状態が「保留」とされた特徴の状態を「評価済み」に更新して、次のステップＳ１０６に進む。一方、ステップＳ１０４で算出したコストcost（Ｘ）が制約条件を満たさない場合は（ステップＳ１０５：Ｎｏ）、ステップＳ１０３で状態が「保留」とされた特徴の状態を「違反」に更新して、ステップＳ１１３に処理を移行する。
【００７６】
ステップＳ１０６：モデル生成部６が、評価対象集合データＤ１０と学習データセット（データセットＤ１）を参照し、学習データセットに含まれる各サンプルの評価対象集合データＤ１０に含まれる特徴のみを使用した機械学習によりモデルを生成する。そして、モデル生成部６は、生成したモデルのルールやパラメータなどを表すモデルデータＤ１２を生成し、次のステップＳ１０７に進む。
【００７７】
ステップＳ１０７：モデル評価部７が、評価対象集合データＤ１０、モデルデータＤ１２および評価用データセット（データセットＤ１）を参照し、評価用データセットに含まれる各サンプルの評価対象集合データＤ１０に含まれる特徴のみを使用したモデル評価を実施して、上記式（１）および式（２）により、ステップＳ１０６で生成されたモデルの評価値（再現率・適合率）を算出する。そして、モデル評価部７は、算出した再現率・適合率を記録した評価値データＤ１３を生成し、次のステップＳ１０８に進む。
【００７８】
ステップＳ１０８：評価値統合部８が、評価値データＤ１３と目標値データＤ４を参照し、上記式（８）および式（９）により、再現率達成度および適合率達成度を算出する。また、評価値統合部８は、上記式（１０）および式（１１）により、変換後再現率達成度および変換後適合率達成度を算出し、上記式（１２）により、統合評価値merged_eval（Ｘ）を算出する。そして、評価値統合部８は、算出した統合評価値merged_eval（Ｘ）を記録した統合評価値データＤ１４を生成し、次のステップＳ１０９に進む。
【００７９】
ステップＳ１０９：評価値補正部９が、評価対象集合データＤ１０と補正設定データＤ３を参照し、上記式（５）により、ステップＳ１０３で生成された評価対象集合Ｘのスコアscore（Ｘ）を算出する。また、評価値補正部９は、統合評価値データＤ１４と補正設定データＤ３を参照し、統合評価値merged_eval（Ｘ）とα（score（Ｘ））をもとに、上記式（６）および式（７）により、補正済み評価値corrected_eval（Ｘ）を算出する。そして、評価値補正部９は、算出した補正済み評価値corrected_eval（Ｘ）を記録した補正済み評価値データＤ１５を生成し、次のステップＳ１１０に進む。
【００８０】
ステップＳ１１０：除外損失評価部１０が、補正済み評価値データＤ１５とコストデータＤ１１を参照し、補正済み評価値corrected_eval（Ｘ）、コストcost（Ｘ）、除外損失を記録した最終評価データＤ１６を生成し、次のステップＳ１１１に進む。なお、追加モードでは、除外損失には任意の値が記録される。
【００８１】
ステップＳ１１１：暫定一位更新部１１が、最終評価データＤ１６と暫定一位データＤ１７を参照し、最終評価データＤ１６の方が暫定一位データＤ１７よりも、補正済み評価値corrected_eval（Ｘ）が高くなっているか否かを判定する。そして、最終評価データＤ１６に記録された補正済み評価値corrected_eval（Ｘ）が暫定一位データＤ１７よりも高ければ（ステップＳ１１１：Ｙｅｓ）、次のステップＳ１１２に進み、最終評価データＤ１６に記録された補正済み評価値corrected_eval（Ｘ）が暫定一位データＤ１７よりも低ければ（ステップＳ１１１：Ｎｏ）、ステップＳ１０１に戻って以降の処理を繰り返す。
【００８２】
ステップＳ１１２：暫定一位更新部１１は、評価対象集合データＤ１０に記録された評価対象集合Ｘと、最終評価データＤ１６に記録された補正済み評価値corrected_eval（Ｘ）、コストcost（Ｘ）および除外損失とにより、暫定一位データＤ１７を更新する。そして、ステップＳ１０１に戻って以降の処理を繰り返す。
【００８３】
ステップＳ１１３：コスト評価部５は、ステップＳ１０４で算出したコストcost（Ｘ）が制約条件を満たさない場合（ステップＳ１０５：Ｎｏ）、制約条件を満たす評価対象集合をもう生成できないかどうかを確認する。すなわち、コスト評価部５は、特徴候補データＤ７に含まれる特徴の状態が全て「選択済み」、「違反」、「除外」のいずれかとなった場合は、制約条件を満たす評価対象集合を生成できないと判断し（ステップＳ１１３：Ｙｅｓ）、次のステップＳ１１４に進む。一方、制約条件を満たす評価対象集合を生成できる可能性があれば（ステップＳ１０５：Ｎｏ）、ステップＳ１０１に戻って以降の処理を繰り返す。
【００８４】
ステップＳ１１４：コスト評価部５は、制約条件を満たす評価対象集合を生成できないと判断した場合（ステップＳ１０５：Ｙｅｓ）、モードデータＤ９の現在のモードを追加モードから除外モードに更新し、ステップＳ１０１に戻って以降の処理を繰り返す。
【００８５】
ステップＳ１１５：ステップＳ１０２において特徴候補データＤ７に状態が「未評価」の特徴がないと判定された場合（ステップＳ１０２：Ｎｏ）、選択済み集合更新部１２が、暫定一位データＤ１７に記録された評価対象集合（Ｘ）、補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）で選択済み集合データＤ８を更新する。また、選択済み集合更新部１２は、暫定一位データＤ１７を削除するとともに、特徴候補データＤ７の各特徴の状態を上述したように更新し、次のステップＳ１１６に進む。
【００８６】
ステップＳ１１６：選択済み集合更新部１２は、最良集合データＤ１８を参照し、更新後の選択済み集合データＤ８の方が最良集合データＤ１８よりも、補正済み評価値corrected_eval（Ｘ）が高くなっているか否かを判定する。そして、更新後の選択済み集合データＤ８に記録された補正済み評価値corrected_eval（Ｘ）が最良集合データＤ１８よりも高ければ（ステップＳ１１６：Ｙｅｓ）、次のステップＳ１１７に進み、更新後の選択済み集合データＤ８に記録された補正済み評価値corrected_eval（Ｘ）が最良集合データＤ１８以下であれば（ステップＳ１１６：Ｎｏ）、ステップＳ１１８に処理を移行する。
【００８７】
ステップＳ１１７：選択済み集合更新部１２は、更新後の選択済み集合データＤ８に記録されている選択済み特徴、補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）で最良集合データＤ１８を更新し、次のステップＳ１１８に進む。
【００８８】
ステップＳ１１８：終了判定部１３が、選択済み集合データＤ８と終了条件データＤ６を参照し、選択済み集合Ｘｓに含まれる特徴の個数が終了条件データＤ６に記録された最大個数に達したか、つまり終了条件を満たすか否かを判定する。そして、終了条件を満たす場合は（ステップＳ１１８：Ｙｅｓ）、次のステップＳ１１９に進み、終了条件を満たさない場合は（ステップＳ１１８：Ｎｏ）、ステップＳ１０１に戻って以降の処理を繰り返す。
【００８９】
ステップＳ１１９：出力部１４が、最良集合データＤ１８に記録されたデータを出力し、本実施例の特徴選択装置１による一連の処理が終了する。
【００９０】
次に、除外モード時の処理手順を説明する。図２７−１および図２７−２は、除外モード時における特徴選択装置１の処理手順の一例を示すフローチャートである。除外モードは、追加モードにおいてどの特徴量を追加してもコストの制約条件が満たせなくなった場合に実行されるモードである。除外モードでは、選択済み特徴集合から特徴を１つ除外する。本実施例では、特徴量を１つ除外した時点で追加モードに戻ることとするが、複数除外するまで除外モードを継続してもよい。以下では、追加モードとは挙動が異なる部分を中心に説明する。
【００９１】
ステップＳ２０１：除外モードによる処理が開始されると、まず、評価対象集合生成部４が、モードデータＤ９を確認する。そして、モードデータＤ９が示す現在のモードが除外モードであれば、次のステップＳ２０２に進み、追加モードであれば、上述した追加モードの処理に移行する。
【００９２】
ステップＳ２０２：評価対象集合生成部４は、特徴候補データＤ７を参照し、状態が「選択済み」の特徴があるかどうかを確認する。そして、「選択済み」の特徴があれば（ステップＳ２０２：Ｙｅｓ）、次のステップＳ２０３に進み、「選択済み」の特徴がなければ（ステップＳ２０２：Ｎｏ）、ステップＳ２１１に処理を移行する。
【００９３】
ステップＳ２０３：評価対象集合生成部４は、特徴候補データＤ７に含まれる特徴の中で状態が「選択済み」の特徴を１つ選択し、その特徴の状態を「保留」に更新する。そして、状態が「選択済み」もしくは「評価済み」の特徴のみからなる集合を生成する。この処理は、選択済み集合から状態を「保留」にした特徴を除外して評価対象集合Ｘを生成することに該当する。そして、評価対象集合生成部４は、これを記録した評価対象集合データＤ１０を生成する。その後、コスト評価部５が、特徴候補データＤ７に含まれる特徴の中で、状態が「保留」のものを「評価済み」に更新する。そして、次のステップＳ２０４に進む。
【００９４】
ステップＳ２０４：モデル生成部６が、追加モード時のステップＳ１０６と同様にモデルを生成し、生成したモデルのルールやパラメータなどを表すモデルデータＤ１２を生成して、次のステップ２０５に進む。
【００９５】
ステップＳ２０５：モデル評価部７が、追加モード時のステップＳ１０７と同様にモデルの評価値（再現率・適合率）を算出し、算出した再現率・適合率を記録した評価値データＤ１３を生成して、次のステップＳ２０６に進む。
【００９６】
ステップＳ２０６：評価値統合部８が、追加モード時のステップＳ１０８と同様に統合評価値merged_eval（Ｘ）を算出し、算出した統合評価値merged_eval（Ｘ）を記録した統合評価値データＤ１４を生成して、次のステップＳ２０７に進む。
【００９７】
ステップＳ２０７：評価値補正部９が、追加モード時のステップＳ１０９と同様に補正済み評価値corrected_eval（Ｘ）を算出し、算出した補正済み評価値corrected_eval（Ｘ）を記録した補正済み評価値データＤ１５を生成して、次のステップＳ２０８に進む。
【００９８】
ステップＳ２０８：除外損失評価部１０が、選択済み集合データＤ８、補正済み評価値データＤ１５およびコストデータＤ１１を参照し、選択済み集合データＤ８に記録された選択済み集合  Ｘｓの補正済み評価値corrected_eval（Ｘｓ）およびコストcost（Ｘｓ）と、補正済み評価値データＤ１５に記録された評価対象集合Ｘの補正済み評価値corrected_eval（Ｘ）およびコストデータＤ１１に記録されたコストcost（Ｘ）とを用い、上記式（１３）により、除外損失を算出する。そして、除外損失評価部１０は、評価対象集合Ｘの補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）と、算出した除外損失とを記録した最終評価データＤ１６を生成し、次のステップＳ２０９に進む。
【００９９】
ステップＳ２０９：暫定一位更新部１１が、最終評価データＤ１６と暫定一位データＤ１７を参照し、最終評価データＤ１６の方が暫定一位データＤ１７よりも除外損失が小さいか否かを判定する。そして、最終評価データＤ１６に記録された除外損失が暫定一位データＤ１７よりも小さければ（ステップＳ２０９：Ｙｅｓ）、次のステップＳ２１０に進み、最終評価データＤ１６に記録された除外損失が暫定一位データＤ１７よりも大きければ（ステップＳ２０９：Ｎｏ）、ステップＳ２０１に戻って以降の処理を繰り返す。
【０１００】
ステップＳ２１０：暫定一位更新部１１は、評価対象集合データＤ１０に記録された評価対象集合Ｘと、最終評価データＤ１６に記録された補正済み評価値corrected_eval（Ｘ）、コストcost（Ｘ）および除外損失とにより、暫定一位データＤ１７を更新する。そして、ステップＳ２０１に戻って以降の処理を繰り返す。
【０１０１】
ステップＳ２１１：ステップＳ２０２において特徴候補データＤ７に状態が「選択済み」の特徴がないと判定された場合（ステップＳ２０２：Ｎｏ）、選択済み集合更新部１２が、選択済み集合データＤ８と暫定一位データＤ１７を参照し、選択済み集合データＤ８に存在し暫定一位データＤ１７に存在しない特徴を特定して、特徴候補データＤ７の中のその特徴の状態を「除外」にし、暫定一位データＤ１７を削除する。そして、選択済み集合更新部１２は、追加モード時のステップＳ１１５と同様に選択済み集合データＤ８を更新し、特徴候補データＤ７の各状態を更新して、次のステップＳ２１２に進む。
【０１０２】
ステップＳ２１２：選択済み集合更新部１２は、追加モード時のステップＳ１１６と同様に、更新後の選択済み集合データＤ８の方が最良集合データＤ１８よりも、補正済み評価値corrected_eval（Ｘ）が高くなっているか否かを判定する。そして、更新後の選択済み集合データＤ８に記録された補正済み評価値corrected_eval（Ｘ）が最良集合データＤ１８よりも高ければ（ステップＳ２１２：Ｙｅｓ）、次のステップＳ２１３に進み、更新後の選択済み集合データＤ８に記録された補正済み評価値corrected_eval（Ｘ）が最良集合データＤ１８以下であれば（ステップＳ２１２：Ｎｏ）、ステップＳ２１４に処理を移行する。
【０１０３】
ステップＳ２１３：選択済み集合更新部１２は、追加モード時のステップＳ１１７と同様に、更新後の選択済み集合データＤ８に記録されている選択済み特徴、補正済み評価値corrected_eval（Ｘ）およびコストcost（Ｘ）で最良集合データＤ１８を更新し、次のステップＳ２１４に進む。
【０１０４】
ステップＳ２１４：終了判定部１３が、終了条件データＤ６を参照し、除外モードの実行回数が終了条件データＤ６に記録された最大回数に達したか、つまり終了条件を満たすか否かを判定する。そして、終了条件を満たさない場合は（ステップＳ２１４：Ｎｏ）、次のステップＳ２１５に進み、終了条件を満たす場合は（ステップＳ２１４：Ｙｅｓ）、ステップＳ２１６に処理を移行する。
【０１０５】
ステップＳ２１５：終了判定部１３は、モードデータＤ９の現在のモードを除外モードから追加モードに更新し、ステップＳ２０１に戻って以降の処理を繰り返す。
【０１０６】
ステップＳ２１６：出力部１４が、最良集合データＤ１８に記録されたデータを出力し、本実施例の特徴選択装置１による一連の処理が終了する。
【０１０７】
＜ハードウェア構成＞
以上説明した特徴選択装置１の機能は、例えば、一般的なコンピュータのハードウェアとソフトウェア（プログラム）との協働により実現することができる。この場合の特徴選択装置１のハードウェア構成の一例を図２８に示す。
【０１０８】
本実施例の特徴選択装置１は、例えば図２８に示すように、情報処理を行うＣＰＵ（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）などの専用のハードウェアを用いて実現することもできる。
【０１１２】
なお、本実施例では、特徴選択装置１が単体の装置として構成されていることを想定するが、特徴選択装置１は単体の装置として構成されている必要はなく、物理的に分離されてネットワークを介して接続された複数の装置により構成されていてもよい。また、特徴選択装置１は、クラウドシステム上で動作する仮想マシンとして実現されていてもよい。
【０１１３】
＜実施形態の効果＞
以上、具体的な実施例を挙げながら詳細に説明したように、本実施形態の特徴選択装置は、モデルの性能に関する複数の評価指標の各々について、設定された目標値に対する評価値の達成度を算出する。そして、評価指標ごとの達成度が高く、かつ、評価指標間における達成度のばらつきが少ないほど高評価となる統合評価値を算出し、統合評価値が高くなる部分集合を探索する。これにより、複数の評価指標とその目標値を考慮して、よりユーザが所望する要件を満たすモデルを生成できるようになる。
【０１１４】
また、本実施形態の特徴選択装置は、評価対象集合のコストが上限値以下であるという制約条件を満たしているか否かを判定する。そして、制約条件を満たす評価対象集合が生成できなくなった場合は、選択済み集合から特徴を除外する除外モードに移行する。このとき、特徴を除外したときのコストの低下と補正済み評価値の低下との比率を示す除外損失を算出する。この除外損失を用いることにより、モデルの性能を大きく低下させることなくコストを大幅に低下させることができるように、選択済み集合から除外する特徴を選択することができる。
【０１１５】
このように、本実施形態ではコストの制約条件をチェックし、制約条件を満たさない場合はなるべくモデルの性能を下げずにコストを低下させるように、選択済み集合を更新することができる。これにより、例えば特徴抽出に要する処理時間の制約など、モデルの性能以外の要素を考慮した特徴選択が可能となる。
【０１１６】
また、本実施形態の特徴選択装置は、評価対象集合に対して定義されるスコアに応じて統合評価値を補正し、補正済み評価値を算出する。そして、補正済み評価値が高くなる部分集合を探索する。これにより、例えば予測対象時刻に対して早い時期に予測を行える特徴集合のほうが高評価となるように設定できるなど、モデルの性能以外の要素を考慮した特徴選択が可能となる。
【０１１７】
＜補足説明＞
なお、上述した実施例では、機器の故障が発生するか否かを予測する予測モデルを生成することを想定し、モデルの性能に関する評価指標として再現率と適合率を用いる例を説明した。しかし、生成するモデルの例としては、データを複数のクラスに分類するモデル（識別モデル）もある。識別モデルを生成する場合、モデルに関する評価指標として用いられる再現率は、複数のクラスのうち、評価対象のクラスを設定し、評価対象のクラスごとに、そのクラスに分類されるべきデータが漏れることなく分類されているかを示す。適合率は、評価対象のクラスに分類されたデータのうち正しく分類されているデータの割合を示す。なお、評価対象は、一つのクラスとしてもよい。もしくは、複数のクラスを一度に評価対象としてもよい。また、モデルの評価指標は、これら再現率と適合率に限らず、様々な評価指標を用いることができる。また、使用する評価指標の数も２つに限らず、３つ以上であってもよい。
【０１１８】
例えば、１つのモデルで複数の出力を得る場合、それぞれの出力に対して要求される正解率が異なる場合がある。具体的には、例えば顔画像から性別や年齢を推定するモデルを考えた場合、性別はある程度厳密に、年齢はラフに推定することが要求される場合がある。このような場合は、それぞれの出力の正解率を複数の評価指標として扱うこともできる。すなわち、それぞれの出力の正解率に対して目標値を設定して、目標値に対する達成度に基づいて統合評価指標を算出してもよい。
【０１１９】
また、上述した実施例では、評価対象集合のコストが、その評価対象集合に含まれる特徴を抽出する処理時間に基づいて定義されていた。しかし、評価対象集合に含まれる特徴を抽出する処理時間だけでなく、モデル適用の処理時間も大きく変動するようであれば、モデル適用の処理時間も考慮して評価対象集合のコストを定義してもよい。
【０１２０】
また、上述した実施例では、評価対象集合のコストが上限値以下であるという制約条件を課していたが、この制約条件を無効化することもできる。この制約条件を無効化するには、例えば、初期設定時に設定されるコストの上限値max_costを非常に大きな値とすればよい。制約条件を無効化した場合は、追加モードから除外モードへの移行は生じない。
【０１２１】
また、上述した実施例では、評価対象集合のスコアに応じて統合評価値を補正する構成としていたが、このような補正を行わない構成とすることもできる。例えば、補正設定データにおける全特徴のスコアを同じ値にすれば、評価対象集合のスコアに応じた統合評価値の補正は無効化される。
【０１２２】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２３】
１  特徴選択装置
２  入力受付部
３  初期設定部
４  評価対象集合生成部
５  コスト評価部
６  モデル生成部
７  モデル評価部
８  評価値統合部
９  評価値補正部
１０  除外損失評価部
１１  暫定一位更新部
１２  選択済み集合更新部
１３  終了判定部
１４  出力部
【図１】
2017167979.tif 000016
【図２】
2017167979.tif 000017
【図３】
2017167979.tif 000018
【図４】
2017167979.tif 000019
【図５】
2017167979.tif 000020
【図６】
2017167979.tif 000021
【図７】
2017167979.tif 000022
【図８】
2017167979.tif 000023
【図９】
2017167979.tif 000024
【図１０】
2017167979.tif 000025
【図１１】
2017167979.tif 000026
【図１２】
2017167979.tif 000027
【図１３】
2017167979.tif 000028
【図１４】
2017167979.tif 000029
【図１５】
2017167979.tif 000030
【図１６】
2017167979.tif 000031
【図１７】
2017167979.tif 000032
【図１８】
2017167979.tif 000033
【図１９】
2017167979.tif 000034
【図２０】
2017167979.tif 000035
【図２１】
2017167979.tif 000036
【図２２】
2017167979.tif 000037
【図２３】
2017167979.tif 000038
【図２４】
2017167979.tif 000039
【図２５】
2017167979.tif 000040
【図２６−１】
2017167979.tif 000041
【図２６−２】
2017167979.tif 000042
【図２７−１】
2017167979.tif 000043
【図２７−２】
2017167979.tif 000044
【図２８】
2017167979.tif 000045