(57)【特許請求の範囲】
【請求項１】
複数のクラスに予め分類されている訓練データに基づいて、入力データを前記複数のクラスに分類するためのモデルを生成するシステムであって、
前記訓練データを記憶する記憶装置と、
前記訓練データから、少数クラスに分類された予め定められた数の要素、および、多数クラスに分類された要素をそれぞれ含む、複数の集合をサンプリングするサンプリング部と、
サンプリングした前記複数の集合のそれぞれに基づいて、それぞれが前記入力データを前記複数のクラスに分類するための複数のモデルのそれぞれを機械学習させる学習部と
を備え、
前記サンプリング部は、
前記記憶装置に記憶された前記訓練データから、前記予め定められた数の前記少数クラスの要素、および、前記多数クラスの要素を、コンピュータの処理によって、前記少数クラスに分類された要素の数および前記多数クラスに分類された要素の数の比率が、予め定められた確率分布に従うように、無作為に読み出す処理を複数回行うことで前記複数の集合をサンプリングし、
サンプリングした前記複数の集合を前記記憶装置に格納し、
前記学習部は、前記記憶装置から前記複数の集合を読み出し、前記複数のモデルのそれぞれを、読み出した前記複数の集合のそれぞれに基づいてコンピュータの処理によって機械学習させて、学習されたモデルを示すデータを出力するシステム。
【請求項２】
前記少数クラスは、前記訓練データに含まれている数が他のクラスと比較して少ないことが、予め判明している要素のクラスを示し、
前記モデルは、要素の集合を入力とし、入力された当該要素の集合を前記複数のクラスに分類した結果を出力するモデルであり、
前記学習部は、前記複数のモデルのそれぞれを、サンプリングした前記集合を当該モデルに入力した場合に当該集合を前記複数のクラスに分類した結果が、当該集合を予め前記複数のクラスに分類した結果に近づくように、学習させる、請求項１に記載のシステム。
【請求項３】
前記サンプリング部は、前記少数クラスに分類された前記予め定められた数の要素をそれぞれ含み、かつ、含んでいる要素の数の合計が互いに異なる複数の集合をサンプリングする、請求項１または２に記載のシステム。
【請求項４】
前記サンプリング部は、サンプリングするそれぞれの集合についての前記多数クラスに分類された要素の合計と、サンプリングするそれぞれの集合についての前記少数クラスに分類された要素の合計との比率が予め定められた比率と略等しくなるように、複数の集合をサンプリングする、請求項１から３のいずれか一項に記載のシステム。
【請求項５】
前記サンプリング部は、サンプリングするそれぞれの集合についての前記少数クラスに分類された要素の数および前記多数クラスに分類された要素の数の比率が、負の２項分布に従うように、前記訓練データから複数の集合をサンプリングする、請求項１から４のいずれか一項に記載のシステム。
【請求項６】
前記サンプリング部は、サンプリングするそれぞれの集合についての前記少数クラスに分類された要素の数および前記多数クラスに分類された要素の数の比率が、ユーザによって予め作成された分布に従うように、前記訓練データから複数の集合をサンプリングする、請求項１から４のいずれか一項に記載のシステム。
【請求項７】
前記予め定められた数は前記訓練データに含まれる前記少数クラスの要素の数であり、
前記サンプリング部は、前記訓練データのうち前記少数クラスに分類された全ての要素を抽出することで、前記少数クラスの要素をサンプリングする、請求項１から６のいずれか一項に記載のシステム。
【請求項８】
前記サンプリング部は、前記訓練データのうち前記少数クラスから前記予め定められた数の要素を無作為に復元抽出することで、前記少数クラスの要素をサンプリングする、請求項１から７のいずれか一項に記載のシステム。
【請求項９】
前記サンプリング部は、前記多数クラスの要素を無作為に復元抽出することで、前記多数クラスの要素をサンプリングする、請求項１から８のいずれか一項に記載のシステム。
【請求項１０】
前記サンプリング部は、前記多数クラスの要素を無作為に非復元抽出することで、前記多数クラスの要素をサンプリングする、請求項１から８のいずれか一項に記載のシステム。
【請求項１１】
前記学習部は、サンプリングされたそれぞれの集合について、当該集合に含まれるそれぞれの要素を、当該要素の属性に基づいて前記複数のクラスに分類する決定木を前記モデルとして生成する、請求項１から１０のいずれか一項に記載のシステム。
【請求項１２】
複数の要素を含む新たに入力したデータを、前記学習部により学習された前記複数のモデルのそれぞれによって分類して、前記複数のモデルのそれぞれによる複数の分類結果に基づいて、当該新たに入力したデータを分類する分類部をさらに備える、請求項１から１１のいずれか一項に記載のシステム。
【請求項１３】
当該システムは、与信審査を支援するシステムであり、
前記訓練データは、審査対象の属性を当該審査対象に与信した結果として事故が発生したか否かによって複数のクラスに分類したデータであり、
前記入力データは、新たに審査するべき複数の審査対象について当該審査対象の属性を記録したデータであり、
前記サンプリング部は、前記訓練データから、事故が発生したクラスに分類された予め定められた数の要素、および、事故が発生しなかったクラスに分類された要素をそれぞれ含む、複数の集合をサンプリングし、
前記学習部は、サンプリングした前記複数の集合のそれぞれに基づいて、前記入力データに属性の記録された審査対象を与信した場合に事故が発生するか否かを判断させるための複数のモデルのそれぞれを機械学習させる、請求項１から１１のいずれか一項に記載のシステム。
【請求項１４】
複数のクラスに予め分類されている訓練データに基づいて、入力データを前記複数のクラスに分類するためのモデルを生成する方法であって、
前記訓練データを記憶するステップと、
前記訓練データから、少数クラスに分類された予め定められた数の要素、および、多数クラスに分類された要素をそれぞれ含む、複数の集合をサンプリングするステップと、
サンプリングした前記複数の集合のそれぞれに基づいて、それぞれが前記入力データを前記複数のクラスに分類するための複数のモデルのそれぞれを機械学習させるステップと
を備え、
前記サンプリングするステップは、
記憶された前記訓練データから、前記予め定められた数の前記少数クラスの要素、および、前記多数クラスの要素を、コンピュータの処理によって、前記少数クラスに分類された要素の数および前記多数クラスに分類された要素の数の比率が、一定の比率とは異なる予め定められた分布に従うように、無作為に読み出す処理を複数回行うことで前記複数の集合をサンプリングするステップと、
サンプリングした前記複数の集合を格納するステップと
を有し、
前記機械学習させるステップは、格納された前記複数の集合を読み出し、前記複数のモデルのそれぞれを、読み出した前記複数の集合のそれぞれに基づいてコンピュータの処理によって機械学習させて、学習されたモデルを示すデータを出力するステップを有する方法。
【請求項１５】
コンピュータを、請求項１から１３のいずれか一項に記載の入力データを前記複数のクラスに分類するためのモデルを生成するシステムとして機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを分類する技術に関する。特に、本発明は、予め与えられた訓練データに基づいてモデルを学習することで、データを適切に分類する技術に関する。
【背景技術】
【０００２】
機械学習による分類問題は、様々な分野に応用可能な重要な問題として知られている。例えば、患者の検査結果に基づいて特定の病状を予測したり、借入れ希望者の属性に基づいて与信の可否を判断したりすることができる。分類問題は、複数のクラスに分類された訓練データを用いて、データとクラスの対応関係を学習し、その学習結果に基づいて、クラスが未知のデータを適切に分類する、という問題である。データとクラスの対応関係は、分類の精度を高めることができるように学習される。そして、分類の精度は、分類の正解率によって評価される場合が多い。
【０００３】
機械学習のための訓練データのサンプリングについては、例えば以下の各文献を参照されたい。
【特許文献１】特開２００５−９２２５３号公報
【特許文献２】米国特許第６９３８０４９号
【非特許文献１】Bagging Predictor, Machine Learning, 24(2):123-140 (1996), Leo Breiman
【非特許文献２】Asymmetric Bagging and Random Subspace for Support Vector Machines-Based Relevance Feedback in Image Retrieval, IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(7):1088-1099 (2006), Dacheng Tao et al.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、問題によっては、分類の正解率を分類の精度として利用するのは不都合である。例えば、あるクラスに分類されるデータが極めて少ない場合においては、全てのデータを他のクラスに分類するように学習すれば、分類の正解率は高くなる。但し、そのように学習してしまうと有用な知見が得られない場合がある。例えば、多くの患者の中から特定の疾患を抱える少数の患者を見つけ出し、また、多くの借入れ希望者の中から与信に不適切な少数の希望者を見つけ出すのが難しくなってしまう。
【０００５】
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態においては、複数のクラスに予め分類されている訓練データに基づいて、入力データを前記複数のクラスに分類するためのモデルを生成するシステムであって、前記訓練データから、少数クラスに分類された予め定められた数の要素、および、多数クラスに分類された前記予め定められた数に基づき定まる数の要素をそれぞれ含む、複数の集合をサンプリングするサンプリング部と、サンプリングした前記複数の集合のそれぞれに基づいて、それぞれが前記入力データを前記複数のクラスに分類するための複数のモデルのそれぞれを機械学習させる学習部とを備えるシステムを提供する。また、当該システムとしてコンピュータを機能させるプログラム、および、当該システムによってモデルを学習させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係るコンピュータ１０の構成概要を示す。コンピュータ１０は、基本的なハードウェアとして、例えばネットワーク・インターフェイス・カードなどである通信インターフェイス１０２と、例えばハードディスクドライブなどである記憶装置１０４とを備える。また、コンピュータ１０は、記憶装置１０４から読み出したプログラムをＣＰＵなどの演算処理装置で実行することで、分類システム１０６として機能する。
【０００９】
分類システム１０６は、記憶装置１０４に記憶された訓練データに基づいて、入力データ２０を複数のクラスに分類するためのモデルを生成する。その訓練データの一例を図２に示す。
図２は、本実施形態に係る記憶装置１０４が記憶する訓練データの具体例を示す。記憶装置１０４は、訓練データとして、複数のクラスに予め分類されている複数の要素のそれぞれを、その要素の属性に対応付けて記憶している。
【００１０】
図２の例は、分類システム１０６が与信審査を支援するシステムである場合における訓練データを示している。この例で、要素とは、例えば与信審査の審査対象などであり、より具体的には、与信審査される個人、団体または法人である。ここでは、審査対象をそのＩＤにより表す。
【００１１】
また、それぞれの審査対象は、属性１から属性Ｍまでの複数の属性を有する。ある属性は、例えば、対応する審査対象の過去の借入れ履歴を示してよい。また、他の属性は、例えば、対応する審査対象の年齢、年収、または資産額などを示してよい。一例として、ＩＤが０００１の審査対象は、属性１として属性値１００を有し、属性２として属性値２０を有し、属性３として属性値５０と有し、属性Ｍとして属性値１０を有する。
【００１２】
また、記憶装置１０４は、それぞれの審査対象が分類されているクラスを記憶している。複数のクラスは、例えば、審査対象に与信した結果として事故が発生したクラス、および、審査対象に与信した結果として事故が発生しなかったクラスを示す。一例として、ＩＤが０００１の審査対象はクラスＡに分類される一方、ＩＤが０００２の審査対象はクラスＢに分類されている。このように、この例における訓練データは、審査対象はどのような属性を有するかという情報と、その審査対象に与信した結果として事故が発生したか否かを表している。
【００１３】
これに代えて、例えば分類システム１０６が特定の疾患を有する患者を推定するシステムである場合においては、記憶装置１０４は、訓練データ中の要素として患者を記録してよい。そして、訓練データ中の属性として、その患者の属性、例えば所定の検査の結果などを記憶している。さらに、記憶装置１０４は、患者の属性としてその患者の年齢または過去の病歴などを記憶していてもよい。この例において、クラスは、例えば、その患者が特定の疾患を有するかどうかを表す。
【００１４】
さらに他の例として、例えば分類システム１０６がネットワークシステム利用の不正侵入等を検知するシステムである場合において、各要素は、各ネットワークアクセスを示す。そして、その要素の属性は、そのネットワークアクセスによるアクセス時刻、アクセス所要時間、または、アクセスの内容などを示す。この例において、クラスは、例えば、そのネットワークアクセスが不正アクセスかどうかを示す。
【００１５】
さらに他の例として、例えば分類システム１０６がクレジットカードの不正利用の検出を支援するシステムである場合において、各要素は、クレジットカードの各利用を示す。そして、その要素の属性は、クレジットカードの利用時刻、利用金額、利用店舗または支払方法などを表す。この例において、クラスは、例えば、その利用が不正利用かどうかを示す。
【００１６】
そして、分類システム１０６は、以上のような訓練データに基づいて生成したモデルを使用して、まだクラスに分類されていない入力データ２０を複数のクラスに分類する。入力データ２０の一例を図３に示す。
図３は、本実施形態に係る入力データ２０の具体例を示す。入力データ２０は、複数の要素のそれぞれを、その要素が有する少なくとも１つの属性に対応付けて記録している。この図３の例でも、図２の例と同様に、コンピュータ１０の用途に応じて要素は様々な具体的対象となり得る。例えばコンピュータ１０が与信審査を支援するシステムである場合において、要素は、新たに与信の審査をするべき審査対象であってよい。
【００１７】
同様に、各要素の属性も、コンピュータ１０の用途に応じて様々である。例えば、コンピュータ１０が与信審査を支援するシステムである場合において、属性は、その審査対象の過去の借入れ履歴などである。但し、入力データ２０は、それぞれの審査対象がどのクラスに分類されるかという情報は記録していない。
【００１８】
以上の何れの例においても、たとえばクレジットカードの不正利用、特定の疾患、または不正アクセスなどは、全体のうちのごく僅かを占める場合が多い。分類システム１０６は、このようなクラス不均衡の訓練データに基づくモデルに従って、クラス不均衡であることが予期されるクラス未分類の入力データ２０を、精度良く分類することを目的とする。以下、具体的に説明してゆく。
【００１９】
図４は、本実施形態に係る分類システム１０６の機能構成の一例を示す。分類システム１０６は、サンプリング部２００と、学習部２１０と、分類部２２０とを有する。サンプリング部２００は、記憶装置１０４から訓練データを読み出す。そして、サンプリング部２００は、読み出したその訓練データから、少数クラスに分類された要素および多数クラスに分類された要素をそれぞれ含む、複数の集合をサンプリングする。
【００２０】
このサンプリングは、例えば、集合の復元抽出であってよい。具体的には、サンプリング部２００は、記憶装置１０４に記憶された訓練データから、予め定められた数の少数クラスの要素および当該予め定められた数に基づき定まる数の多数クラスの要素をＣＰＵにより無作為に読み出す処理を複数回行うことで、これら複数の集合をサンプリングする。サンプリングされたそれぞれの集合は、記憶装置１０４に記憶される。
【００２１】
ここで、少数クラスとは、訓練データに含まれる数が他のクラスと比較して少ないことが、予め判明している要素のクラスである。例えば、珍しい疾患を有する患者を一般の患者の中から検出しようとする場合において、その疾患を有する患者のクラスは、他のクラスと比較して少ない要素を有することが、予め判明している。このため、この例において、その疾患を有する患者のクラスが少数クラスである。一方、多数クラスとは、少数クラスと比較して含んでいる数が多いことが予め判明している要素のクラスである。
【００２２】
また、少数クラスからサンプリングされる当該予め定められた数は、訓練データに含まれる少数クラスの要素の総数であってよい。即ちサンプリング部２００は、訓練データに含まれる少数クラスの全ての要素を重複無く選択して、それぞれの集合に含めて抽出してよい。一方、それぞれの集合に含まれる多数クラスの要素の数は、集合ごとに異なることが望ましい。
【００２３】
さらに好ましくは、サンプリングされるそれぞれの集合についての多数クラスの要素の合計と、サンプリングされるそれぞれの集合についての少数クラスの要素の合計との比率は、予め定められた比率（例えば１：１）と略等しい。このように、集合のサイズに揺らぎを与えつつも、平均的には少数クラスと多数クラスとが釣り合うように同等に評価することで、後の学習処理の精度を高めることができる。
【００２４】
次に、学習部２１０は、サンプリングしたこれら複数の集合を、記憶装置１０４から読み出す。そして、学習部２１０は、これら複数の集合のそれぞれに基づいて、それぞれが入力データ２０を複数のクラスに分類するための複数のモデルのそれぞれを機械学習させる。
【００２５】
ここで、モデルは、要素の集合を入力とし、入力した各要素の属性に基づいて、入力された当該要素の集合を複数のクラスに分類した結果を出力するためのデータである。一例として、そのデータは、例えば決定木（Ｄｅｃｉｓｉｏｎ  Ｔｒｅｅ）などのように、そのような分類を実現するための規則を示してよいし、例えばニューラルネットワークなどのように、そのような分類を実現するためのグラフ（経路）を示してよい。
【００２６】
詳細には、学習部２１０は、機械学習させるべき複数のモデルのそれぞれに対応する学習制御部２１５を有する。それぞれの学習制御部２１５は、サンプリングされた集合を入力すると、対応するモデルにその集合を入力した場合にその集合を複数のクラスに分類した結果が、訓練データにおいて当該集合を予め当該複数のクラスに分類した結果と近づくように、当該モデルを示すデータを変更する。例えば、サンプリングされた集合に含まれる各要素に基づき、決定木のノードおよびエッジの構成が変更される。機械学習は、このようなデータの変更により実現される。
【００２７】
学習されたそれぞれのモデルを示すデータは、記憶装置１０４に格納される。また、モデルを示すデータは、他のコンピュータにおいて使用するために、電気通信回線を介して外部に出力されてもよい。
【００２８】
次に、分類部２２０は、新たに入力した入力データ２０を、学習部２１０により学習された複数のモデルのそれぞれによって分類する。そして、分類部２２０は、当該複数のモデルのそれぞれによる複数の分類結果に基づいて、入力データ２０を分類する。たとえば、分類部２２０は、複数の分類結果から多数決によって１つの分類結果を定めてもよい。その機能の構成例を図５に示す。
【００２９】
図５は、本実施形態に係る分類部２２０の機能構成の一例を示す。分類部２２０は、複数の分類制御部２２５と、アンサンブル部２２８とを備える。複数の分類制御部２２５は、それぞれ異なるモデルに従って入力データ２０を複数のクラスに分類する。このように複数の分類制御部２２５はそれぞれ異なるモデルに従うので、複数の分類制御部２２５による分類結果は互いに異なる場合がある。このためアンサンブル部２２８は、これら複数の分類結果に基づいて、例えば多数決方式などによって単一の分類結果を定める。
【００３０】
例えば、いま、総数９つのモデルのうち、ある要素をクラスＡに分類したモデルが５つであり、その要素をクラスＢに分類したモデルが４つであれば、分類部２２０は、その要素をクラスＡに分類してよい。これに代えて、分類部２２０は、複数の分類結果を平均化してもよい。具体的には例えば以下の通りである。
【００３１】
モデルによっては、それぞれの分類結果の確信度を数値化して出力する場合がある。例えば、あるモデルによるある要素の分類結果は、クラスＡが１００％中の５５％であり、クラスＢが１００％中の４５％である。一方、他のモデルによるその要素の分類結果は、クラスＡが１００％中の３０％であり、クラスＢが１００％中の７０％である。
【００３２】
この場合、分類部２２０は、それぞれのモデルによるそれぞれのクラスへの分類の確信度を平均する。即ち例えば、分類部２２０は、その要素のクラスＡへの分類の確信度として４２．５％を算出し、その要素のクラスＢへの分類の確信度として４７．５％を算出する。この平均化の結果、その要素はクラスＢに分類されると評価される。分類結果は、例えば画面に表示されてもよいし、記憶装置１０４に格納されてもよいし、電気通信回線を通じて外部に出力されてもよい。
【００３３】
図６は、本実施形態に係る分類システム１０６により入力データが分類される処理の流れを示す。サンプリング部２００は、訓練データから複数の集合をサンプリングする（Ｓ６００）。モデルを効果的に学習できるようにするため、このサンプリングのステップは、以下のＳ６１０−Ｓ６４０を含む。
【００３４】
まず、サンプリング部２００は、それぞれの集合に含めてサンプリングするべき、少数クラスに分類された要素の数、および、多数クラスに分類された要素の数の比率の分布を算出する（Ｓ６１０）。この分布は、例えば負の２項分布に従う。その一例を図７および以下の式（１）に示す。
【数１】
0005142135.tif 000002
【００３５】
訓練データに含まれる少数クラスからサンプリングするべき要素の数をｎとする。このｎは、既に述べたように、予め定められた定数であり、好ましくは、訓練データに含まれる少数クラスの要素の総数である。
【００３６】
この場合において、少数クラスの要素数および多数クラスの要素数の比率の分布が負の２項分布に従うとすると、多数クラスの要素数がｍとなる確率は、上記式（１）の値となる。但し、ｐは０より大きく１未満の実数である。
【００３７】
ｎを１０とし、ｐを０．５とおいた場合における、要素数ｍの確率分布の例を図７に示す。確率密度はｍ＝１０付近でピークを迎え、ｍ＝０またはｍ＝∞に向かうと徐々に低下する。例えばこの場合において、サンプリング部２００は、例えばｍ：ｎ＝｛２：１０，４：１０，６：１０，８：１０，９：１０，１０：１０，１１：１０，１３：１０，１５：１０｝などのように、ｍ＝１０付近の比率が最も多くなるような複数の比率を分布として算出してよい。
【００３８】
次に、サンプリング部２００は、算出した分布に従って、少数クラスから要素をサンプリングする（Ｓ６２０）。少数クラスからサンプリングする要素の数は、上記式（１）におけるｎであり、既に述べたように訓練データ中の少数クラスの要素の総数であることが好ましく、一例として図７の例のように定数値１０である。
【００３９】
これに代えて、サンプリング部２００は、いわゆるブートストラッピング・サンプリングにより、少数クラスから予め定められた数の要素を復元抽出してよい。この場合、少数クラスの一部の要素が時にはサンプリングされなくなり、代わりに他の要素が重複してサンプリングされる。この結果、訓練データ中に、クラス分類の基準を決定付けるためには不適切な、いわゆるノイズと呼ばれる要素が含まれる場合であっても、分類の精度をある程度の高さに維持できる。
【００４０】
次に、サンプリング部２００は、算出した分布に従って、多数クラスから要素をサンプリングする（Ｓ６３０）。多数クラスからサンプリングする要素の数は、上記式（１）におけるｍであり、既に述べたようにｎ：ｍは負の２項分布に従うことが望ましい。従って、サンプリング部２００は、Ｓ６１０において算出した分布の中から、まず、ある１つの比率を無作為に選択する。ここではたとえば８：１０が選択されたとする。
【００４１】
そして、サンプリング部２００は、この比率に従うように、多数クラスから要素をサンプリングする。少数クラスからサンプリングする要素の数を１０とすると、多数クラスからサンプリングする要素の数は８である。即ち、サンプリング部２００は、多数クラスの中から８つの要素をサンプリングする。具体的には、サンプリング部２００は、多数クラスから８つの要素を無作為に復元抽出してもよいし、無作為に非復元抽出してよい。
【００４２】
以上の処理を、サンプリング部２００は、予め定められた数Ｋ回繰り返すことで、Ｋ個の集合をサンプリングする（Ｓ６４０）。これにより、サンプリングされるＫ個の集合に、それぞれ少数クラスに分類された予め定められた数ｎ個の要素を含ませることができ、かつ、含んでいる要素の数の合計が互いに異ならせることができる。また、それぞれの集合についての少数クラスの要素の合計と、多数クラスの要素の合計とを、上記式（１）のｐにより定まる所定の比率に略等しくすることができる。
【００４３】
なお、ここではこのような特徴的なサンプリングを実現する技術の一例として負の２項分布を例示したが、各集合中の少数クラスおよび多数クラスの要素の比率が従う分布は、この負の２項分布に限定されるものではない。例えば、この比率は、コンピュータ１０の設計者または管理者が予め手作業で作成した分布に従ってもよい。そのような分布であっても、各集合が少数クラスの大部分を含み、かつ互いにサイズが異なることで、モデルの学習の精度を高めることができる。
【００４４】
また、ここでは多数クラスおよび少数クラスという２つのクラスからサンプリングする例を示したが、サンプリングされるクラスは３以上であってよい。その場合において、それぞれのクラスからサンプリングされる要素の数は負の多項分布に従う。そのようなサンプリングの実施例も、本発明の範囲内であることが、本願の特許請求の範囲の記載から明らかである。
【００４５】
次に、学習部２１０は、サンプリングしたこれらＫ個の集合のそれぞれに基づいて、それぞれが入力データ２０を複数のクラスに分類するためのＫ個のモデルのそれぞれを機械学習させる（Ｓ６５０）。機械学習させるモデルは、例えば決定木（Ｄｅｃｉｓｉｏｎ  Ｔｒｅｅ）である。この決定木は、入力した集合に含まれるそれぞれの要素を、その要素の属性に基づいて複数のクラスに分類するものである。
【００４６】
学習部２１０は、モデルを学習させるために、この決定木の中間ノード（条件判定手段）、エッジ（条件）、および、末端ノード（分類結果）を生成する。決定木の各ノードおよびエッジを訓練データから生成する技術については周知であるから、ここではその詳細な説明を省略する。学習部２１０は、このように生成したモデルを示すデータ、例えばここではノードおよびエッジを含むツリー構造のデータを記憶装置１０４に格納し、または、外部に出力する。
【００４７】
分類部２２０は、新たに入力した入力データ２０を、学習部２１０により学習された複数のモデルのそれぞれによって分類する。そして、分類部２２０は、いわゆるアンサンブル学習という手法に従って、当該複数のモデルのそれぞれによる複数の分類結果に基づいて、入力データ２０を分類する。たとえば、分類部２２０は、複数の分類結果から多数決によって１つの分類結果を定めてもよい。但し、分類部２２０が分類結果を定めるために採用する方法は、いわゆるアンサンブル学習として知られる方法であればその中の特定の方法に限定されるものではない（アンサンブル学習を取り入れたデータマイニング・パッケージソフトウェアについては、例えば以下のＵＲＬ「http://www.hulinks.co.jp/software/randomforests/」を参照されたい。）。
【００４８】
ここで得られる分類結果は、多数の要素を含む訓練データに含まれる極めて少ない要素の集合をクラスとして精度良く分類している。例えば、多数の借入れ希望者の中から、ある属性の審査対象に与信をした場合に事故が発生するか否かを判断したり、また、多数の患者の中から珍しい疾患の患者の集合をクラスとして分類したりすることができる。
【００４９】
図８は、本実施形態に係るコンピュータ１０のハードウェア構成の一例を示す。コンピュータ１０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００５０】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。具体的には、ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０からプログラムを読み出して実行することで、コンピュータ１０を分類システム１０６として機能させる。
【００５１】
グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００５２】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、上記通信インターフェイス１０２の一例であり、ネットワークを介して外部の装置と通信する。通信インターフェイス１０３０は、例えば、上記入力データ２０を、電気通信回線を介して外部から取得してもよい。また、通信インターフェイス１０３０は、上記分類結果を示すデータ、または、学習させた前記モデルを示すデータを、外部に出力してもよい。
【００５３】
ハードディスクドライブ１０４０は、上記記憶装置１０４の一例であり、コンピュータ１０が使用するプログラム及びデータを格納する。例えば、ハードディスクドライブ１０４０は、外部から取得した入力データ２０を格納してもよいし、コンピュータ１０を分類システム１０６として機能させるためのプログラムを格納してもよい。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００５４】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータ１０の起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータ１０のハードウェアに依存するプログラム等を格納する。
【００５５】
フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。上述の入力データ２０および／または訓練データは、各種ポートに接続された装置を介して入力されてもよい。例えば、入力データ２０および／または訓練データは、キーボードポート及びマウスポートに接続されたキーボード及びマウスを介して入力されてもよい。
【００５６】
コンピュータ１０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータ１０にインストールされて実行される。プログラムがコンピュータ１０等に働きかけて行わせる動作は、図１から図７において説明した分類システム１０６における動作と同一であるから、説明を省略する。
【００５７】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１０に提供してもよい。
【００５８】
以上、本実施形態に係る分類システム１０６によれば、少数クラスに分類された要素の情報を最大限に活用しつつも、サンプリングする要素の数に揺らぎを与えることでアンサンブル学習の効果を高めることができるので、少数クラスを含むクラスへの分類において極めて高い分類精度を実現できる。例えば、本願発明者の実証実験によれば、従来手法と比較して分類精度が向上する場合が多く、かつ、従来手法と比較して分類精度が低下することはほとんど無いことが確かめられた。
【００５９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００６０】
【図１】図１は、本実施形態に係るコンピュータ１０の構成概要を示す。
【図２】図２は、本実施形態に係る記憶装置１０４が記憶する訓練データの具体例を示す。
【図３】図３は、本実施形態に係る入力データ２０の具体例を示す。
【図４】図４は、本実施形態に係る分類システム１０６の機能構成の一例を示す。
【図５】図５は、本実施形態に係る分類部２２０の機能構成の一例を示す。
【図６】図６は、本実施形態に係る分類システム１０６により入力データが分類される処理の流れを示す。
【図７】図７は、本実施形態においてサンプリングされるそれぞれの集合において、少数クラスに分類される要素の数および多数クラスに分類される要素の数の比率の分布を示す。
【図８】図８は、本実施形態に係るコンピュータ１０のハードウェア構成の一例を示す。
【符号の説明】
【００６１】
１０  コンピュータ
２０  入力データ
１０２  通信インターフェイス
１０４  記憶装置
１０６  分類システム
２００  サンプリング部
２１０  学習部
２１５  学習制御部
２２０  分類部
２２５  分類制御部
２２８  アンサンブル部
【図１】
0005142135.tif 000003
【図２】
0005142135.tif 000004
【図３】
0005142135.tif 000005
【図４】
0005142135.tif 000006
【図５】
0005142135.tif 000007
【図６】
0005142135.tif 000008
【図７】
0005142135.tif 000009
【図８】
0005142135.tif 000010