(57)【要約】【課題】マルウェア判定に用いる特徴の選択に要する試行回数を低減し、かつ、試行の終了時期を予想しやすくする。【解決手段】システムは、ファイル内に含まれる情報から抽出した特徴の候補群に対し、実験計画法で用いられる直交表により特徴の試行の組み合わせを作成する。そして、システムは、検証用のファイルの分類結果と、推論データのファイルそれぞれがマルウェアか否かの正解情報とを照合することにより、当該特徴の組み合わせによる分類（判定）精度を算出する。その後、システムは、算出に用いた特徴を説明変数とし、当該特徴を用いた場合の分類精度を目的変数とした回帰分析により候補それぞれの寄与度の大きさ計算する。そして、システムはその寄与度の大きさにより特徴を選択し、その選択結果を出力する。【選択図】図１
2016031629.tif 000002
【特許請求の範囲】
【請求項１】
ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを判定するときに用いる情報を特徴として選択する特徴選択装置であって、
特徴の候補と、マルウェアのファイルおよびマルウェア以外のファイルからなる検証用データとの入力を受け付ける入力部と、
前記特徴の候補の数に応じた直交表を作成する直交表作成部と、
前記直交表を参照して特徴の組み合わせを決定する組み合わせ決定部と、
前記特徴の組み合わせによる前記検証用データのファイルの分類結果と、前記検証用データのファイルそれぞれがマルウェアか否かの情報との照合結果を用いて、前記特徴の組み合わせそれぞれによる前記検証用データの分類精度を算出する精度算出部と、
前記分類精度を目的変数とし、前記特徴を説明変数とした回帰分析を行い、前記回帰分析により得られた前記特徴それぞれの寄与度の大きさに応じて、前記特徴を選択する分析部とを備えることを特徴とする特徴選択装置。
【請求項２】
前記決定された特徴の組み合わせそれぞれについて、前記検証用データから抽出された教師データを用いて機械学習を行い、前記機械学習の結果を用いて、前記検証用データから抽出された教師データ以外のデータである推論データのファイルそれぞれがマルウェアか否かの分類を行う分類部をさらに備えることを特徴とする請求項１に記載の特徴選択装置。
【請求項３】
前記特徴選択装置は、さらに、
前記検証用データを参照して、前記特徴の候補のうち、前記検証用データにおいて組で出現する特徴群があったとき、当該特徴群の中から選択したいずれかの１つの特徴以外を冗長特徴として削除する冗長特徴削減部を備え、
前記直交表作成部は、
前記冗長特徴が削除された特徴の候補の数に応じた直交表を作成することを特徴とする請求項１または請求項２に記載の特徴選択装置。
【請求項４】
前記入力部は、
前記特徴の候補として、前記特徴の属する属性の候補の入力を受け付け、
前記組み合わせ決定部は、
前記直交表を参照して、前記属性の試行の組み合わせを決定し、
前記特徴選択装置は、さらに、
前記決定された組み合わせにおける各属性に対応する特徴を抽出する特徴抽出部を備えることを特徴とする請求項１ないし請求項３のいずれか１項に記載の特徴選択装置。
【請求項５】
前記検証用データに含まれる情報群を、前記特徴の候補として抽出する候補抽出部をさらに備えることを特徴とする請求項１ないし請求項４のいずれか１項に記載の特徴選択装置。
【請求項６】
ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを判定するときに用いる情報を特徴として選択する特徴選択装置を有する特徴選択システムであって、
前記特徴選択装置は、
特徴の候補と、マルウェアのファイルおよびマルウェア以外のファイルからなる検証用データとの入力を受け付ける入力部と、
前記特徴の候補の数に応じた直交表を作成する直交表作成部と、
前記直交表を参照して特徴の組み合わせを決定する組み合わせ決定部と、
分類装置から、前記特徴の組み合わせによる前記検証用データのファイルの分類結果と、前記検証用データのファイルそれぞれがマルウェアか否かを示す情報との照合結果を用いて、前記特徴の組み合わせそれぞれによる前記検証用データの分類精度を算出する精度算出部と、
前記分類精度を目的変数とし、前記特徴を説明変数とした回帰分析を行い、前記回帰分析により得られた前記特徴それぞれの寄与度の大きさに応じて、前記特徴を選択する分析部とを備え、
前記分類装置は、
前記特徴選択装置により決定された特徴の組み合わせそれぞれについて、前記検証用データから抽出された教師データを用いて機械学習を行い、前記機械学習の結果を用いて、前記検証用データから抽出された教師データ以外のデータである推論データのファイルそれぞれがマルウェアか否かの分類を行うことを特徴とする特徴選択システム。
【請求項７】
ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを判定するときに用いる情報を特徴として選択する特徴選択装置が、
特徴の候補と、マルウェアのファイルおよびマルウェア以外のファイルからなる検証用データとの入力を受け付けるステップと、
前記特徴の候補の数に応じた直交表を作成するステップと、
前記直交表を参照して特徴の組み合わせを決定するステップと、
分類装置から、前記特徴の組み合わせによる前記検証用データのファイルの分類結果と、前記検証用データのファイルそれぞれがマルウェアか否かの情報との照合結果を用いて、前記特徴の組み合わせそれぞれによる前記検証用データの分類精度を算出するステップと、
前記分類精度を目的変数とし、前記特徴を説明変数とした回帰分析を行い、前記回帰分析により得られた前記特徴それぞれの寄与度の大きさに応じて、前記特徴を選択するステップとを含み、
前記分類装置が、
前記特徴選択装置により決定された特徴の組み合わせそれぞれについて、前記検証用データから抽出された教師データを用いて機械学習を行い、前記機械学習の結果を用いて、前記検証用データから抽出された教師データ以外のデータである推論データのファイルそれぞれがマルウェアか否かの分類を行うステップを含んだことを特徴とする特徴選択方法。
【請求項８】
ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを判定するときに用いる情報を特徴として選択するための特徴選択プログラムであって、
特徴の候補と、マルウェアのファイルおよびマルウェア以外のファイルからなる検証用データとの入力を受け付けるステップと、
前記特徴の候補の数に応じた直交表を作成するステップと、
前記直交表を参照して特徴の組み合わせを決定する組み合わせステップと、
前記特徴の組み合わせによる前記検証用データのファイルの分類結果と、前記検証用データのファイルそれぞれがマルウェアか否かの情報との照合結果を用いて、前記特徴の組み合わせそれぞれによる前記検証用データの分類精度を算出するステップと、
前記分類精度を目的変数とし、前記特徴を説明変数とした回帰分析を行い、前記回帰分析により得られた前記特徴それぞれの寄与度の大きさに応じて、前記特徴を選択するステップとをコンピュータに実行させることを特徴とする特徴選択プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特徴選択装置、特徴選択システム、特徴選択方法、および、特徴選択プログラムに関する。
【背景技術】
【０００２】
従来、マルウェア判定において、ファイルのバイナリ情報に含まれる情報から特徴を抽出し、特徴ベクトルを作成することで、マルウェアか否かを判定する技術がある。
【０００３】
例えば、従来技術において、マルウェアの実行ファイル中に含まれる可読文字列をあらかじめ機械学習し、マルウェアでよく用いられる語を抽出する。そして、その抽出した語が検査ファイル中にどの程度含まれるかを基準にマルウェアらしさを判定する。この例で、マルウェア中の単語名とその出現数が特徴で、それら特徴を集めたものが特徴ベクトルとなる。集めた特徴の数（この例では単語名の数）は特徴ベクトル次元と呼ばれる。
【０００４】
ここで、特徴ベクトル次元が大きいほど、判定精度がよくなるというわけではなく、逆に悪くなる場合がある（非特許文献１，２参照）。そのため、特徴ベクトル次元を削減する方法が提案されている。特徴ベクトル次元を削減する方法として特徴選択がある。この特徴選択は安定した判定精度向上が行え、人間が理解しやすいという利点がある。特徴選択の方法には、ラッパー法、フィルター法、埋め込み法等があるが、この中でラッパー法は最も高い判定精度の特徴選択が行え、様々な分類器に適用できるという長所がある。
【０００５】
しかし、ラッパー法は、すべての特徴の組み合わせを用いた試行（総当たり法）を用いるので計算量が多い。そこで、組み合わせに用いる特徴の数を１つずつ増やしながら、判定精度が最大となる特徴の組み合わせを探索する変数増加法や、用いる特徴の数を１つずつ減らしながら、判定精度が最大となる特徴の組み合わせを探索する変数減数法（非特許文献３参照）が提案されている。また、遺伝子アルゴリズムを用いた探索法（非特許文献４参照）も提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−０２７７１０号公報
【非特許文献】
【０００７】
【非特許文献１】坂野  鋭他、「怪奇！！次元の呪い---識別問題，パターン認識，データマイニングの初心者のために（前編）」、情報処理、vol.43、no.5、pp.562-567、2002
【非特許文献２】坂野  鋭他、「怪奇！！次元の呪い---識別問題，パターン認識，データマイニングの初心者のために（後編）」、情報処理、vol.43、no.6、pp.658-663、2002
【非特許文献３】元田  浩他、「機械学習とデータマイニング」、人工知能学会誌、Vol.12、No.4、ｐ.505、1997
【非特許文献４】浜本  義彦他、「遺伝的アルゴリズムを用いた特徴選択法」、電子情報通信学会論文誌A、Vol.J78-A、No.10、pp.1385-1389、1995
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、前記した変数増加法や変数減数法（非特許文献２参照）は、総当たり法よりも試行回数を低減できるが、特徴の数がｐ個であった場合に、最小２ｐ−１回、最大ｐ（ｐ＋１）／２回の試行が必要である。また、遺伝子アルゴリズムを用いた探索方法は、経験上、選択対象の特徴の個数が非常に多い場合は変数増加法等より試行回数が少なくて済むと言われているが、終了時期を予測するのは難しい。そこで、本発明は前記した問題を解決し、マルウェア判定に用いる特徴の探索に要する試行回数を低減し、かつ、試行の終了時期を予想しやすくすることを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、本発明は、ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを判定するときに用いる情報を特徴として選択する特徴選択装置であって、特徴の候補と、マルウェアのファイルおよびマルウェア以外のファイルからなる検証用データとの入力を受け付ける入力部と、前記特徴の候補の数に応じた直交表を作成する直交表作成部と、前記直交表を参照して特徴の組み合わせを決定する組み合わせ決定部と、前記特徴の組み合わせによる前記検証用データのファイルの分類結果と、前記検証用データのファイルそれぞれがマルウェアか否かの情報との照合結果を用いて、前記特徴の組み合わせそれぞれによる前記検証用データの分類精度を算出する精度算出部と、前記分類精度を目的変数とし、前記特徴を説明変数とした回帰分析を行い、前記回帰分析により得られた前記特徴それぞれの寄与度の大きさに応じて、前記特徴を選択する分析部とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、マルウェア判定に用いる特徴の探索に要する試行回数を低減し、かつ、試行の終了時期を予想しやすくすることできる。
【図面の簡単な説明】
【００１１】
【図１】図１は、第１の実施形態のシステムの構成を示す図である。
【図２】図２は、第１の実施形態のシステムの処理手順を示すフローチャートである。
【図３】図３は、第２の実施形態のシステムの構成を示す図である。
【図４】図４は、第２の実施形態のシステムの処理手順を示すフローチャートである。
【図５】図５は、特徴組データベースの記録状況の例を示す図である。
【図６】図６は、冗長特徴削除部の処理手順を示すフローチャートである。
【図７】図７は、その他の実施形態のシステムの構成を示す図である。
【図８】図８は、特徴選択プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本発明を実施するための形態（実施形態）について第１の実施形態および第２の実施形態に分けて説明する。なお、本発明は各実施形態に限定されない。また、各実施形態は適宜組み合わせ可能である。
【００１３】
（概要）
各実施形態の特徴選択システム（システム）の概要を説明する。各実施形態のシステムは、ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを判定するときに用いられる特徴となる情報（特徴）を選択する。ここでの特徴選択は、ラッパー法を用いるものとする。ここで、システムの特徴選択装置は、特徴選択に要する試行回数を低減するため、実験計画法を用いる。この実験計画法は、統計的品質管理等において、品質測定の試行回数を低減するために頻繁に用いられる方法である。
【００１４】
実験計画法では、品質に影響を与える制御可能な操作（例えば、工程Ａを実施する／しない、ある原材料の投入量を５gにする／１０ｇにする等）のことを因子と呼び、その因子と品質測定値（測定値）に対して統計的分析を行う。統計的分析には重回帰分析がよく用いられる。これは、測定値と因子の関係を以下の式（１）に示す線形式で近似し、その係数α，β[1]，…，β[p]を求めることで、因子が測定値に与える影響を見積もる方法である。この線形式の事を回帰モデルとも呼ぶ。
【００１５】
【数１】
2016031629.tif 000003
【００１６】
式（１）におけるｙは測定値で、目的変数ともいう。ｘｋは説明変数と呼ばれ、因子ｋがあり／無しのような２操作の場合（２水準系）、「あり」のときｘｋ＝１、「無し」のときｘｋ＝０として処理する。例えば、４つの因子、Ａ、Ｂ、Ｃ、Ｄについて、ＡとＣがある場合、測定結果ｙに対する説明変数は｛ｘＡｘＢｘＣｘＤ｝＝｛１０１０｝となる。係数β［ｋ］が正に大きいほど、それに対応する因子ｋは測定値に正の影響を強く与え、逆に負に大きい場合は負の影響を強く与え、０に近い場合はほとんど影響を与えないと言える。このように分析で得られた係数の大小により、各因子の影響度を把握できる。そこで、各実施形態のシステムは、測定値をマルウェアか否かの分類精度のよさとし、因子をファイルに含まれる様々な情報（特徴）とし、重回帰分析で得られた係数の大きさに基づき、ファイルのマルウェアらしさを判定するときに用いる特徴を選択する。
【００１７】
重回帰分析における係数の算出には、実際の測定値と、その測定をした際の説明変数を回帰モデルに代入して得られた値である予測値との差（残差）をとり、その差の二乗和を最小にする方法（残差の最小二乗法）が用いられる。最小二乗法を用いる上で、説明変数がｐ個あり、それらが二水準系（各因子の操作がある／無し等の２種類のみのとき）であるとき、最低何件の測定データが必要で、そのデータを得るための因子の組み合わせは何が適切なのかは実験計画法でよく検討されている。
【００１８】
例えば、ｐ≦２ｑ−１となるような最小の整数ｑを選ぶと、２ｑ件の測定データが必要で、その測定データはＬｘ直交表（ここでのｘは「２ｑ」）に基づいて因子を組み合わせればよいことがわかっている。例えば、因子が５個の場合、５≦２ｑ−１を満たす最小のｑは３なので、最低２３＝８件の測定データ（８回の試行）が必要で、その因子の組み合わせはＬ８直交表を用いて決定すればよい。なお、この直交表はアダマール行列を用いて算出され、詳細については後記する。
【００１９】
各実施形態のシステム（以下、適宜、システムと略す）は、マルウェアらしさの判定に用いるファイルの特徴の選択において、選択する特徴（または特徴の集まり）それぞれを１つの因子とみなし、特徴（または特徴の集まり）を含める／含めないの２操作を行う２水準系として、実験計画法を適用し、上記のような直交表を用いることで、より少ない試行回数での特徴の探索を行う。
【００２０】
なお、システムは、試行対象の特徴（または特徴の集まり）の組み合わせを決定すると、この決定した組み合わせを用いて検証用データに対し試行を行う。ここで用いる検証用データは、複数のファイルからなり、それぞれのファイルがマルウェアか否かの情報を含む。
【００２１】
システムは、まず、検証用データの一部を教師データとして決定した特徴の組み合わせを用いた機械学習を行う。例えば、システムは、教師データを用いてどのような特徴の組み合わせを持つファイルがマルウェアである度合いが高いかを学習する。そして、システムは、その機械学習の結果を用いて、検証用データの残りのデータ（推論データ）に対しマルウェアか否かの分類を行う。その後、システムは、この分類結果を、推論データの正解（マルウェアか否か）と突き合わせ、当該特徴による分類精度のよさを得る。これを試行対象の特徴すべてについて実行する。次に、システムは、試行対象の特徴の組み合わせにおける各特徴を因子、分類精度のよさを測定値とした回帰分析を行い、各因子の係数を求める。なお、機械学習における測定値は割合のように０〜１の間の値を取る場合が多いため、システムは、回帰モデルとして、以下の式（２）に示すロジスティック回帰モデルを用いる。
【００２２】
【数２】
2016031629.tif 000004
【００２３】
上記のように、システムは、特徴探索のための試行の組み合わせの決定において、実験計画法の直交表を用いるので、試行回数を低減することができる。また、上記のように実験計画法の直交表を用いることで試行回数が決まるので、試行の終了時期を予想しやすくなる。
【００２４】
（第１の実施形態）
次に、図１を用いて本発明の第１の実施形態のシステムを説明する。第１の実施形態のシステムは、特徴選択装置１０と分類装置２０とを備える。なお、各実施形態において、特徴選択装置１０と分類装置２０とは別個の装置として説明するが、１つの装置により実現してもよい。
【００２５】
特徴選択装置１０は、ファイル内に含まれる情報群から、当該ファイルのマルウェアらしさを精度よく判定（分類）できる特徴となる情報（特徴）を選択する。ここでは、特徴選択装置１０が、ファイルのＰＥ／ＣＯＦＦ（Portable  Executable／Common  Object  File  Format）ヘッダ情報に含まれるファイルの属性を特徴として選択する場合を例に説明する。
【００２６】
例えば、ＰＥ／ＣＯＦＦヘッダ情報は様々な属性（ファイル名、ファイルサイズ、Characteristics、Number  of  sections、Entry  point等）を持つが、特徴選択装置１０は、これらの属性のうち、より判定（分類）精度がよくなる属性を特徴として選択する。なお、これらの属性は、１つの属性で複数個の特徴を含んでいるものもある。例えば、Characteristics属性は、その属性が持つ値であるExecutable、32  bit  word  machine、Symbols  stripped等を含む。ここで、特徴選択装置１０が個々の特徴を選択するというより、特徴の集まり（つまり、属性に対応する値の集まり）をまとめて選択する場合を例に説明するが、個々の特徴を選択する場合でも同様に適用できる。ここでは、特徴選択装置１０に入力される特徴の候補群は、ファイル名、ファイルサイズ、Characteristics、Number  of  sections、Entry  pointの５個の属性である場合を例に説明する。
【００２７】
この特徴選択装置１０は、システムのユーザ等から特徴の候補群の入力を受け付けると、実験計画法の直交表（詳細は後記）に基づき、試行する特徴の組み合わせを決定する。そして、特徴選択装置１０は、この決定した特徴の組み合わせ（特徴ベクトル）を分類装置２０へ出力し、分類装置２０に対し、当該特徴ベクトルを用いた検証用データの分類を指示する。なお、この検証用データは、マルウェアのファイルおよびマルウェアではない（グッドウェア）のファイルと、それぞれのファイルがマルウェアか否かを示す情報とを含むデータである。そして、特徴選択装置１０は、分類装置２０から分類結果を受け取る。その後、特徴選択装置１０は、分類装置２０から受け取った特徴ベクトルと当該特徴ベクトルによる分類結果とを用いて回帰分析を行い、特徴ごとの係数の値を得る。そして、特徴選択装置１０は、得られた特徴の係数の大きさに応じて、特徴を選択する。
【００２８】
分類装置２０は、特徴選択装置１０から特徴ベクトルと検証用データとを受け取ると、特徴ベクトルと検証用データから抽出した教師データとを用いて、マルウェアか否かの分類の機械学習を行う。そして、分類装置２０は、機械学習の結果を用いて、検証用データのうち残りのデータ（推論データ）の分類を行い、分類結果を特徴選択装置１０へ出力する。なお、この分類装置２０による分類には、例えば、ロジスティック回帰を用いてもよいし、サポートベクターマシン、パーセプトロン、Passive-Aggressive、単純ベイズ、決定木等を用いてもよい。
【００２９】
（特徴選択装置）
次に、特徴選択装置１０を詳細に説明する。特徴選択装置１０は、直交表作成部１１と、組み合わせ決定部１２と、検証部１３と、特徴抽出部１４と、精度算出部１５と、分析部１６とを備える。
【００３０】
直交表作成部１１は、組み合わせ決定部１２からの指示に基づき、特徴の候補の組み合わせの数に応じた直交表を作成する。例えば、ファイル名、ファイルサイズ、Characteristics、Number  of  sections、Entry  pointの５個の属性を候補とした場合、因子（属性）の個数ｐ＝５であるので、以下の式（３）により２ｑ＝８となるので、Ｌ８直交表を作成する。作成した直交表は、組み合わせ決定部１２へ出力する。
【００３１】
【数３】
2016031629.tif 000005
【００３２】
このＬ８直交表は、アダマール行列を用いることで得ることができる。例えば、直交表作成部１１は、このＬ８直交表の作成にあたり、まず以下の式（４）に示すように、２次アダマール行列をｑ＝３個直積（クロネッカー積）することで８次アダマール行列を作成する。
【００３３】
【数４】
2016031629.tif 000006
【００３４】
そして、直交表作成部１１は、作成したアダマール行列に対し、前記した式（２）のαに相当する１列目を削除し、−１を０に置き換えて、式（５）に示すようなＬ８直交表を作成する。
【００３５】
【数５】
2016031629.tif 000007
【００３６】
組み合わせ決定部１２は、入力部（図示省略）経由で特徴の候補群の入力を受け付ける。例えば、特徴の候補群として、ファイル名（Ａ）、ファイルサイズ（Ｂ）、Characteristics（Ｃ）、Number  of  sections（Ｄ）、Entry  point（Ｅ）等の属性群の入力を受け付ける。そして、組み合わせ決定部１２は、直交表作成部１１に対し、この属性の数（例えば、５個）に応じた直交表（式（５）参照）の作成を指示する。その後、組み合わせ決定部１２は、直交表作成部１１により作成された直交表を受け取ると、この直交表を用いて属性の組み合わせを決定し、この決定した属性の組み合わせによる検証を検証部１３に対し指示する。
【００３７】
例えば、組み合わせ決定部１２が、式（５）に示すＬ８直交表を受け取った場合を考える。この場合、組み合わせ決定部１２は、まず式（５）に示すＬ８直交表の行を１つ選択し、この選択した行に基づいて、属性の組み合わせを決定する。例えば、組み合わせ決定部１２は、組み合わせ決定にあたり、Ｌ８直交表から選択した行の先頭の値から特徴の候補群である属性Ａ、Ｂ、Ｃ、Ｄ、Ｅの順に対応させていき、０に対応した場合はその属性は組み合わせに含めず、１に対応した場合は組み合わせに含める。具体例をあげると、組み合わせ決定部１２が、式（５）に示すＬ８直交表の２行目（０１０１０１０）を選択した場合、順に０→Ａ、１→Ｂ、０→Ｃ、１→Ｄ、０→Ｅというように対応させていくと、属性の組み合わせは｛ＢＤ｝になる。組み合わせ決定部１２は、このような処理を直行表に示されるすべての行について実施し、属性の組み合わせを決定する。
【００３８】
検証部１３は、組み合わせ決定部１２により決定された特徴の候補の組み合わせ（ここでは、属性の組み合わせ）それぞれについて、検証用データを用いた検証を行う。ここでの検証は分類装置２０による分類結果を用いた交差検証により行われる。交差検証の場合、検証部１３は、まず、検証用データを教師データと推論データとに分割する。次に、検証部１３は、分類装置２０に対し、決定された属性の組み合わせ（具体的には特徴抽出部１４により生成された特徴ベクトル）と教師データとを用いた機械学習を行わせる。その後、検証部１３は、分類装置２０に対し、機械学習の成果を用いて推論データに対する推論（分類）を行わせる。そして、検証部１３は、分類装置２０から推論データに対する分類結果を得る。この分類結果は、精度算出部１５へ出力する。
【００３９】
なお、検証部１３で行われる交差検証として、例えば、検証用データを２分割し、１回のみ検証を行うホールドアウト検証や、Ｎ個に等分割し、Ｎ回の検証を行うＮ−分割交差検証等があり、どの手法を用いてもよい。例えば、１０−分割交差検証は次のように行う。まず、検証部１３は、検証用データをランダムに１０個の均等の件数を含むグループに分割する。次に、検証部１３は、分割データ２〜１０を教師データ、分割データ１を推論データとして、分類装置２０に分類を行わせる。さらに、検証部１３は、分割データ１と３〜１０を教師データ、分割データ２を推論データとして分類装置２０に分類を行わせる。このように、検証部１３は、すべての分割データが１回は推論データとして使われるまで、分類装置２０に繰り返し分類を行わせる。
【００４０】
特徴抽出部１４は、組み合わせ決定部１２により決定された属性の組み合わせにしたがって、特徴ベクトルを生成する。例えば、特徴抽出部１４は、属性の組み合わせが｛ＢＤ｝である場合、教師データから属性Ｂ（ファイルサイズ）と属性Ｄ（Number  of  sections）に対応する値を抽出し、特徴ベクトルを生成する。また、同様に、特徴抽出部１４は、推論データからも属性Ｂ（ファイルサイズ）と属性Ｄ（Number  of  sections）に対応する値を抽出し、特徴ベクトルを生成する。そして、特徴抽出部１４は、検証部１３から出力された教師データおよびこの教師データから生成した特徴ベクトル、推論データおよびこの推論データから生成した特徴ベクトルを分類装置２０へ出力する。
【００４１】
精度算出部１５は、検証部１３から出力された分類結果を受け取ると、検証用データの推論データと突き合わせ、当該特徴ベクトルによる分類精度のよさを示す指標の値を算出する。つまり、精度算出部１５は、分類装置２０による特徴ベクトルを用いた推論データの分類結果と、推論データにおける各ファイルがマルウェアか否かの情報を参照して、当該特徴ベクトルによる分類精度がどの程度の高いかを示す指標の値を算出する。
【００４２】
ここでの指標は、例えば、ＡＵＣ（Area  Under  the  Curve）を用いる。ＡＵＣが大きい場合は、真陽性率(True  Positive  Rate:ＴＰＲ)が高く、かつ、偽陽性率(False  Positive  Rate:ＦＰＲ)が低くなる傾向がある。指標は、ＡＵＣ以外を用いてもよい。例えば、マルウェア判定では、偽陽性率が低いことが重要な場合もあり、その場合は真陰性率(True  Negative  Rate、１−ＦＰＲ)を指標として用いてもよい。
【００４３】
精度算出部１５は、算出した指標の値を、この指標の算出に用いた属性の組み合わせ（例えば、組み合わせ決定部１２が選択した式（５）に示すＬ８直交表の１行のうち、ｐ＝５個までの値）とともに記憶部（図示省略）の所定領域に保存する。精度算出部１５は、このような処理を組み合わせ決定部１２が決定した属性の組み合わせそれぞれについて実行する。例えば、属性の組み合わせに式（５）に示すＬ８直交表を用いる場合、８行すなわち８件の属性の組み合わせがあるので、精度算出部１５は、８件分の属性の組み合わせと、属性の組み合わせそれぞれの指標の値とを記憶部（図示省略）に保存する。
【００４４】
分析部１６は、記憶部（図示省略）に保存された属性の組み合わせを説明変数とし、当該組み合わせを用いた場合の指標の値を目的変数とした回帰分析（例えば、重回帰分析やロジスティック回帰分析）を行う。これにより各属性に対応した係数（寄与度）が算出される。そして、分析部１６は、算出された属性それぞれの係数の大きさに応じて、属性を選択する。例えば、分析部１６は、閾値（例えば、０）以上の係数を持つ属性を全て選択してもよいし、係数の大きな順に並べ、上位Ｘ％（例えば、３０％等）の属性を選択してもよい。また、分析部１６が、統計的検定も実施している場合は、各係数のｔ検定のｐ−値を用いて、ｐ−値＜０．０５となる正の係数を持つ属性を選択してもよい。分析部１６は上記のようにして選択した属性を、選択結果として出力する。なお、分析部１６は、属性（特徴）それぞれの寄与度の出力を行い、属性（特徴）の選択は、本システムのユーザが行うようにしてもよい。
【００４５】
また、重回帰分析およびロジスティック回帰分析は、ＳＰＳＳ（ＩＢＭ社）、Ｒ（オープンソフトウェア）等の統計処理ツール、ＮＡＧ（ＮＡＧ社）、ＡＬＧＬＩＢ（オープンソフトウェア）等の統計演算ライブラリを用いてもよい。
【００４６】
上記のように、システムは、特徴探索のための試行の組み合わせの決定において、実験計画法の直交表を用いるので、試行回数を低減することができる。また、システムは、試行の組み合わせの決定において実験計画法の直交表を用いることで試行回数が決まるので、試行の終了時期を予想することができる。
【００４７】
（処理手順）
次に、図２を用いて、システムの処理手順を説明する。
【００４８】
まず、特徴選択装置１０の組み合わせ決定部１２は、入力部（図示省略）経由で特徴（例えば、属性）の候補群の入力を受け付ける（Ｓ１）。そして、組み合わせ決定部１２は、直交表作成部１１に対し、特徴の候補の数（例えば、５個）に応じた直交表（式（５）参照）の作成を指示する。
【００４９】
直交表作成部１１は、組み合わせ決定部１２からの指示に基づき、組み合わせ決定部１２から出力された特徴の候補の数（例えば、５個）に応じた直交表（式（５）参照）を作成する（Ｓ２）。組み合わせ決定部１２は、Ｓ２で作成された直行表（式（５）参照）から未選択の組み合わせを１つ取得し、試行する特徴の組み合わせを決定する（Ｓ３）。
【００５０】
Ｓ３の後、検証部１３は、検証用データから教師データと推論データを作成する（Ｓ４）。そして、特徴抽出部１４は、検証部１３からの指示に基づき、教師データから特徴抽出を行い、特徴ベクトルを作成し、作成した特徴ベクトルと教師データを分類装置２０へ出力する（Ｓ５）。また、特徴抽出部１４は、検証部１３からの指示に基づき、推論データから特徴抽出を行い、特徴ベクトルを作成し、作成した特徴ベクトルと推論データを分類装置２０へ出力する（Ｓ６）。
【００５１】
Ｓ６の後、分類装置２０は、特徴選択装置１０から出力された教師データと特徴ベクトルを用いて機械学習を行い、その機械学習の結果を用いて、推論データに対する推論（分類）を行い、分類結果を特徴選択装置１０へ出力する（Ｓ７：分類実行）。
【００５２】
Ｓ７の後、特徴選択装置１０の検証部１３は、検証が完了したか否かを判定し（Ｓ８）、まだ検証が完了していなければ（Ｓ８でＮｏ）、Ｓ４へ戻る。一方、検証が完了していれば（Ｓ８でＹｅｓ）、検証部１３は分類装置２０による分類結果を精度算出部１５へ出力し、精度算出部１５は出力された分類結果に基づき、特徴ベクトルを用いた推論データの分類精度のよさを示す指標の値を算出する（Ｓ９）。
【００５３】
Ｓ９の後、直行表（式（５）参照）の組み合わせのうち、Ｓ３以降の処理を実施していないものがあれば（Ｓ１０でＮｏ）、Ｓ３へ戻る。一方、直行表（式（５）参照）の全ての組み合わせについて、Ｓ３以降の処理を実施済みであれば（Ｓ１０でＹｅｓ）、分析部１６は特徴の組み合わせごとの指標の値を分析し、特徴ごとの指標への寄与度を算出する（Ｓ１１）。そして、分析部１６は、算出された寄与度の高さに応じて特徴を選択し、選択結果を出力する（Ｓ１２）。
【００５４】
このようにすることでシステムは、マルウェアであるか否かの判定に有効な特徴を選択することができる。
【００５５】
なお、本システムにおける、特徴探索のための試行回数は、因子（例えば、属性）の個数ｐに応じて、２ｑ（ｑは、ｐ≦２ｑ−１を満たす最小の整数）ごとのステップで増えていく。ここで、試行回数が比較的多くなるのは、ｐが２のべき数に当たる場合で、例えば、ｐ＝８の時は、ｑ＝４となる。この場合、本システムは、Ｌ８直交表ではなく、Ｌ１６直交表を用いる必要があり、１６回の試行が必要となる。しかし、このような場合の試行回数を考慮しても、必要となる試行回数は高々２ｐ回である。なお、変数増加法および変数減数法を用いた場合の試行回数は、最小２ｐ−１回、最大ｐ（ｐ＋１）／２回である。したがって、たいていの場合、これらの手法よりも本システムによる手法の方が、試行回数が少なくて済むことがわかる。また、本システムの場合、試行回数はｐの値に応じて固定されており、試行の終了時期の予測も容易である。さらに、本システムは、回帰分析により特徴（または特徴の集まり）それぞれの、マルウェアか否かの分類精度への寄与度が数値化されるので、システムのユーザ等、人間が介在した特徴選択も行いやすくなる。
【００５６】
（第２の実施形態）
次に本発明の第２の実施形態を説明する。第２の実施形態のシステムは、特徴の候補群のうち、検証用データにおいて組（セット）で出現する度合いの高い特徴についてはいずれかの特徴で代表させ、代表以外の特徴（冗長特徴）を削除する。そして、システムは、冗長特徴の削除後の特徴を対象に、試行対象の特徴の組み合わせを決定する。例えば、検証用データにおいて属性Ａの値と属性Ｂの値とが組で出現する度合いが高い場合、システムは、これらのうち属性Ａを代表とし、属性Ｂを削除して試行対象の属性の組み合わせを決定する。
【００５７】
ここで、組で出現する度合いの高い特徴（属性）としては、例えば、ファイルのロック・アンロック（KERNEL32.dllのＡＰＩ（Application  Programming  Interface）、LockFileとUnLockFile）や、描画処理におけるメモリ確保・解放（gdiplus.dllのＡＰＩ、GdipAllocとGdipFree）等がある。また、マルウェアでは専用のＤＬＬ（Dynamic  Link  Library）を持ち、それらのＤＬＬ中のＡＰＩを使用することがあり、そのマルウェアの亜種では同じＤＬＬ名・ＡＰＩ名の組が出現することも多い。したがって、当該ＤＬＬ名とＡＰＩ名も組（セット）で出現する度合いの高い特徴として考えられる。
【００５８】
このようにシステムが組で出現する度合いの高い特徴群について冗長特徴の削除を行うことにより、各特徴の交互作用を低減できる。その結果、システムは実験計画法によって、特徴の寄与度（影響度）をより正確に算出することができる。また、システムが冗長特徴を削除することで、回帰分析で対象となる因子を削減できるので、処理時間を低減することができる。
【００５９】
ここで前記した交互作用について簡単に説明する。交互作用とは、ある因子の影響が他の因子の有る／無しで変化することをいう。例えば、因子Ａと因子Ｂとの両方があるときに、単独（因子Ａまたは因子Ｂのみ）の場合の予想よりも目的変数がより大きくなったり、逆により小さくなったりする場合がある。このような場合、前者を正の交互作用があるといい、後者を負の交互作用があるという。
【００６０】
例えば、システムに入力される特徴の候補群の中には、前記のようにファイル内で必ず組で出現する特徴がある。ここで、システムが、マルウェアか否かの分類に用いる特徴として、その組で出現する特徴が１つでも含まれていれば、その組で出現する他の特徴を追加しても、分類精度に影響を与えないことが多い。そのため、負の交互作用を生じる可能性がある。実験計画法においては、この負の交互作用は各因子の係数（寄与度）をより０に近い値として算出してしまい、その組に出現する各特徴の寄与度を小さいものと誤ってしまう可能性がある。つまり、システムは特徴の寄与度（影響度）を正確に算出することができない可能性がある。
【００６１】
そこで、システムが、上記のような冗長特徴の削除を行うことで、負の交互作用を低減するような試行対象の特徴の組み合わせを決定できるので、特徴の寄与度（影響度）をより正確に算出することができる。また、システムが冗長特徴を削除することで、回帰分析で対象となる因子を削減できるので、処理時間を低減することができる。
【００６２】
（構成）
第２の実施形態のシステムの構成を、図３を用いて説明する。前記した実施形態と同じ構成は、同じ符号を付して説明を省略する。図３に示すように、第２の実施形態のシステムにおける特徴選択装置１０ａは冗長特徴削減部１７をさらに備える。
【００６３】
冗長特徴削減部１７は、特徴の候補群のうち、検証用データにおいて組で出現する特徴群についてはいずれかの特徴で代表させ、代表以外の特徴（冗長特徴）を削除する。そして、冗長特徴削減部１７は、冗長特徴削除後の特徴の候補群を、組み合わせ決定部１２へ出力する。この後、組み合わせ決定部１２は、出力された冗長特徴削除後の特徴の候補群を対象に試行に用いる特徴の組み合わせを決定する。
【００６４】
（処理手順）
特徴選択装置１０ａは、例えば、図４に示す手順で特徴選択を行う。まず、特徴選択装置１０ａの冗長特徴削減部１７は、特徴の候補群の入力を受け付けると（Ｓ２０）、検証用データを読み込み、入力された特徴の候補群のうち、組で出現する特徴群を特定する（Ｓ２１）。そして、冗長特徴削減部１７は、組で出現する特徴群について、１つ代表となる特徴を残し、他の特徴は削除する（Ｓ２２）。そして、特徴選択装置１０ａは、Ｓ２２で削除済みの特徴群を対象に、図２のＳ２〜Ｓ１３と同様の処理を行う（Ｓ２３）。
【００６５】
次に、図５に例示する特徴組データベースの記録情報を用いて、図４のＳ２１の処理を、具体例を用いて説明する。特徴組データベースは、冗長特徴削減部１７が検証用データにおいて組で出現した特徴を記録したデータベースである。ここでは、冗長特徴削減部１７に、特徴の候補群として、５つの特徴Ａ,Ｂ,Ｃ,Ｄ,Ｅが入力され、４つの検証用データ｛Ａ，Ｂ｝、｛Ｂ，Ｃ，Ｄ｝、｛Ｃ，Ｄ，Ｅ｝、｛Ａ，Ｅ｝が入力された場合を例に説明する。冗長特徴削減部１７は、この４つの検証用データについて、特徴組データベースを用いながら、いずれの検証用データにおいても組で出現する特徴群を特定する場合を例に説明する。
【００６６】
まず、冗長特徴削減部１７は、１つめの検証用データ｛Ａ，Ｂ｝を読み込むと、この検証用データに登場するＡ，Ｂは新規の特徴なので新規の特徴リストに登録し、このＡ，Ｂを特徴組データベースに登録する。また、この新規の特徴リストに登録した特徴は２個以上なので、冗長特徴削減部１７は、特徴組データベースにＡ，Ｂが組であると記録（○印）する。なお、既登録の特徴はないので、既登録の特徴リストは空の状態である（図５の（１））。
【００６７】
次に、冗長特徴削減部１７は、２つめの検証用データ｛Ｂ，Ｃ，Ｄ｝を読み込むと、この検証用データに登場するＣ，Ｄは、新規の特徴なので、新規の特徴リストに登録し、特徴組データベースに登録する。なお、Ｂは、既登録の特徴なので、既登録の特徴リストに登録する。さらに、冗長特徴削減部１７は、新規の特徴リストに登録した特徴は２個以上なので、特徴組データベースにＣ，Ｄが組であると記録（○印）する。次に、冗長特徴削減部１７は既登録の特徴リストに登録されるＢについて、このＢと組であると記録（○印）された特徴（Ａ）を取り出す。ここで、冗長特徴削減部１７は、Ａが既登録の特徴リストには含まれているかを確認すると含まれていない。したがって、冗長特徴削減部１７は、特徴組データベースからＡ，Ｂの組の記録（○印）を取り消す。つまり、冗長特徴削減部１７は、過去の検証用データにおいて、ＢはＡと組で出現していたが、現在の検証用データにおいては、ＢはＡと組で出現していないので、特徴組データベースからＡ，Ｂが組であるという記録（○印）を取り消す（図５の（２））。
【００６８】
次に、冗長特徴削減部１７は、３つめの検証用データ｛Ｃ，Ｄ，Ｅ｝を読み込むと、この検証用データに登場するＥは新規の特徴なので、新規の特徴リストに登録し、特徴組データベースに登録する。また、Ｃ，Ｄは既登録の特徴なので既登録の特徴リストに登録する。新規の特徴はＥの１つのみなので、冗長特徴削減部１７は、特徴組データベースにおいて特徴の登録のみ行い、組の記録（○印）は行わない。次に、冗長特徴削減部１７は既登録の特徴リストに登録されるＣについて、このＣと組であると記録（○印）された特徴（Ｄ）を取り出す。このＤは既登録の特徴リスト（｛Ｃ，Ｄ｝）に含まれるため、冗長特徴削減部１７は、Ｃ，Ｄの組の記録（○印）を残したままにする。Ｄについても同様である（図５の（３））。
【００６９】
次に、冗長特徴削減部１７は、４つめの検証用データ｛Ａ，Ｅ｝を読み込むと、この検証用データに新規の特徴はないので、新規の特徴リストは空で、既登録の特徴リストにＡ，Ｅを登録する。ここで、冗長特徴削減部１７は既登録の特徴リストに登録されるＡについて、特徴組データベースにおいて組として記録（○印）された特徴はないのでそのままとする。Ｅについても同様である（図５の（４））。
【００７０】
最後に、冗長特徴削減部１７は、特徴組データベースから組の記録（○印）がない行を削除し、重複する組の行（Ｄ行）を削除すると、Ｃ−Ｄの組が残る。これにより４つの検証用データにおいて組で出現する特徴群｛Ｃ，Ｄ｝が特定される。
【００７１】
すなわち、冗長特徴削減部１７は、図６に示す処理を行う。まず、冗長特徴削減部１７は、検証用データを１件読み込み、特徴を抽出する（Ｓ３１）。つまり、冗長特徴削減部１７は、検証用データに、特徴の候補群に示される特徴があれば、その特徴を抽出する。
【００７２】
次に、冗長特徴削減部１７は、特徴組データベースと突き合わせ、Ｓ３１で抽出した各特徴を、既登録の特徴リストと、新規の特徴リストとに分ける（Ｓ３２）。つまり、冗長特徴削減部１７は、Ｓ３１で抽出した各特徴について、以前にも処理し、特徴組データベースに登録済みとなっている特徴と、初めて処理する新規の特徴とに分ける。
【００７３】
Ｓ３２の後、冗長特徴削減部１７は、新規の特徴リストの各特徴を特徴組データベース（図５参照）に登録し、さらに、リスト（新規の特徴リスト）の要素が２個以上あるならば、特徴組データベースにおいて、それらの特徴を「組」と記録する（Ｓ３３）。
【００７４】
Ｓ３３の後、冗長特徴削減部１７は、既登録の特徴リストの各特徴について、その特徴と「組」であると記録された特徴を特徴組データベース（図５参照）から取り出し、「組」である特徴が既登録の特徴リストに含まれていなければ、「組」の記録を取り消す（Ｓ３４）。
【００７５】
Ｓ３４の後、冗長特徴削減部１７がまだ読み込んでいない検証用データがあれば（Ｓ３５でＮｏ）、Ｓ３１へ戻る。一方、検証用データを全て読み込み済みであれば（Ｓ３５でＹｅｓ）、冗長特徴削減部１７は、特徴組データベース（図５参照）に重複する「組」の記録があれば削除し、整理する（Ｓ３６）。すなわち、冗長特徴削減部１７は、特徴組データベースにおいて、組｛Ａ，Ｂ，Ｃ｝、組｛Ｂ，Ａ，Ｃ｝…のように、順序が入れ違いとなっている組について、１組のみ残し、あとは削除する。なお、例えば、組｛Ａ，Ｂ，Ｃ｝を残したい場合、冗長特徴削減部１７は、その組の２番目以降の要素であるＢとＣで始まる組を検索し、削除すればよい。
【００７６】
このようにすることで、冗長特徴削減部１７は、特徴の候補群のうち、検証用データにおいて組で出現する特徴を特定することができる。
【００７７】
なお、上記の処理において、冗長特徴削減部１７は特徴組データベースにおいて、例えば、Ａ−ＢとＢ−Ａのように順序が入れ替わった両方の組を管理しているが、片方の組、例えば、Ａ−Ｂのみを管理してもよい。
【００７８】
また、第２の実施形態のシステムにおいて、冗長特徴削除部１７は、各検証用データにおいて必ず組で出現する特徴群に対し冗長特徴の削除を行うことしたがこれに限定されない。例えば、冗長特徴削除部１７は、各検証用データにおいて、組で出現する度合いが所定の閾値以上の特徴群に対し冗長特徴の削除を行うことしてもよい。
【００７９】
第２の実施形態のシステムによれば、特徴の候補群から冗長特徴の削除を行うので、負の交互作用を低減するような試行対象の特徴の組み合わせを決定できる。その結果、システムは特徴の寄与度（影響度）をより正確に算出することができる。また、システムが冗長特徴を削除することで、回帰分析で対象となる因子を削減できるので、処理時間を低減することができる。
【００８０】
なお、マルウェアのファイルにおいて上記のように組で出現する特徴は多数あることが知られている。したがって、システムが、特徴探索の試行の前に、冗長特徴の削減を行い、負の交互作用を低減するような試行対象の特徴の組み合わせを決定することの効果は非常に高いと考えられる。
【００８１】
（実験結果）
ここで、第２の実施形態のシステムの実験結果を述べる。ここでは、検証用データとして、マルウェアとグットウェアが半々になるように、約１０００個の実行ファイルを無作為に抽出したデータを用いた。この検証用データにおいて、呼出ＤＬＬ名と呼出ＡＰＩ名を含む特徴の数を数えたところ約１０，０００個であった。ここで、第２の実施形態のシステムにより、この検証用データを対象に、呼出ＤＬＬ名と呼出ＡＰＩ名を含む特徴の冗長特徴削減を行ったところ、約４，０００〜５，０００個まで特徴を減らすことができた。
【００８２】
前者について、２ｋ型直交表を用いた特徴選択を実施する場合、その試行回数は１６３８４回必要であるが、後者については、４０９６回、または、８１９２回で済み、大幅に試行回数を削減できた。また、交互作用を排除できたことから、回帰分析における各特徴の係数をより正確に算出することができるようになった。
【００８３】
（その他の実施形態）
なお、前記した各実施形態において、特徴の候補群はシステムのユーザ等により入力されるものとして説明したが、システムが検証用データ等から自動で抽出するようにしてもよい。この場合のシステムは、図７に示すように、特徴選択装置１０ｂ内に候補抽出部１８を備える。この候補抽出部１８は検証用データから特徴抽出を行い、得られた特徴の一覧を特徴の候補群として、組み合わせ決定部１２へ出力する。このようにすることで、システムのユーザが特徴の候補群を入力する手間を省ける。
【００８４】
（プログラム）
また、上記実施形態に係る特徴選択装置１０，１０ａ，１０ｂが実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるプログラムをコンピュータに読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、特徴選択装置１０，１０ａ，１０ｂと同様の機能を実現する制御プログラムを実行するコンピュータの一例を説明する。
【００８５】
図８は、特徴選択プログラムを実行するコンピュータを示す図である。図１２に示すように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ（Central  Processing  Unit）１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有する。これらの各部は、バス１０８０によって接続される。
【００８６】
メモリ１０１０は、ＲＯＭ（Read  Only  Memory）１０１１およびＲＡＭ（Random  Access  Memory）１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、ハードディスクドライブ１０９０に接続される。ディスクドライブインタフェース１０４０は、ディスクドライブ１１００に接続される。ディスクドライブ１１００には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース１０５０には、例えば、マウス１１１０およびキーボード１１２０が接続される。ビデオアダプタ１０６０には、例えば、ディスプレイ１１３０が接続される。
【００８７】
ここで、図８に示すように、ハードディスクドライブ１０９０は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３およびプログラムデータ１０９４を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ１０９０やメモリ１０１０に記憶される。
【００８８】
また、特徴選択プログラムは、例えば、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、ハードディスクドライブ１０９０に記憶される。具体的には、上記実施形態で説明した特徴選択装置１０，１０ａ，１０ｂが実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ１０９０に記憶される。
【００８９】
また、特徴選択プログラムによる情報処理に用いられるデータは、プログラムデータとして、例えば、ハードディスクドライブ１０９０に記憶される。そして、ＣＰＵ１０２０が、ハードディスクドライブ１０９０に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出して、上述した各手順を実行する。
【００９０】
なお、特徴選択プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０９０に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ１１００等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、制御プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００９１】
１０，１０ａ，１０ｂ  特徴選択装置
１１  直交表作成部
１２  組み合わせ決定部
１３  検証部
１４  特徴抽出部
１５  精度算出部
１６  分析部
１７  冗長特徴削減部
１８  候補抽出部
２０  分類装置
【図１】
2016031629.tif 000008
【図２】
2016031629.tif 000009
【図３】
2016031629.tif 000010
【図４】
2016031629.tif 000011
【図５】
2016031629.tif 000012
【図６】
2016031629.tif 000013
【図７】
2016031629.tif 000014
【図８】
2016031629.tif 000015