(57)【特許請求の範囲】
【請求項１】
２つのクラスの何れのクラスに属するのかが既知である学習データのうち、相対的に少数の学習データが属するクラスである少数クラスの学習データの個数を重みに応じた倍率で増やすことと、相対的に多数の学習データが属するクラスである多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行うことにより、前記学習データの数を変更して新学習データを作成し、当該新学習データを用いて、与えられたデータが２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成装置であって、
前記多数クラスの学習データの個数を前記少数クラスの学習データの個数で割った値以下で、１以上の値の範囲の中から、前記重みの上限値と下限値を定め、前記上限値と下限値の範囲から値が相互に異なる複数の仮の重みを決定する仮重み決定手段と、
前記少数クラスの学習データの個数を前記仮の重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記仮の重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成する学習データサンプリング手段と、
前記学習データサンプリング手段により学習データの個数が変更された後の前記新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための仮の分類器を作成することを、前記新学習データのセット毎に行って、複数の前記仮の分類器を得る学習手段と、
前記仮の分類器により前記学習データを前記２つのクラスの何れかに分類した結果に基づいて、前記学習手段により得られた仮の分類器の性能を評価する評価値を算出することを、前記複数の仮の分類器毎に行って、複数の前記評価値を得る評価値算出手段と、
前記評価値算出手段により得られた評価値と、当該評価値を得る際に用いられた仮の重みとを用いて、評価値と重みとの関係を求め、求めた関係において、前記下限値から前記上限値までの範囲で最も大きな値を有する評価値に対応する重みを、重みの最適値として導出する最適重み導出手段と、
前記重みの最適値を前記重みとして用いて、前記少数クラスの学習データの個数を前記重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行って、前記新学習データを作成し、当該新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成手段と、
を有することを特徴とする分類器作成装置。
【請求項２】
前記仮の重みの数は、３以上であることを特徴とする請求項１に記載の分類器作成装置。
【請求項３】
前記学習データサンプリング手段は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記仮の重みを乗じた個数になるように、前記少数クラスの学習データの少なくとも一部を複製することを、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成し、
前記分類器作成手段は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記重みの最適値を乗じた個数になるように、前記少数クラスの学習データを複製して新学習データを生成し、生成した新学習データを用いて前記分類器を作成することを特徴とする請求項１又は２に記載の分類器作成装置。
【請求項４】
前記学習データサンプリング手段は、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記仮の重みの逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除することを、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成し、
前記分類器作成手段は、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記重みの最適値の逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除して新学習データを生成し、生成した新学習データを用いて前記分類器を作成することを特徴とする請求項１又は２に記載の分類器作成装置。
【請求項５】
前記多数クラスの学習データの個数の減少に対する前記少数クラスの学習データの個数の増加の優先度、又は、前記少数クラスの学習データの個数の増加に対する前記多数クラスの学習データの個数の減少の優先度であって、０以上１以下の値をとる優先度をあらかじめ定め、前記仮の重みを用いて、前記少数クラスの学習データに対する仮の重みである少数クラス用の仮の重みと、前記多数クラスの学習データに対する仮の重みである多数クラス用の仮の重みとを導出する仮重み導出手段と、
前記優先度と、前記重みの最適値とを用いて、前記少数クラスの学習データに対する重みである少数クラス用の重みと、前記多数クラスの学習データに対する重みである少数クラス用の重みとを導出する重み導出手段と、を有し、
前記学習データサンプリング手段は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記少数クラス用の仮の重みを乗じた個数になるように、前記少数クラスの学習データの少なくとも一部を複製することと、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記多数クラス用の仮の重みの逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除することと、を、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成し、
前記分類器作成手段は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記少数クラス用の重みの最適値を乗じた個数になるように、前記少数クラスの学習データを複製することと、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記多数クラス用の重みの最適値の逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除することと、を行って新学習データを生成し、生成した新学習データを用いて前記分類器を作成し、  前記優先度が、前記多数クラスの学習データの個数の減少に対する前記少数クラスの学習データの個数の増加の優先度である場合には、前記優先度の値が１であるときに、前記少数クラスの仮の重みが、前記仮の重みと同じになり、且つ、前記優先度の値が０であるときに、前記多数クラスの仮の重みが、前記仮の重みと同じになり、
前記優先度が、前記少数クラスの学習データの個数の増加に対する前記多数クラスの学習データの個数の減少の優先度である場合には、前記優先度の値が１であるときに、前記多数クラスの仮の重みが、前記仮の重みと同じになり、且つ、前記優先度の値が０であるときに、前記少数クラスの仮の重みが、前記仮の重みと同じになるようにしたことを特徴とする請求項１又は２に記載の分類器作成装置。
【請求項６】
前記評価値算出手段は、前記仮の分類器により前記学習データを前記２つのクラスの何れかに分類した結果に基づいて、少数クラスに分類した学習データの中に、実際に少数クラスに属する学習データが含まれている割合を表す適合率と、実際に少数クラスに属する学習データの中に、少数クラスに分類した学習データが含まれている割合である再現率と、を算出し、前記適合率と前記再現率との重み付き調和平均であるＦ値を前記評価値として算出することを特徴とする請求項１〜５の何れか１項に記載の分類器作成装置。
【請求項７】
前記仮重み決定手段は、それぞれが、前記上限値、前記下限値、前記上限値と下限値との和の１／２の値、を有する３つの仮の重みを導出し、
前記最適重み導出手段は、前記評価値が、前記重みの２次関数で表されると見なして前記評価値と重みとの関係を求めることを特徴とする請求項１〜６の何れか１項に記載の分類器作成装置。
【請求項８】
前記分類器は、決定木であることを特徴とする請求項１〜７の何れか１項に記載の分類器作成装置。
【請求項９】
２つのクラスの何れのクラスに属するのかが既知である学習データのうち、相対的に少数の学習データが属するクラスである少数クラスの学習データの個数を重みに応じた倍率で増やすことと、相対的に多数の学習データが属するクラスである多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行うことにより、前記学習データの数を変更して新学習データを作成し、当該新学習データを用いて、与えられたデータが２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成方法であって、
前記多数クラスの学習データの個数を前記少数クラスの学習データの個数で割った値以下で、１以上の値の範囲の中から、前記重みの上限値と下限値を定め、前記上限値と下限値の範囲から値が相互に異なる複数の仮の重みを決定する仮重み決定工程と、
前記少数クラスの学習データの個数を前記仮の重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記仮の重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成する学習データサンプリング工程と、
前記学習データサンプリング工程により学習データの個数が変更された後の前記新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための仮の分類器を作成することを、前記新学習データのセット毎に行って、複数の前記仮の分類器を得る学習工程と、
前記仮の分類器により前記学習データを前記２つのクラスの何れかに分類した結果に基づいて、前記学習工程により得られた仮の分類器の性能を評価する評価値を算出することを、前記複数の仮の分類器毎に行って、複数の前記評価値を得る評価値算出工程と、
前記評価値算出工程により得られた評価値と、当該評価値を得る際に用いられた仮の重みとを用いて、評価値と重みとの関係を求め、求めた関係において、前記下限値から前記上限値までの範囲で最も大きな値を有する評価値に対応する重みを、重みの最適値として導出する最適重み導出工程と、
前記重みの最適値を前記重みとして用いて、前記少数クラスの学習データの個数を前記重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行って、前記新学習データを作成し、当該新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成工程と、
を有することを特徴とする分類器作成方法。
【請求項１０】
前記仮の重みの数は、３以上であることを特徴とする請求項９に記載の分類器作成方法。
【請求項１１】
前記学習データサンプリング工程は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記仮の重みを乗じた個数になるように、前記少数クラスの学習データの少なくとも一部を複製することを、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成し、
前記分類器作成工程は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記重みの最適値を乗じた個数になるように、前記少数クラスの学習データを複製して新学習データを生成し、生成した新学習データを用いて前記分類器を作成することを特徴とする請求項９又は１０に記載の分類器作成方法。
【請求項１２】
前記学習データサンプリング工程は、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記仮の重みの逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除することを、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成し、
前記分類器作成工程は、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記重みの最適値の逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除して新学習データを生成し、生成した新学習データを用いて前記分類器を作成することを特徴とする請求項９又は１０に記載の分類器作成方法。
【請求項１３】
前記多数クラスの学習データの個数の減少に対する前記少数クラスの学習データの個数の増加の優先度、又は、前記少数クラスの学習データの個数の増加に対する前記多数クラスの学習データの個数の減少の優先度であって、０以上１以下の値をとる優先度をあらかじめ定め、前記仮の重みを用いて、前記少数クラスの学習データに対する仮の重みである少数クラス用の仮の重みと、前記多数クラスの学習データに対する仮の重みである多数クラス用の仮の重みとを導出する仮重み導出工程と、
前記優先度と、前記重みの最適値とを用いて、前記少数クラスの学習データに対する重みである少数クラス用の重みと、前記多数クラスの学習データに対する重みである少数クラス用の重みとを導出する重み導出工程と、を有し、
前記学習データサンプリング工程は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記少数クラス用の仮の重みを乗じた個数になるように、前記少数クラスの学習データの少なくとも一部を複製することと、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記多数クラス用の仮の重みの逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除することと、を、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成し、
前記分類器作成工程は、前記少数クラスの新学習データの個数が、前記少数クラスの学習データの個数に、前記少数クラス用の重みの最適値を乗じた個数になるように、前記少数クラスの学習データを複製することと、前記多数クラスの新学習データの個数が、前記多数クラスの学習データの個数に、前記多数クラス用の重みの最適値の逆数を乗じた個数になるように、前記多数クラスの学習データの一部を削除することと、を行って新学習データを生成し、生成した新学習データを用いて前記分類器を作成し、
前記優先度が、前記多数クラスの学習データの個数の減少に対する前記少数クラスの学習データの個数の増加の優先度である場合には、前記優先度の値が１であるときに、前記少数クラスの仮の重みが、前記仮の重みと同じになり、且つ、前記優先度の値が０であるときに、前記多数クラスの仮の重みが、前記仮の重みと同じになり、
前記優先度が、前記少数クラスの学習データの個数の増加に対する前記多数クラスの学習データの個数の減少の優先度である場合には、前記優先度の値が１であるときに、前記多数クラスの仮の重みが、前記仮の重みと同じになり、且つ、前記優先度の値が０であるときに、前記少数クラスの仮の重みが、前記仮の重みと同じになるようにしたことを特徴とする請求項９又は１０に記載の分類器作成方法。
【請求項１４】
前記評価値算出工程は、前記仮の分類器により前記学習データを前記２つのクラスの何れかに分類した結果に基づいて、少数クラスに分類した学習データの中に、実際に少数クラスに属する学習データが含まれている割合を表す適合率と、実際に少数クラスに属する学習データの中に、少数クラスに分類した学習データが含まれている割合である再現率と、を算出し、前記適合率と前記再現率との重み付き調和平均であるＦ値を前記評価値として算出することを特徴とする請求項９〜１３の何れか１項に記載の分類器作成方法。
【請求項１５】
前記仮重み決定工程は、それぞれが、前記上限値、前記下限値、前記上限値と下限値との和の１／２の値、を有する３つの仮の重みを導出し、
前記最適重み導出工程は、前記評価値が、前記重みの２次関数で表されると見なして前記評価値と重みとの関係を求めることを特徴とする請求項９〜１４の何れか１項に記載の分類器作成方法。
【請求項１６】
前記分類器は、決定木であることを特徴とする請求項９〜１５の何れか１項に記載の分類器作成方法。
【請求項１７】
請求項１〜８の何れか１項に記載の分類器作成装置の各手段としてコンピュータを機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分類器作成装置、分類器作成方法、及びコンピュータプログラムに関し、特に、与えられたデータが、２つのクラスの何れに属するのかを判断するための分類器を、クラスが既知である学習データを用いて自動的に構築するために用いて好適なものである。
【背景技術】
【０００２】
従来から、与えられたデータが、あるルールに基づいて２つのクラスの何れに属するのかを判断するための装置である分類器が様々な産業で利用されている。製造業では、例えば、センサによる製品の計測データ等から製品が良品であるか否かを自動的に判断するために分類器が利用される。また、医療分野では、例えば、検査結果から或る病気の疑いが高い否かを自動的に判断するために分類器が利用される。
【０００３】
このような分類器におけるルールを、クラスが既知である多数の学習データを用いて自動的に作成することを教師付き学習という。教師付き学習により分類器を作成する場合、学習データが属するクラスの構成比率が極端に偏っていると、高精度の分類器が作成されないことが多い。例えば、センサによる製品の計測データから製品が良品であるか否かを判断するためのルールを、正解率（予測したクラスが実際のクラスと一致する割合）が高くなるように作成すると、一般に不良品の個数は良品の個数よりも極端に少ないため、常に相対的に多数の学習データが属するクラス（良品）と予測する分類器、若しくは、相対的に多数の学習データが属するクラス（良品）と予測する頻度が極端に高い分類器となってしまうことがある。以下の説明では、「相対的に少数の学習データが属するクラス」を必要に応じて「少数クラス」と称し、「相対的に多数の学習データが属するクラス」を必要に応じて「多数クラス」と称する。
【０００４】
このようにクラスの構成比率が極端に偏っている学習データを用いて分類器を作成する場合には、少数クラスに属するはずのデータを多数クラスに属すると判断してしまうこと（所謂少数クラスのとりこぼし）をなるべく回避したいというケースが多い。例えば、多少は良品を不良品と判断することは許容するが、不良品を良品と判断してしまうことを回避したいというケースが、このようなケースに該当する。
【０００５】
しかしながら、前述したように、分類器のルールの学習アルゴリズムは、通常、正解率が極力高くなるように作られる。少数クラスのとりこぼしと、多数クラスのとりこぼしを同じ尺度で考慮することになるため、前記ケースのような要望に対応できず、高精度の分類器が得られないことが多い。
そこで、学習データを加工（サンプリング）して分類器を作成することが行われている。具体的には、少数クラスの学習データの数が、当該少数クラスの学習データの数のＮ倍（Ｎ＞１）になるように少数クラスの学習データの少なくとも一部を複製して少数クラスの学習データの数を増やし、このようにして数を増やした少数クラスの学習データと、多数クラスの学習データとを用いて、分類器のルールを作成するオーバーサンプリング法と称される方法がある。また、オーバーサンプリング法とは逆に、多数クラスの学習データの数が、当該多数クラスの学習データの数の１／Ｍ倍（Ｍ＞１）になるように多数クラスの学習データの一部を削除して多数クラスの学習データの数を減らし、このようにして数を減らした多数クラスの学習データと、少数クラスの学習データとを用いて、分類器のルールを作成するアンダーサンプリング法と称される方法がある。ここで、前述したＮやＭは「重み」と称されるものである。
【０００６】
このようなオーバーサンプリング法やアンダーサンプリング法を用いて分類器を構成する場合、前述した重みＮ、Ｍの値により、分類器の性能が異なるので、重みの値を適切に決定することが必要となる。
非特許文献１に記載の技術では、多数クラスの学習データの個数を少数クラスに属する学習データの個数で割った値を、オーバーサンプリング法における重みＮとしている（Ｎ＝多数クラスに属する学習データの個数／少数クラスに属する学習データの個数）。非特許文献１に記載の技術では、このようにして少数クラスの学習データの個数と多数クラスの学習データの個数とを同じにすることで、学習データが属するクラスの構成比率の偏りを補正する。
【０００７】
また、特許文献１に記載の技術では、少数クラスと多数クラスの平均個数Ｐを算出し、平均個数Ｐを少数クラスに属する学習データの個数で割った値を、重みＮとすると共に（Ｎ＝Ｐ／少数クラスに属する学習データの個数）、平均個数Ｐを多数クラスに属する学習データの個数で割った値の逆数を、重みＭ（１／Ｍ＝Ｐ／多数クラスに属する学習データの個数）としている。
特許文献１に記載の技術では、少数クラスに属する学習データの個数と、多数クラスに属する学習データの個数とを、共に、それらの平均個数Ｐに揃えることで、学習データが属するクラスの構成比率の偏りを補正する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−２０４９６６号公報
【非特許文献】
【０００９】
【非特許文献１】亀井靖高、門田暁人、松本健一著、「Fault-proneness モデルへのオーバーサンプリング法の適用」、ソフトウェア信頼性研究会 第３回ワークショップ、pp.97-103、July 2006.
【非特許文献２】山口和範、高橋淳一著、「よくわかる多変量解析の基本と仕組み」、秀和システム、２００４年
【発明の概要】
【発明が解決しようとする課題】
【００１０】
前述した特許文献１や非特許文献１では、少数クラスに属する学習データの個数と多数クラスに属する学習データの個数との偏りを無くせば、性能の高い分類器が得られるという仮定に基づいている。
しかしながら、この仮定が成り立つことは少ない。クラスの構成比率に偏りがある学習データを用いて分類器を作成するときには、それらの属性の分布を調べると、多数クラスの学習データの中に少数クラスの学習データが分布している場合が多い。よって、多数クラスの中から少数クラスを正確に抜き出すような分類器を作成する必要がある。
【００１１】
図９は、クラスの構成比率に偏りがある各学習データの属性の一例を示す図である。
図９において、○は、少数クラスの学習データを示し、×は、多数クラスの学習データを示す。
図９に示す例では、少数クラスは、点線の円内にしか分布していない。したがって、この点線の円から遠い位置にある多数クラスのデータ（図９の紙面に向かって左側に位置する×で示される多数クラスのデータ）は分類器の学習にとっては不必要なデータである。よって、多数クラスに属する学習データの個数と等しくなるように少数クラスの学習データをオーバーサンプリングにより増やすのは明らかに冗長である。
【００１２】
一方、少数クラスに属する学習データの個数と等しくなるように多数クラスの学習データをアンダーサンプリングにより一律に減らすのも、点線の円内にある多数クラスの学習データを不必要に削除することになるため、行き過ぎである。すなわち、点線の円内にある多数クラスの学習データは、少数クラスの学習データとの境界を定めるために必要な学習データであるのにも関わらず、このような学習データを削除することになる。
【００１３】
本発明者らは、このような新たな知見に基づき、サンプリング後の少数クラスに属する学習データの個数は、多数クラスに属する学習データの個数以下で良いという認識に至った。すなわち、「１」以上、「多数クラスに属する学習データの個数／少数クラスに属する学習データの個数」以下の間に、重みＮ、Ｍの最適値が存在するという認識に至った。
【００１４】
本発明は、このような認識を基にしてなされたものであり、与えられたデータが、２つのクラスの何れに属するのかを判断するための分類器を、クラスが付与された学習データを用いて自動的に構築する際に、一方のクラスに属する学習データの個数が他方のクラスの個数よりも極端に少ない場合でも、過不足なく学習データをサンプリングし、データを高精度に分類できる分類器を構築することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の分類器作成装置は、２つのクラスの何れのクラスに属するのかが既知である学習データのうち、相対的に少数の学習データが属するクラスである少数クラスの学習データの個数を重みに応じた倍率で増やすことと、相対的に多数の学習データが属するクラスである多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行うことにより、前記学習データの数を変更して新学習データを作成し、当該新学習データを用いて、与えられたデータが２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成装置であって、前記多数クラスの学習データの個数を前記少数クラスの学習データの個数で割った値以下で、１以上の値の範囲の中から、前記重みの上限値と下限値を定め、前記上限値と下限値の範囲から値が相互に異なる複数の仮の重みを決定する仮重み決定手段と、前記少数クラスの学習データの個数を前記仮の重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記仮の重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成する学習データサンプリング手段と、前記学習データサンプリング手段により学習データの個数が変更された後の前記新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための仮の分類器を作成することを、前記新学習データのセット毎に行って、複数の前記仮の分類器を得る学習手段と、前記仮の分類器により前記学習データを前記２つのクラスの何れかに分類した結果に基づいて、前記学習手段により得られた仮の分類器の性能を評価する評価値を算出することを、前記複数の仮の分類器毎に行って、複数の前記評価値を得る評価値算出手段と、前記評価値算出手段により得られた評価値と、当該評価値を得る際に用いられた仮の重みとを用いて、評価値と重みとの関係を求め、求めた関係において、前記下限値から前記上限値までの範囲で最も大きな値を有する評価値に対応する重みを、重みの最適値として導出する最適重み導出手段と、前記重みの最適値を前記重みとして用いて、前記少数クラスの学習データの個数を前記重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行って、前記新学習データを作成し、当該新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成手段と、を有することを特徴とする。
【００１６】
本発明の分類器作成方法は、２つのクラスの何れのクラスに属するのかが既知である学習データのうち、相対的に少数の学習データが属するクラスである少数クラスの学習データの個数を重みに応じた倍率で増やすことと、相対的に多数の学習データが属するクラスである多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行うことにより、前記学習データの数を変更して新学習データを作成し、当該新学習データを用いて、与えられたデータが２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成方法であって、前記多数クラスの学習データの個数を前記少数クラスの学習データの個数で割った値以下で、１以上の値の範囲の中から、前記重みの上限値と下限値を定め、前記上限値と下限値の範囲から値が相互に異なる複数の仮の重みを決定する仮重み決定工程と、前記少数クラスの学習データの個数を前記仮の重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記仮の重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を、前記複数の仮の重み毎に行って、前記新学習データの複数のセットを作成する学習データサンプリング工程と、前記学習データサンプリング工程により学習データの個数が変更された後の前記新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための仮の分類器を作成することを、前記新学習データのセット毎に行って、複数の前記仮の分類器を得る学習工程と、前記仮の分類器により前記学習データを前記２つのクラスの何れかに分類した結果に基づいて、前記学習工程により得られた仮の分類器の性能を評価する評価値を算出することを、前記複数の仮の分類器毎に行って、複数の前記評価値を得る評価値算出工程と、前記評価値算出工程により得られた評価値と、当該評価値を得る際に用いられた仮の重みとを用いて、評価値と重みとの関係を求め、求めた関係において、前記下限値から前記上限値までの範囲で最も大きな値を有する評価値に対応する重みを、重みの最適値として導出する最適重み導出工程と、前記重みの最適値を前記重みとして用いて、前記少数クラスの学習データの個数を前記重みに応じた倍率で増やすことと、前記多数クラスの学習データの個数を前記重みの逆数に応じた倍率で減らすことと、の少なくとも何れか一方を行って、前記新学習データを作成し、当該新学習データを用いて、与えられた学習データが前記２つのクラスの何れに属するのかを判断するための分類器を作成する分類器作成工程と、を有することを特徴とする。
【００１７】
本発明のコンピュータプログラムは、前記分類器作成装置の各手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、多数クラスの学習データの個数を少数クラスの学習データの個数で割った値以下で、１以上の値の範囲の中から、重みの上限値と下限値を定め、その上限値と下限値の範囲の中から、分類器に対する評価値として最も高い値を有する評価値に対応する重みを重みの最適値とし、当該重みの最適値を用いて学習データをサンプリングして分類器を作成するようにした。よって、一方のクラスに属する学習データの個数が他方のクラスに属する学習データの個数よりも極端に少ない場合でも、過不足なく学習データをサンプリングし、データを高精度に分類できる分類器を構築することができる。
【図面の簡単な説明】
【００１９】
【図１】分類器作成装置の構成の一例を示す図である。
【図２】決定木の一例を示す図である。
【図３】混合行列の一例を説明する図である。
【図４】Ｆ値と重みＮとの関係の一例を示す図である。
【図５】分類器作成装置の処理の一例を説明するフローチャートである。
【図６】学習データサンプリング処理の詳細を説明するフローチャートである。
【図７】最適重み導出処理を説明するフローチャートである。
【図８】実施例、比較例における混合行列を示す図である。
【図９】クラスの構成比率に偏りがある各学習データの属性の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照しながら、本発明の一実施形態を説明する。
［第１の実施形態］
まず、本発明の第１の実施形態について説明する。
（分類器作成装置１００の構成）
図１は、分類器作成装置１００の構成の一例を示す図である。図１に示す分類器作成装置１００は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、及び各種のインターフェースを備えたコンピュータシステム（情報処理装置）を用いることにより実現される。分類器作成装置１００が作成する分類器は、与えられたデータの属性をルールに当てはめて、当該データが２つのクラスの何れに属するのかを判断するものである。以下に、分類器作成装置１００が有する機能の一例を説明する。尚、本実施形態では、決定木により、分類器のルールを構築する場合を例に挙げて説明する。決定木とは、データの分析手法の一つであって、図２に示すように、データを様々な条件に従って木の枝葉のように分類していく分析手法である。図２に示す例では、最終的に良品及び不良品の何れかのクラスにデータが分類される。
【００２１】
＜学習データ入力部１０１＞
学習データ入力部１０１は、オペレータ（分類器の作成者）による操作等に基づいて、複数の学習データを入力する。複数の学習データのそれぞれは、正しいクラスが分かっている実績データである。学習データは、例えば、センサによる製品の計測データであり、クラスは、例えば、製品が良品であるか否かである。この場合、複数の学習データのそれぞれには、その学習データの基となる製品が良品又は不良品の何れであるのかを示す情報がクラスの情報として付与（内包）されている。学習データの数については、作成しようとする分類器に対して期待する性能や、分類器を作成する際の計算負荷等によって、適宜決定することができる。
【００２２】
学習データ入力部１０１は、例えば、ＣＰＵが、オペレータによるユーザインタフェースの操作に基づいて学習データを入力してＲＡＭ等に記憶することにより実現される。この他、例えばＣＰＵが、通信インターフェースを介して外部装置から学習データを入力してＲＡＭ等に記憶するようにしてもよい。さらに、ＣＰＵが、可搬型の記憶媒体に記憶された学習データを入力して（読み出して）ＲＡＭ等に記憶するようにしてもよい。
【００２３】
＜重み範囲入力部１０２＞
重み範囲入力部１０２は、オペレータによる操作等に基づいて、重みＮの範囲を入力する。前述したように、本発明者らは、「１」以上、「多数クラスに属する学習データの個数／少数クラスに属する学習データの個数」以下の間に、重みの最適値が存在するという新たな知見を得た。よって、重み範囲入力部１０２により入力される重みＮの範囲の下限値Ｎminが、「１」以上となり（Ｎmin≧１）、且つ、重み範囲入力部１０２により入力される重みＮの範囲の上限値Ｎmaxが、「（多数クラスに属する学習データの個数／少数クラスに属する学習データの個数）Ｎr」以下となるように（Ｎmax≦Ｎr）、重みＮの範囲がオペレータによって定められる。
【００２４】
重み範囲入力部１０２は、例えば、ＣＰＵが、オペレータによるユーザインタフェースの操作に基づいて重みＮの範囲を入力してＲＡＭ等に記憶することにより実現される。この他、例えばＣＰＵが、通信インターフェースを介して外部装置から重みＮの範囲を入力してＲＡＭ等に記憶するようにしてもよい。さらに、ＣＰＵが、可搬型の記憶媒体に記憶された重みＮの範囲を入力して（読み出して）ＲＡＭ等に記憶するようにしてもよい。
【００２５】
＜仮重み決定部１０３＞
仮重み決定部１０３は、重み範囲入力部１０２により入力された重みＮの範囲の中から、予め設定された方法で、予め設定された数の仮の重みＮ´を、値が重ならないように決定する。本実施形態では、以下の（１）式〜（３）式により、３つの仮の重みＮ´1、Ｎ´2、Ｎ´3を決定する場合を例に挙げて説明する。
仮の重みＮ´1＝Ｎmin  ・・・（１）
仮の重みＮ´2＝（Ｎmin＋Ｎmax）／２  ・・・（２）
仮の重みＮ´3＝Ｎmax  ・・・（３）
【００２６】
前述したように、本実施形態では、重みＮの範囲の下限値Ｎminが「１」以上であり、上限値Ｎmaxが「Ｎr」以下である。よって、Ｎmin＝１かつＮmax＝Ｎrのときには、（１）〜（３）式を用いて仮の重みを定めると、仮の重みＮ´1は、「１」となり、仮の重みＮ´2は、「（１＋Ｎr）／２」となり、仮の重みＮ´3は、「Ｎr」となる。
仮の重みの決定方法は、（１）〜（３）式以外でも構わない。本発明は、ＮminからＮmaxの範囲内で、複数の仮の重みと各々の評価値から、重みＮの最適値を予測する手法であるため、仮の重みの値の選択方法は、それぞれの仮の重みの値が重複せず、ＮminからＮmaxの範囲を広くカバーするように選択すれば良い。例えば、以下の（１）'式〜（３）'式を用いて仮の重みを決定しても良い。
仮の重みＮ´1＝Ｎmin＋１×（Ｎmax−Ｎmin）／４  ・・・（１）'
仮の重みＮ´2＝Ｎmin＋２×（Ｎmax−Ｎmin）／４  ・・・（２）'
仮の重みＮ´3＝Ｎmin＋３×（Ｎmax−Ｎmin）／４  ・・・（３）'  仮重み決定部１０３は、例えば、ＣＰＵが、ＲＡＭ等から、重みＮの範囲を読み出して、（１）式〜（３）式等の計算を行うことにより仮の重みＮ´の値を求めてＲＡＭ等に記憶することにより実現される。
【００２７】
＜学習データサンプリング部１０４＞
学習データサンプリング部１０４は、仮重み決定部１０３で決定された複数の仮の重みＮ´のそれぞれを用いて、学習データ入力部１０１により入力された学習データのうち、少数クラスに属する学習データをオーバーサンプリングして、少数クラスに属する学習データの数を増加させた新学習データを作成する。
学習データサンプリング部１０４により、仮の重みＮ´のそれぞれについて新学習データが得られる。本実施形態では、３つの仮の重みＮ´1、Ｎ´2、Ｎ´3に対応して、学習データサンプリング部１０４により、新学習データのセットが３つ得られる。本実施形態では、学習データサンプリング部１０４は、これら新学習データのセットを個別に求めるために、３つの学習データサンプリング部（第１の学習データサンプリング部１０４ａ、第２の学習データサンプリング部１０４ｂ、第３の学習データサンプリング部１０４ｃ）を有する。第１、第２、第３の学習データサンプリング部１０４ａ、１０４ｂ、１０４ｃは、それぞれ、仮の重みＮ´1、Ｎ´2、Ｎ´3を用いて少数クラスに属する学習データをオーバーサンプリングする。
【００２８】
尚、使用する仮の重みＮ´の値が異なる他は、第１、第２、第３の学習データサンプリング部１０４ａ、１０４ｂ、１０４ｃの機能は同じである。よって、ここでは、仮の重みＮ´2を用いて少数クラスに属する学習データをサンプリングする第２の学習データサンプリング部１０４ｂについて説明し、その他の第１、第３の学習データサンプリング部１０４ａ、１０４ｃについての詳細な説明を省略する。
【００２９】
第２の学習データサンプリング部１０４ｂは、多数クラスの学習データを必ず新学習データに追加する。また、第２の学習データサンプリング部１０４ｂは、少数クラスに属する学習データを、平均的に仮の重みＮ´2の回数だけ繰り返し複製して新学習データに追加する。
具体的に、第２の学習データサンプリング部１０４ｂは、学習データを識別するデータ番号ｉ（ｉ＝０、１、２、・・・）が付与された各学習データのそれぞれについて、データ番号ｉが小さい学習データから順に以下の処理を行う。
【００３０】
まず、第２の学習データサンプリング部１０４ｂは、データ番号ｉの学習データが、少数クラスに属する学習データであるか否かを判定する。この判定の結果、データ番号ｉの学習データが、少数クラスに属する学習データでない場合（多数クラスに属する学習データである場合）、第２の学習データサンプリング部１０４ｂは、データ番号ｉの学習データを新学習データとして採用する。
【００３１】
一方、データ番号ｉの学習データが、少数クラスに属する学習データである場合、第２の学習データサンプリング部１０４ｂは、学習データの累積追加個数ｐ（ｐ＝０、１、２、・・・）の値が、その上限値ｑ（ｑの初期値は仮の重みＮ´2とする）以上となるまで、データ番号ｉの学習データを繰り返し新学習データとして採用する。そして、第２の学習データサンプリング部１０４ｂは、現在の上限値ｑに仮の重みＮ´2を加えた値を新たな上限値ｑとする。
例えば、仮の重みＮ´2の値が「２．５」である場合、少数クラスに属する学習データは、データ番号ｉが小さいものから順に３回、２回ずつ交互に繰り返し新学習データとして採用される。
学習データサンプリング部１０４は、例えば、ＣＰＵが、以上の処理を行うことにより、仮の重みＮ´のそれぞれに基づいて、少数クラスに属する学習データをオーバーサンプリングして新学習データを作成し、新学習データをＲＡＭ等に記憶することにより実現される。
【００３２】
＜学習部１０５＞
学習部１０５は、学習データサンプリング部１０４で得られた新学習データのセットを、新学習データのセット毎に学習して、正解率（分類器で予測したクラスが実際のクラスと一致する割合）が最も高くなるような仮の分類器を、新学習データのセットの数と同じ数だけ作成する。
本実施形態では、学習データサンプリング部１０４により、新学習データのセットが３つ得られる。よって、学習部１０５により３つの仮の分類器が得られる。学習部１０５は、これら３つの仮の分類器を個別に作成するために、３つの学習部（第１の学習部１０５ａ、第２の学習部１０５ｂ、第３の学習部１０５ｃ）を有する。第１、第２、第３の学習部１０５ａ、１０５ｂ、１０５ｃは、それぞれ、第１、第２、第３の学習データサンプリング部１０４ａ、１０４ｂ、１０４ｃにより得られた新学習データを学習して仮の分類器を作成する。
【００３３】
分類器である決定木を作成するための学習アルゴリズムは、例えば、非特許文献２等に記載されている公知の技術を用いて実現することができる。よって、ここでは、分類器を作成するための学習アルゴリズムの詳細な説明を省略する。
学習部１０５は、例えば、ＣＰＵが、新学習データの組毎に新学習データを学習し、新学習データの組の数と同数の仮の分類器を作成し、作成した仮の分類器の情報をＲＡＭ等に記憶することにより実現される。
【００３４】
＜評価値算出部１０６＞
評価値算出部１０６は、学習部１０５で得られた複数の仮の分類器のそれぞれを、元の学習データを用いて評価し、評価値を算出する。本実施形態では、学習部１０５により、３つの仮の分類器が作成されるので、３つの評価値が得られる。これら３つの評価値を求めるために、評価値算出部１０６は、３つの評価値算出部（第１の評価値算出部１０６ａ、第２の評価値算出部１０６ｂ、第３の評価値算出部１０６ｃ）を有する。第１、第２、第３の評価値算出部１０６ａ、１０６ｂ、１０６ｃは、それぞれ、第１、第２、第３の学習部１０５ａ、１０５ｂ、１０５ｃにより得られた分類器の評価値を算出する。
【００３５】
本実施形態では、分類器の評価値として、非特許文献１等に記載されているＦ値を用いる場合を例に挙げて説明する。尚、評価の対象となる分類器が異なる他は、第１、第２、第３の評価値算出部１０６ａ、１０６ｂ、１０６ｃの機能は同じである。よって、ここでは、第１の評価値算出部１０６ａについて説明を行い、その他の第２、第３の評価値算出部１０６ｂ、１０６ｃについての詳細な説明を省略する。
【００３６】
まず、第１の評価値算出部１０６ａは、学習データ入力部１０１により入力された元の学習データを、第１の学習部１０５ａにより作成された仮の分類器に入力して分類し、混合行列を作成する。
図３は、混合行列の一例を説明する図である。図３において、ｎ11は、実績（実際のクラス）が多数クラスである学習データを正しく予測した個数であり、ｎ12は、実績が多数クラスである学習データを間違って予測した個数である。また、ｎ22は、実績が少数クラスである学習データを正しく予測した個数であり、ｎ21は、実績が少数クラスである学習データを間違って予測した個数である。
【００３７】
第１の評価値算出部１０６ａは、これらの値ｎ11、ｎ12、ｎ21、ｎ22を用いて、以下の（４）式に示す適合率と、以下の（５）式に示す再現率を計算する。
適合率＝ｎ22／（ｎ12＋ｎ22）  ・・・（４）
再現率＝ｎ22／（ｎ21＋ｎ22）  ・・・（５）
適合率とは、少数クラスと予測された学習データのうち、実際に少数クラスに属する学習データの割合である。例えば、学習データが、センサによる製品の計測データであり、クラスが、製品が良品であるか否かである場合、この適合率は、不良品と予測された製品の中に、本当に不良品の製品がどのくらい割合で含まれているのかを示すものである。
再現率とは、実際に少数クラスに属する学習データのうち、少数クラスと予測された学習データの割合である。前述した例では、この再現率は、本当に不良品の製品の中に、不良品であると予測された製品がどのくらいの割合で含まれているのかを示すものである。
再現率と適合率は、何れも、値が大きい程、評価が高いことを表すものである。
【００３８】
次に、第１の評価値算出部１０６ａは、これらの適合率及び再現率と、予め値が設定されている調整係数β（通常は１）とを用いて、以下の（６）式に示すＦ値を計算する。
【００３９】
【数１】
0005733229.tif 000002
【００４０】
（６）式に示すように、Ｆ値は、適合率と再現率との重み付き調和平均値である。
以上のようにして、第１、第２、第３の評価値算出部１０６ａ、１０６ｂ、１０６ｃは、第１、第２、第３の学習部１０５ａ、１０５ｂ、１０５ｃにより得られた分類器の評価値としてＦ値Ｆ1、Ｆ2、Ｆ3を得る。
評価値算出部１０６は、例えば、ＣＰＵが、複数の仮の分類器のそれぞれに対する評価値（Ｆ値）を算出してＲＡＭ等に記憶することにより実現される。
【００４１】
＜最適重み導出部１０７＞
最適重み導出部１０７は、仮重み決定部１０３で得られた複数の仮の重みＮ´と、それらに対応して評価値算出部１０６で得られた複数の評価値Ｆとを用いて、重みの最適値Ｎoptを算出する。本実施形態では、３つの仮の重みＮ´1、Ｎ´2、Ｎ´3と、それらに対応する３つのＦ値Ｆ1、Ｆ2、Ｆ3とを用いて、重みの最適値Ｎoptが得られる。
本実施形態では、重みＮとＦ値との関係Ｆ（Ｎ）を、以下の（７）式に示す２次関数で近似する。最適重み導出部１０７は、３つの仮の重みとＦ値との組（Ｎ´1，Ｆ1）、（Ｎ´2，Ｆ2）、（Ｎ´3，Ｆ3）から、以下の（７）式に示す２次関数の係数ａ、ｂ、ｃを、以下の（８）式〜（１０）式により算出する。
【００４２】
【数２】
0005733229.tif 000003
【００４３】
（７）式において、Ｆ（Ｎ）は、Ｆ値がＮの関数で表されることを示し、Ｎは、重み変数（重み）を示す。
最適重み導出部１０７は、（８）式〜（１０）式により算出した係数ａ、ｂ、ｃと、重みＮの範囲の下限値である「Ｎmin」とを（７）式に代入して、重みＮの値がＮminであるときのＦ値Ｆ（Ｎmin）を算出する。また、最適重み導出部１０７は、（８）式〜（１０）式により算出した係数ａ、ｂ、ｃと、重みＮの範囲の上限値である「Ｎmax」とを（７）式に代入して、重みＮの値がＮmaxであるときのＦ値Ｆ（Ｎmax）を算出する。
【００４４】
最適重み導出部１０７は、前述したようにして算出した係数ａ、ｂ、ｃに基づいて、（７）式に示す２次関数が上に凸の関数であるか否かを判定する。具体的に、以下の（１１）式の関係を満たす場合に、（７）式に示す２次関数が上に凸の関数となる。
ａ＋ｂ＋ｃ＜０  ・・・（１１）
【００４５】
ここで、３つの異なる点を通る２次関数が（７）式のように表せることと、以下の（１１）式の関係を満たす場合に（７）式に示す２次関数が上に凸の関数となることと、を説明する。
まず、任意の３つの異なる点（ｘ1，ｙ1）、（ｘ2，ｙ2）、（ｘ3，ｙ3）を通る２次関数は、係数ａ、ｂ、ｃを用いると以下の（１２）式で表される。
【００４６】
【数３】
0005733229.tif 000004
【００４７】
点（ｘ1，ｙ1）を（１２）式に代入すると、以下の（１３）式が得られる。さらに、点（ｘ2，ｙ2）、点（ｘ3，ｙ3）をそれぞれ（１２）式に代入すると、以下の（１４）式、（１５）式が得られる。
【００４８】
【数４】
0005733229.tif 000005
【００４９】
以上より、３つの異なる点（ｘ1，ｙ1）、（ｘ2，ｙ2）、（ｘ3，ｙ3）を通る２次関数は、（１３）式、（１４）式、（１５）式で算出される係数ａ、ｂ、ｃを持つ（１２）式の関数となる。ここで、ｘ1をＮ´1、ｙ1をＦ1、ｘ2をＮ´2、ｙ2をＦ2、ｘ3をＮ´3、ｙ3をＦ3に置き換えれば、（１２）式が（７）式に、（１３）式が（８）式に、（１４）式が（９）式に、（１５）式が（１０）式に対応することになる。このように、３つの異なる点を通る２次関数は、（７）式のように表すことができる。
【００５０】
次に、（１２）式をｘで微分すると、以下の（１６）式が得られる。したがって、２次関数ｙの極値ｘoptは、（１６）式の右辺の値が０（ゼロ）であるときのｘの値であるため、以下の（１７）式のようにして求められる。
【００５１】
【数５】
0005733229.tif 000006
【００５２】
極値ｘoptにおいて２次関数ｙが上に凸である条件は、（１２）式の２階微分の値が極値ｘoptにおいて負ということであるから、以下の（１８）式、（１９）式のようになる。
【００５３】
【数６】
0005733229.tif 000007
【００５４】
よって、前述したように、（１１）式の関係を満たす場合に（７）式に示す２次関数が上に凸の関数となる。
以上のように（１１）式の関係を満たす場合（（７）式に示す２次関数が上に凸の関数である場合）、最適重み導出部１０７は、以下の（２０）式により、（７）式に示す２次関数の極大値に対応する重みＮoptを算出する。
【００５５】
【数７】
0005733229.tif 000008
【００５６】
最適重み導出部１０７は、（２０）式により算出した重みＮの値が、重みＮの範囲の下限値である「Ｎmin」以上、重みＮの範囲の上限値である「Ｎmax」以下の範囲にあるか否かを判定する。
この判定の結果、（２０）式により算出した重みＮの値が、「Ｎmin」以上、「Ｎmax」以下の範囲内である場合、最適重み導出部１０７は、（２０）式により算出した重みＮを重みの最適値Ｎoptとする。
一方、（２０）式により算出した重みＮの値が、「Ｎmin」以上、「Ｎmax」以下の範囲内でない場合、最適重み導出部１０７は、重みＮの範囲の下限値である「Ｎmin」に対応するＦ値Ｆ（Ｎmin）と、重みＮの範囲の上限値である「Ｎmax」に対応するＦ値Ｆ（Ｎmax）とのうち、値が大きい方のＦ値に対応する重みＮ（「Ｎmin」又は「Ｎmax」）を重みの最適値Ｎoptとして選択する。
【００５７】
また、（１１）式の関係を満たさない場合（（７）式に示す２次関数が上に凸の関数でない場合）も同様に、最適重み導出部１０７は、Ｆ（Ｎmin）とＦ（Ｎmax）とのうち、値が大きい方のＦ値に対応する重みＮ（「Ｎmin」又は「Ｎmax」）を重みの最適値Ｎoptとして選択する。
【００５８】
図４は、Ｆ値と重みＮとの関係の一例を示す図である。図４では、（７）式に示す２次関数が上に凸の関数である場合を例に挙げて示している。Ｆ値の値が大きいほど、分類器の評価は高くなるので、図４に示す例では、Ｆ値が極大値となるときの重みＮが重みの最適値Ｎoptとなる。
最適重み導出部１０７は、例えば、ＣＰＵが、重みの最適値Ｎoptを算出してＲＡＭ等に記憶することにより実現される。
【００５９】
＜学習データサンプリング部１０８＞
学習データサンプリング部１０８は、最適重み導出部１０７で得られた重みの最適値Ｎoptを用いて、学習データ入力部１０１により入力された学習データのうち、少数クラスに属する学習データをオーバーサンプリングして、少数クラスに属する学習データを増加させた新学習データを作成する。少数クラスに属する学習データをオーバーサンプリングする方法は、学習データサンプリング部１０４の説明で示した方法と同じ方法で実現されるので、ここでは、その詳細な説明を省略する。
学習データサンプリング部１０８は、例えば、ＣＰＵが、重みの最適値Ｎoptに基づいて、少数クラスに属する学習データをオーバーサンプリングして新学習データを作成し、新学習データをＲＡＭ等に記憶することにより実現される。
【００６０】
＜学習部１０９、分類器格納部１１０＞
学習部１０９は、学習データサンプリング部１０８で得られた新学習データを学習して、正解率が最も高くなるような分類器を（１つ）作成し、分類器格納部１１０に格納する。前述したように、分類器である決定木を作成するための学習アルゴリズムは、公知の技術を用いて実現することができるので、ここでは、分類器を作成するための学習アルゴリズムの詳細な説明を省略する。
学習部１０９は、例えば、ＣＰＵが、新学習データを学習して分類器を作成し、作成した分類器の情報をＨＤＤ等に記憶することにより実現される。分類器格納部１１０は、例えば、ＨＤＤ等により実現される。
【００６１】
分類器作成装置１００は、以上のようにして得られた分類器を用いて、評価の対象となるデータが２つのクラスの何れに属するのかを判断し、判断した結果を出力する。出力の形態としては、例えば、表示装置への表示、記憶媒体への記憶、外部装置への送信等がある。尚、このように、分類器作成装置１００が、分類器を作成することと、分類器を使用したデータの分類との双方を行うようにしても、分類器作成装置１００が作成した分類器を、分類器作成装置１００とは異なる別の情報処理装置に移管し、当該情報処理装置が、当該分類器を用いてデータの分類を行うようにしてもよい。
【００６２】
（動作フローチャート）
次に、図５のフローチャートを参照しながら、分類器作成装置１００の処理の一例を説明する。
まず、ステップＳ５０１において、学習データ入力部１０１は、オペレータによる操作等に基づいて、複数の学習データを入力する。
次に、ステップＳ５０２において、重み範囲入力部１０２は、重みＮの範囲を入力する。重み範囲入力部１０２は、入力した重みＮの範囲の下限値Ｎminが、「１」以上であり、且つ、重みＮの範囲の上限値Ｎmaxが、「Ｎr」以下である場合に限り、入力した重みＮの範囲を受け付け、それ以外の場合には、表示画面等を使用して、重みＮの範囲の再度の入力をオペレータに促すようにする。
【００６３】
次に、ステップＳ５０３において、仮重み決定部１０３は、ステップＳ５０２で入力された重みＮの範囲の中から、３つの仮の重みＮ´1、Ｎ´2、Ｎ´3を決定する。
次に、ステップＳ５０４において、学習データサンプリング部１０４は、ステップＳ５０３で決定された仮の重みＮ´1、Ｎ´2、Ｎ´3をこの順番で１つずつ選択する。
次に、ステップＳ５０５において、学習データサンプリング部１０４は、ステップＳ５０４で選択された仮の重みＮ´を用いて少数クラスに属する学習データをオーバーサンプリングし、新学習データを作成する学習データサンプリング処理を行う。尚、学習データサンプリング処理の詳細については、図６を参照しながら後述する。
【００６４】
次に、ステップＳ５０６において、学習部１０５は、ステップＳ５０５で得られた新学習データを学習して、正解率が最も高くなるような仮の分類器を作成する。
次に、ステップＳ５０７において、評価値算出部１０６は、ステップＳ５０６で得られた仮の分類器に対する評価値であるＦ値を、ステップＳ５０１で入力された学習データを用いて算出する。
【００６５】
次に、ステップＳ５０８において、学習データサンプリング部１０４は、ステップＳ５０３で決定された仮の重みＮ´1、Ｎ´2、Ｎ´3の全て（すなわちＮ´3）を選択したか否かを判定する。この判定の結果、ステップＳ５０３で決定された仮の重みＮ´1、Ｎ´2、Ｎ´3の全てを選択していない場合には、ステップＳ５０４に戻る。そして、ステップＳ５０３で決定された仮の重みＮ´1、Ｎ´2、Ｎ´3の全てについて、仮の分類器の作成と、その評価値（Ｆ値）の導出とが終了するまで、ステップＳ５０４〜Ｓ５０８の処理を繰り返し行う。
【００６６】
ステップＳ５０８において、ステップＳ５０３で決定された仮の重みＮ´1、Ｎ´2、Ｎ´3の全てを選択したと判定されると、ステップＳ５０９に進む。
ステップＳ５０９に進むと、最適重み導出部１０７は、ステップＳ５０３で得られた仮の重みＮ´1、Ｎ´2、Ｎ´3と、それらに対応して評価値算出部１０６で得られた複数のＦ値Ｆ1、Ｆ2、Ｆ3とを用いて、重みの最適値Ｎoptを導出する最適重み導出処理を行う。尚、最適重み導出処理の詳細については、図７を参照しながら後述する。
【００６７】
次に、ステップＳ５１０において、学習データサンプリング部１０８は、ステップＳ５０５と同様の学習データサンプリング処理を行って、ステップＳ５０９で得られた重みの最適値Ｎoptを用いて少数クラスに属する学習データをオーバーサンプリングし、新学習データを作成する。
次に、ステップＳ５１１において、学習部１０９は、ステップＳ５１０で得られた新学習データを学習して、正解率が最も高くなるような分類器を（１つ）作成し、分類器格納部１１０に格納する。
そして、図５のフローチャートによる処理を終了する。
【００６８】
次に、図６のフローチャートを参照しながら、図５のステップＳ５０５、Ｓ５１０の学習データサンプリング処理の詳細を説明する。尚、図５のステップＳ５０５の学習データサンプリング処理においては、第１、第２、第３の学習データサンプリング部１０４ａ、１０４ｂ、１０４ｃの順に、以下の処理を行うものとする。また、図５のステップＳ５１０の学習データサンプリング処理は、仮の重みＮ´を重みの最適値Ｎoptにすることが、ステップＳ５０５の学習データサンプリング処理と異なるだけである。よって、ここでは、図５のステップＳ５１０の学習データサンプリング処理の詳細についてのみ説明する。
【００６９】
まず、ステップＳ６０１において、学習データサンプリング部１０４は、データ番号ｉの値を初期値（＝０（ゼロ））、学習データの累積追加個数ｐの値を初期値（＝０（ゼロ））、学習データの累積追加個数ｐの上限値ｑを初期値（＝図５のステップＳ５０４で選択された仮の重みＮ´）とする。
次に、ステップＳ６０２において、学習データサンプリング部１０４は、図５のステップＳ５０１で入力された学習データの中から、データ番号ｉの学習データを選択する。
【００７０】
次に、ステップＳ６０３において、学習データサンプリング部１０４は、データ番号ｉの学習データが少数クラスに属する学習データであるか否かを判定する。
この判定の結果、データ番号ｉの学習データが少数クラスに属する学習データである場合には、後述するステップＳ６０７に進む。一方、データ番号ｉの学習データが少数クラスに属する学習データでない場合（多数クラスである場合）には、ステップＳ６０４に進む。
【００７１】
ステップＳ６０４に進むと、学習データサンプリング部１０４は、データ番号ｉの学習データを新学習データとして採用する。
次に、ステップＳ６０５において、学習データサンプリング部１０４は、図５のステップＳ５０１で入力された学習データの全てを選択したか否かを判定する。この判定の結果、学習データの全てを選択した場合には、図６のフローチャートによる処理を終了する。
一方、学習データの全てを選択していない場合には、ステップＳ６０６に進む。
【００７２】
ステップＳ６０６に進むと、学習データサンプリング部１０４は、データ番号ｉに「１」を加算し、データ番号ｉを更新する。
そして、次のデータ番号ｉの学習データに対して、ステップＳ６０２以降の処理を行う。
前述したように、ステップＳ６０３の判定の結果、データ番号ｉの学習データが少数クラスに属する学習データである場合には、ステップＳ６０７に進む。
【００７３】
ステップＳ６０７に進むと、学習データサンプリング部１０４は、学習データの累積追加個数ｐの値が、その上限値ｑ未満（ｐ＜ｑ）であるか否かを判定する。この判定の結果、学習データの累積追加個数ｐの値が、その上限値ｑ未満である場合には、ステップＳ６０８に進む。
ステップＳ６０８に進むと、学習データサンプリング部１０４は、データ番号ｉの学習データを新学習データとして採用する。
次に、ステップＳ６０９において、学習データサンプリング部１０４は、学習データの累積追加個数ｐに「１」を加算し、学習データの累積追加個数ｐの値を更新する。
【００７４】
そして、ステップＳ６０７に進み、学習データの累積追加個数ｐの値が、その上限値ｑ以上となるまで、ステップＳ６０７〜Ｓ６０９の処理を繰り返し行う。
そして、学習データの累積追加個数ｐの値が、その上限値ｑ以上になると（ｐ≧ｑ）、ステップＳ６１０に進む。ステップＳ６１０に進むと、学習データサンプリング部１０４は、学習データの累積追加個数ｐの上限値ｑに、図５のステップＳ５０４で選択された仮の重みＮ´を加算して、学習データの累積追加個数ｐの上限値ｑを更新する。そして、前述したステップＳ６０５に進む。
以上のステップＳ６０７〜Ｓ６１０の処理により、少数クラスに属する学習データが、平均的に仮の重みＮ´の回数だけ繰り返し新学習データとして採用される。
【００７５】
次に、図７のフローチャートを参照しながら、図５のステップＳ５０９の最適重み導出処理を説明する。
まず、ステップＳ７０１において、最適重み導出部１０７は、３つの仮の重みとＦ値との組（Ｎ´1，Ｆ1）、（Ｎ´2，Ｆ2）、（Ｎ´3，Ｆ3）から、（７）式に示す２次関数の係数ａ、ｂ、ｃを算出する（算出式は（８）式〜（１０）式を参照）。
次に、ステップＳ７０２において、最適重み導出部１０７は、ステップＳ７０１で得られた係数ａ、ｂ、ｃと、重みＮの範囲の下限値である「Ｎmin」とを（７）式に代入して、重みＮの値がＮminであるときのＦ値Ｆ（Ｎmin）を算出する。また、最適重み導出部１０７は、ステップＳ７０１で得られた係数ａ、ｂ、ｃと、重みＮの範囲の上限値である「Ｎmax」とを（７）式に代入して、重みＮの値がＮmaxであるときのＦ値Ｆ（Ｎmax）を算出する。
【００７６】
次に、ステップＳ７０３において、最適重み導出部１０７は、ステップＳ７０１で得られた係数ａ、ｂ、ｃに基づいて、（７）式に示す２次関数が上に凸の関数であるか否かを判定する。ステップＳ７０１で得られた係数ａ、ｂ、ｃが（１１）式の関係を満たす場合に、（７）式に示す２次関数が上に凸の関数であると判定される。
この判定の結果、（７）式に示す２次関数が上に凸の関数である場合には、ステップＳ７０４に進む。
ステップＳ７０４に進むと、最適重み導出部１０７は、（７）式に示す２次関数の極大値に対応する重みＮを算出する（（２０）式を参照）。
【００７７】
次に、ステップＳ７０５において、最適重み導出部１０７は、ステップＳ７０４で得られた重みＮの値が、重みＮの範囲の下限値である「Ｎmin」以上、重みＮの範囲の上限値である「Ｎmax」以下の範囲にあるか否かを判定する。
この判定の結果、ステップＳ７０４で得られた重みＮの値が、「Ｎmin」以上、「Ｎmax」以下の範囲にある場合には、ステップＳ７０６に進む。
ステップＳ７０６に進むと、最適重み導出部１０７は、ステップＳ７０４で得られた重みＮを、重みの最適値Ｎoptとして採用する。そして、図７のフローチャートによる処理を終了する。
【００７８】
ステップＳ７０３において、（７）式に示す２次関数が上に凸の関数でないと判定された場合と、ステップＳ７０５において、ステップＳ７０４で得られた重みＮの値が、「Ｎmin」以上、「Ｎmax」以下の範囲にないと判定された場合には、ステップＳ７０７に進む。
ステップＳ７０７に進むと、最適重み導出部１０７は、重みＮの範囲の下限値である「Ｎmin」に対応するＦ値Ｆ（Ｎmin）が、重みＮの範囲の上限値である「Ｎmax」に対応するＦ値Ｆ（Ｎmax）未満であるか否かを判定する。
この判定の結果、前記条件が成り立つ場合には、ステップＳ７０８に進む。
【００７９】
ステップＳ７０８に進むと、最適重み導出部１０７は、重みＮの範囲の上限値である「Ｎmax」を、重みの最適値Ｎoptとして採用する。そして、図７のフローチャートによる処理を終了する。
一方、ステップ７０７の判定条件が成り立たない場合には、ステップＳ７０９に進む。ステップＳ７０９に進むと、最適重み導出部１０７は、重みＮの範囲の下限値である「Ｎmin」を、重みの最適値Ｎoptとして採用する。そして、図７のフローチャートによる処理を終了する。
【００８０】
（実施例）
次に、本発明の実施例について説明する。本実施例では、鉄鋼製品を製造した後又は製造する過程で得られるデータから、当該鉄鋼製品が製造プロセスにおいて発生工程を通過するか否かを判断するための分類器を作成する場合について説明する。
鉄鋼製品を製造するプロセスでは、圧延・冷却した鉄鋼製品を作業者が検査する。そして、鉄鋼製品の曲がりが大きければ矯正工程にてその曲がりを矯正したり、鉄鋼製品の表面に疵があれば、手入工程にてグラインダーでその疵を研磨したりする等、鉄鋼製品を製造した後に通過の有無が判明する工程が存在する。このような工程は発生工程と呼ばれる。製品が発生工程を通過すると製造工期が延びる。このため、注文された製品を製造する際には、発生工程の通過の有無を製造前に予測して、客先の納期に間に合うように製造着手する必要がある。しかし、発生工程の通過の有無は製品のスペック（サイズや硬度等）から一意に決まるものではない。このため、過去の操業実績データから発生工程の通過の有無を予測して、その予測を元に製造着手日を決定することが行われる。
【００８１】
本実施例に対する比較例として、或る鉄鋼製造プロセスにおける発生工程の通過の有無を予測する決定木を、重みを付けずに（重み＝１に相当）作成した。決定木学習アルゴリズムとして、非特許文献２に記載のC5.0と呼ばれる情報エントロピーのゲイン比に基づく方法を利用した。図８（ａ）は、この決定木の性能を表す混同行列である。図８（ａ）に示すように、実績では51510枚の鉄鋼製品が発生工程を通過しているにも関わらず、この発生工程を通過すると予測した鉄鋼製品の枚数は1467枚となった。また、Ｆ値は２．４４［％］であった。
【００８２】
これと同じ決定木学習アルゴリズムを用いて、本実施形態で説明した手法で決定木を作成した。ここで、Ｆ値を算出する際の調整係数βの値を「１」とした（β＝１）。また、重みＮの範囲の下限値Ｎminを「１」とし、重みＮの範囲の上限値Ｎmaxを「１０」とした。また、仮の重みＮ´の数を「３」とした。また、仮の重みＮ´1、Ｎ´2、Ｎ´3を、（１）式、（２）式、（３）式により求めた。すなわち、仮の重みＮ´1の値を「１」とし（Ｎ´1＝１）、仮の重みＮ´2の値を「５．５」とし（Ｎ´2＝５．５）、仮の重みＮ´3の値を「１０」とした（Ｎ´3＝１０）。
【００８３】
これらの仮の重みＮ´1、Ｎ´2、Ｎ´3を用いて、本実施形態で説明した手法で少数クラスに属する学習データをオーバーサンプリングして新学習データのセットを３つ得た。そして、これらの３つの新学習データのセットを、前述した決定木学習アルゴリズムに適用して３つの決定木（仮の分類器）を作成した。仮の重みＮ´1、Ｎ´2、Ｎ´3を用いて作成した３つの仮の分類器の評価値であるＦ値Ｆ1、Ｆ2、Ｆ3は、２．４４［％］（＝０．０２４４）、２８．９［％］（＝０．２８９）、２５．４［％］（＝０．２５４）であった（Ｆ1＝０．０２４４、Ｆ2＝０．２８９、Ｆ3＝０．２５４）。
【００８４】
そして、重みＮとＦ値（Ｆ（Ｎ））との関係を、（７）式に示す２次関数で近似して重みの最適値Ｎoptを求めた。その結果、重みの最適値Ｎoptの値は、７．２２４３となった。この重みの最適値Ｎoptを用いて、本実施形態で説明した手法で、少数クラスに属する学習データをオーバーサンプリングして新学習データを得た。これらの新学習データを、前述した決定木学習アルゴリズムに適用して決定木（分類器）を作成した。このようにして得られた決定木（分類器）の性能を表す混同行列を計算した結果、混同行列は、図８（ｂ）に示すようになった。本実施例では、99533枚の鉄鋼製品が発生工程を通過すると予測しており、そのうち、22561枚の鉄鋼製品が実際に発生工程を通過している。このため、図８（ａ）に示す重みを付けない方法（比較例）よりも明らかに本実施例の方が優れた結果が得られた。また、図８（ａ）に示す比較例では、Ｆ値は２．４４［％］であったのに対し、本実施例では、Ｆ値は２９．９［％］まで向上した。
【００８５】
また、重みＮの範囲の上限値である「Ｎr」は、「多数クラスに属する学習データの個数／少数クラスに属する学習データの個数」で表されるので、本実施例においては、約１２．７（＝５１５１０／６５２６２３）となる。すなわち、重みの最適値Ｎopt（＝７．２２４３）は、重みＮの範囲の上限値である「１」と、重みＮの範囲の上限値である「Ｎr（＝１２．７）」との間にある。よって、Ｆ値を最も高くするには、少数クラスに属する学習データが、多数クラスに属する学習データの個数よりも少ない個数になるようにサンプリングする必要があることが分かる。
【００８６】
（まとめ）
以上のように本実施形態では、下限値を「Ｎmin（≧１）」、上限値を「Ｎmax（≦Ｎr）」として指定された重みＮの範囲の中から、３つの仮の重みＮ´1、Ｎ´2、Ｎ´3を決定する。これらの仮の重みＮ´1、Ｎ´2、Ｎ´3のそれぞれを用いて少数クラスに属する学習データをオーバーサンプリングして新学習データのセットを３つ作成する。作成した新学習データの３つのセットを用いて３つの仮の分類器を作成し、その評価値であるＦ値Ｆ1、Ｆ2、Ｆ3を求める。３つの仮の重みとＦ値との組（Ｎ´1，Ｆ1）、（Ｎ´2，Ｆ2）、（Ｎ´3，Ｆ3）から、重みＮとＦ値との関係を表す２次関数の係数ａ、ｂ、ｃを算出し、当該２次関数の極大値に対応する重みＮを求め、当該重みＮが、「Ｎmin」以上「Ｎmax」以下である場合には、当該重みＮを重みの最適値Ｎoptとし、この重みの最適値Ｎoptに基づいて作成した新学習データを用いて分類器を構築する。一方、当該重みＮが、「Ｎmin」以上「Ｎmax」以下でない場合には、「Ｎmin」と「Ｎmax」のうち、対応するＦ値の値が大きい方を重みの最適値Ｎoptとし、重みの最適値Ｎoptに基づいて作成した新学習データを用いて分類器を構築する。
すなわち、可及的に高精度の予測が可能な分類器を作成するために、Ｆ値が最も高くなる重みの最適値Ｎoptを用いて少数クラスに属する学習データをサンプリングする。よって、一方のクラスに属する学習データの個数が他方のクラスに属する学習データの個数よりも極端に少ない場合でも、過不足なく学習データをサンプリングし、高精度の分類器を構築することができる。
また、本実施形態では、重みＮとＦ値との関係が２次関数であると近似して、複数の仮の重みＮ´と、それらに対応するＦ値とから、重みの最適値Ｎoptを算出するようにした。このようにすれば収束計算を行う必要がなくなるので、重みの最適値Ｎoptを算出する際の計算負荷を可及的に少なくすることができる。
【００８７】
（変形例）
本実施形態では、重みＮの範囲を入力し、その範囲内で複数の仮の重みＮ´の値が等間隔になるように決定した。しかしながら、必ずしもこのようにする必要はない。例えば、複数の仮の重みＮ´の値を、オペレータの操作等に基づいて直接的に入力するようにしてもよい。ただし、このようにする場合には、複数の仮の重みＮ´の値として、「Ｎmin」以上、「Ｎmax」以下の値のみを受け付けるようにする必要がある。
【００８８】
また、重みＮの範囲の下限値Ｎminは「１」に限定されない。例えば、最適な重みＮoptの大凡の値の存在範囲が、過去の経験から分かっている場合には、重みＮの範囲の下限値Ｎminとして「１」を上回る値を採用してもよい。また、重みＮの範囲の上限値Ｎmaxも「（多数クラスに属する学習データの個数／少数クラスに属する学習データの個数）Ｎr」に限定されない。例えば、適正な重みＮの大凡の値の存在範囲が、過去の経験から分かっている場合には、重みＮの範囲の上限値Ｎmaxとして「Ｎr」を下回る値を採用してもよい。また、「Ｎr」の値が所定値（例えば１０）より大きい場合には、重みＮの範囲の上限値Ｎmaxとして所定値（例えば１０）を採用してもよい。
このように、重みＮの範囲（Ｎmin〜Ｎmax）を１〜Ｎr以外にする必要性に関して説明する。本発明は連続した関数である重みＮと評価値との関係を、複数の仮の重みと評価値で近似することで最適な重みＮoptを予測する手法であるため、最適な重みＮoptの存在範囲が過去の経験から分かっている場合には、重みＮの範囲を前記最適な重みＮoptの存在範囲に設定した方が、最適な重みＮoptの予測精度が高くなり、性能の高い分類器を作成することが可能となる。また、学習データの偏りが大きい場合には、Ｎrが過大になり、少数データを重みＮrでオーバーサンプリングをすると、新しい学習データの個数が膨大になり、コンピュータシステムの記憶装置（ＲＡＭ等）に格納できず、分類器を計算できなかったり、記憶装置に格納できたとしても、分類器の計算時間が膨大に掛ってしまうことがある。このような場合、分類器を作成する学習アルゴリズムやコンピュータシステムの記憶装置の容量に応じて、重みＮの範囲の上限値Ｎmaxを「Ｎr」より小さな値に設定することで、このような計算上の問題を防ぐことが出来る。
【００８９】
また、仮の重みＮ´のそれぞれについて少数クラスに属する学習データをオーバーサンプリングする方法は、前述した方法に限定されない。例えば、仮の重みＮ´の値が整数部と小数部を有する場合（例えば「２．５」の場合）には、次のようにして新学習データを決定することができる。まず、元の学習データの全てを新学習データとして採用する。次に、少数クラスに属する学習データを、整数部の値から１を減じた回数（例えば１回（＝２−１））だけ、新学習データとして（繰り返し）採用する。最後に、少数クラスに属する学習データの数に、小数点以下の値を乗じた数（例えば、少数クラスに属する学習データの数に０．５を乗じた数）の学習データを、乱数等を用いて、少数クラスに属する学習データから、値が重ならないようにランダムに選択し、選択した少数クラスに属する学習データを、新学習データとして採用する。このようにしても、少数クラスに属する学習データをサンプリングすることができる。
【００９０】
また、仮の分類器に対する評価値はＦ値に限定されない。例えば、適合率と再現率とを用いた評価値として、適合率と再現率との重み付き平均値を採用してもよい。また、以下の（２１）式で表されるＴＮ率と、ＴＰ率（前述した再現率と同じ）との相乗平均（幾何平均）であるＧ平均を以下の（２２）式により評価値として算出してもよい。
【００９１】
【数８】
0005733229.tif 000009
【００９２】
また、仮の重みＮ´の数は、複数であれば、幾つであってもよい。仮の重みＮ´の数が４以上である場合には、重みＮとＦ値との関係Ｆ（Ｎ）を、以下の（２３）式に示す２次関数で近似し、この２次関数のＮに、仮の重みＮ´kを代入したときのＦ値（Ｆ（Ｎ´k））と、当該仮の重みＮ´に対して評価値算出部１０６で算出されたＦ値（Ｆk）との誤差の二乗和Ｊの値が最小となるように（（２４）式を参照）、最小二乗法を用いて係数ａ、ｂ、ｃを計算し、計算した係数ａ、ｂ、ｃを用いて前述したようにして重みの最適値Ｎoptを求めることができる。また、仮の重みＮ´の値が４つ以上であれば、重みＮとＦ値との関係（Ｆ（Ｎ））を、２次関数ではなく、ｎ次関数（ｎは３以上の整数）に近似して、重みＮの範囲の下限値である「Ｎmin」と、重みＮの範囲の上限値である「Ｎmax」との間の最大値を重みの最適値Ｎoptとして求めることができる。また、重みＮとＦ値との関係Ｆ（Ｎ）が１次関数であってもよい。この場合は、図７のステップＳ７０３でＮＯとなった後の処理を行うことにより、重みの最適値Ｎoptを求めることができる。ただし、重みＮとＦ値との関係Ｆ（Ｎ）がｎ次関数（ｎは２以上の整数）であるのが望ましい。なぜなら、一般に重みＮとＦ値との関係Ｆ（Ｎ）は直線式にならないからである。
【００９３】
【数９】
0005733229.tif 000010
【００９４】
また、本実施形態では、分類器が決定木である場合を例に挙げて説明したが、分類器は決定木に限定されない。例えば、ＳＶＭ（Support Vector Machine）、ニューラルネットワーク、線形判別等を分類器としてもよい。
【００９５】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。前述した第１の実施形態では、少数クラスに属する学習データをオーバーサンプリングして、少数クラスに属する学習データの数を増やす場合を例に挙げて説明した。これに対し、本実施形態では、多数クラスに属する学習データをアンダーサンプリングして、多数クラスに属する学習データの数を減らす場合を例に挙げて説明する。このように本実施形態と第１の実施形態とは、主として、学習データサンプリング処理の一部が異なる。よって、本実施形態の説明において、第１の実施形態と同一の部分については、図１〜図８に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００９６】
本実施形態では、図６のフローチャートにおいて、「少数クラス」を「多数クラス」に、「Ｎ´」を「１／Ｎ´」にすることにより、学習データサンプリング処理が実現される。このようにした場合には、少数クラスに属する学習データは、そのまま新学習データに追加される（ステップＳ６０３、Ｓ６０４を参照）。一方、多数クラスに属する学習データは、平均的に１／Ｎ´回だけ新学習データとして採用される。
以上のようにすれば、必ずしも、多数クラスに属する学習データの個数と、少数クラスに属する学習データの個数とが等しくなるように多数クラスに属する学習データをアンダーサンプリングしてしまい、多数クラスに属する学習データのうち、精度の高い分類器を作成する上で重要となる学習データが新学習データに含まれなくなることを可及的に抑制することができる。よって、一方のクラスに属する学習データの個数が他方のクラスに属する学習データの個数よりも極端に少ない場合でも、過不足なく学習データをサンプリングし、高精度の分類器を構築することができる。
【００９７】
本実施形態においても、第１の実施形態で説明した種々の変形例を採用することができる。尚、多数クラスに属する学習データをランダムに選択する場合には、多数クラスに属する学習データの数の１／Ｎ´倍の学習データを、乱数等を用いて、多数クラスに属する学習データのから、値が重ならないようにランダムに選択すればよい。
【００９８】
［第３の実施形態］
次に、第３の実施形態について説明する。前述した第１の実施形態では、オーバーサンプリングをする場合を例に挙げて説明し、前述した第２の実施形態では、アンダーサンプリングする場合を例に挙げて説明した。これに対し、本実施形態では、オーバーサンプリングとアンダーサンプリングとの双方を行う場合を例に挙げて説明する。このように本実施形態と第１、２の実施形態とは、主として、学習データサンプリング処理の一部が異なる。よって、本実施形態の説明において、第１、２の実施形態と同一の部分については、図１〜図８に付した符号と同一の符号を付す等して詳細な説明を省略する。
【００９９】
本実施形態では、多数クラスに属する学習データの個数の減少に対して、少数クラスに属する学習データの増加を優先する割合を表す優先度ｒの値が、例えば、オペレータによる操作に基づき設定される。この優先度ｒの値は、０以上１以下の範囲の値である（０≦ｒ≦１）。
少数クラスに属する学習データの増加率を表す仮の重みＮ´+（以下の説明では「少数クラス用の仮の重みＮ´+」と称する）を以下の（２５）式のように定めると共に、多数クラスに属する学習データの減少率を表す仮の重みＮ´-（以下の説明では「多数クラス用の仮の重みＮ´-」と称する）を以下の（２６）式のように定める。
Ｎ´+＝ｒ×Ｎ´＋（１−ｒ）  ・・・（２５）
Ｎ´-＝Ｎ´／Ｎ´+  ・・・（２６）
【０１００】
（２５）式、（２６）式において、Ｎ´は、第１、第２の実施形態で説明した仮の重みである。
そして、例えば、第１の実施形態で説明した学習データサンプリング処理（図６を参照）において、「Ｎ´」の代わりに、「少数クラス用の仮の重みＮ´+」を用いて、少数クラスの学習データをオーバーサンプリングする。その後、第２の実施形態で説明した学習データサンプリング処理（図６を参照）において、「１／Ｎ´」の代わりに、「１／Ｎ´-」を用いて、オーバーサンプリングした後の学習データに含まれる多数クラスの学習データをアンダーサンプリングする。このようにして得られた学習データが新学習データとなる。尚、少数クラス用の仮の重みＮ´+と、多数クラス用の仮の重みＮ´-は、それぞれ仮の重みＮ´の数（第１の実施形態では「３」）だけ得られるということは勿論である。
【０１０１】
（２５）式、（２６）式のようにして少数クラス用の仮の重みＮ´+と、多数クラス用の仮の重みＮ´-を定めると、優先度ｒの値が「１」のときには、少数クラス用の仮の重みＮ´+は、第１の実施形態で示した仮の重みＮ´と等しくなると共に（Ｎ´+＝Ｎ´）、多数クラス用の仮の重みＮ´-の値は、「１」となる（Ｎ´-＝１）。よって、優先度ｒの値が「１」のときには、オーバーサンプリングのみを行って新学習データを作成することになる（すなわち、第１の実施形態と同じ処理を行うことになる）。
一方、優先度ｒの値が「０」のときには、少数クラス用の仮の重みＮ´+は、「１」になると共に（Ｎ´-＝１）、多数クラス用の仮の重みＮ´-の値は、第２の実施形態で示した仮の重みＮ´と等しくなる（Ｎ´-＝Ｎ´）。よって、優先度ｒの値が「０」のときには、アンダーサンプリングのみを行って新学習データを作成することになる（すなわち、第２の実施形態と同じ処理を行うことになる）。
【０１０２】
また、新学習データの、少数クラスに属する学習データの個数と多数クラスに属する学習データの個数は、それぞれ、以下の（２７）式、（２８）式のようになる。
新学習データの少数クラスに属する学習データの個数
＝元の学習データの少数クラスに属する学習データの個数×Ｎ´+  ・・・（２７）
新学習データの多数クラスに属する学習データの個数
＝元の学習データの多数クラスに属する学習データの個数×Ｎ´+／Ｎ´  ・・・（２８）
【０１０３】
したがって、仮の重みＮ´の値が、重みＮの範囲の上限値である「Ｎr（＝元の学習データの多数クラスに属する学習データの個数／元の学習データの少数クラスに属する学習データの個数）」と等しいときに（Ｎ´＝Ｎr）、新学習データの少数クラスに属する学習データの個数と、新学習データの多数クラスに属する学習データの個数とが等しくなる。また、仮の重みＮ´の値が重みＮの範囲の下限値である「１」と等しいときは（Ｎ´＝１）、Ｎ´+＝Ｎ´-＝１となるため、オーバーサンプリングもアンダーサンプリングも行われないことになる。よって、優先度ｒの値に関わらず、第１の実施形態で説明したオーバーサンプリングのみを行う場合や、第２の実施形態で説明したアンダーサンプリングのみを行う場合と同様に、重みＮの範囲は「１」〜「Ｎr」で設定すれば良い。
【０１０４】
さらに、重みの最適値Ｎoptを用いて分類器を作成する際には、（２５）式、（２６）式における「Ｎ´」の代わりに重みの最適値Ｎoptを代入して少数クラス用の重みＮ+と、多数クラス用の重みＮ-とを導出し、少数クラス用の重みＮ+を用いて少数クラスの学習データをオーバーサンプリングした後、多数クラス用の重みＮ-を用いて多数クラスの学習データをアンダーサンプリングすればよい。
以上のようにすれば、第１、第２の実施形態で説明した効果を得ることができる。また、本実施形態においても、第１、第２の実施形態で説明した種々の変形例を採用することができる。
【０１０５】
本実施形態では、多数クラスに属する学習データの個数の減少に対する、少数クラスに属する学習データの増加の優先度ｒを用いた場合を例に挙げて説明した。しかしながら、少数クラスに属する学習データの増加に対する、多数クラスに属する学習データの個数の減少の優先度ｒを用いるようにしてもよい。このようにする場合には、（２５）式、（２６）式の代わりに、（２９）式、（３０）式を用いればよい。
Ｎ´+＝Ｎ´／Ｎ´-  ・・・（２９）
Ｎ´-＝ｒ×Ｎ´＋（１−ｒ）  ・・・（３０）
【０１０６】
尚、以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１０７】
［請求項との関係］
＜請求項１、９＞
仮重み決定手段は、例えば、重み範囲入力部１０２及び仮重み決定部１０３を用いることにより実現され、仮重み決定工程は、例えば、ステップＳ５０２、Ｓ５０３の処理を行うことにより実現される。ここで、下限値は、例えばＮminに対応し、上限値はＮmaxに対応する。
学習データサンプリング手段は、例えば、学習データサンプリング部１０４を用いることにより実現され、学習データサンプリング工程は、例えば、ステップＳ５０５（図６）の処理を行うことにより実現される。
学習手段は、例えば、学習部１０５を用いることにより実現され、学習工程は、例えば、ステップＳ５０６の処理を行うことにより実現される。
評価値算出手段は、例えば、評価値算出部１０６を用いることにより実現され、評価値算出工程は、例えば、ステップＳ５０７の処理を行うことにより実現される。
最適重み導出手段は、例えば、最適重み導出部１０７を用いることにより実現され、最適重み導出工程は、例えば、ステップＳ５０９（図７）の処理を行うことにより実現される。
分類器作成手段は、例えば、学習データサンプリング部１０８及び学習部１０９を用いることにより実現され、分類器作成工程は、例えば、ステップＳ４０９〜Ｓ４１１の処理を行うことにより実現される。
＜請求項３、１１＞
請求項３、１１の記載は、例えば、第１の実施形態における学習データサンプリング処理に対応する。
＜請求項４、１２＞
請求項４、１２の記載は、例えば、第２の実施形態における学習データサンプリング処理に対応する。
＜請求項５、１３＞
請求項５、１３の記載は、例えば、第３の実施形態における学習データサンプリング処理に対応する。
【符号の説明】
【０１０８】
１００    分類器作成装置
１０１    学習データ入力部
１０２    重み範囲入力部
１０３    仮重み決定部
１０４    学習データサンプリング部
１０５    学習部
１０６    評価値算出部
１０７    最適重み算出部
１０８    学習データサンプリング部
１０９    学習部
１１０    分類器格納部
【図１】
0005733229.tif 000011
【図２】
0005733229.tif 000012
【図３】
0005733229.tif 000013
【図４】
0005733229.tif 000014
【図５】
0005733229.tif 000015
【図６】
0005733229.tif 000016
【図７】
0005733229.tif 000017
【図８】
0005733229.tif 000018
【図９】
0005733229.tif 000019