(57)【特許請求の範囲】
【請求項１】
コンピュータプログラムが格納された記憶部と、
前記コンピュータプログラムを実行する処理装置と、
出力装置と
を具備し、
前記処理装置は、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行し、
前記学習データに対して、入力に対する出力値を表す決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２）など）を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とした仮説を生成する（ｂ）処理を実行し、
前記記憶部には、更に、そのラベルが設定されたデータである複数の候補データが格納され、
前記処理装置は、
前記記憶部に格納された前記複数の候補データそれぞれのデータの入力に対し、葉の値という出力値をそれぞれのデータに対するスコアとして計算し、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行し、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行し、
前記終了条件が満たされないとき、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行し、
前記終了条件が満たされたとき、前記（ｄ）処理により生成された前記仮説を前記出力装置に出力する（ｇ）処理を実行する
知識発見システム。
【請求項２】
コンピュータプログラムが格納された記憶部と、
前記コンピュータプログラムを実行する処理装置と、
出力装置と
を具備し、
前記処理装置は、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行し、
前記学習データに対して、入力である複数の属性の中から一部の属性をランダムに選択し、更にランダムに選択された同一の属性からなる入力と出力との組であるデータをランダムに選択し、それら選択したデータの入力から出力値を出力するような仮説である決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２））を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とするという一連の処理をＴ回（Ｔは１以上の整数）行って、Ｔ個の仮説を生成する（ｂ）処理を実行し、
前記記憶部には、更に、そのラベルが設定されたデータである複数の候補データが格納され、
前記処理装置は、
前記記憶部に格納された前記複数の候補データのそれぞれのデータの入力に対し、Ｔ個の決定木に対して、Ｔ個の出力値を計算し、それら出力値の平均をそれぞれのデータに対するスコアとし、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行し、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行し、
前記終了条件が満たされないとき、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行し、
前記終了条件が満たされたとき、前記（ｄ）処理により生成された前記Ｔ個の仮説を前記出力装置に出力する（ｇ）処理を実行する
知識発見システム。
【請求項３】
コンピュータプログラムが格納された記憶部と、前記コンピュータプログラムを実行する処理装置とを具備するコンピュータを用いる学習方法であって、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行するステップと、
前記学習データに対して、入力に対する出力値を表す決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２）など）を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とした仮説を生成する（ｂ）処理を実行するステップと、前記記憶部には、そのラベルが設定されたデータである複数の候補データが格納され、
前記記憶部に格納された前記複数の候補データそれぞれのデータの入力に対し、葉の値という出力値をそれぞれのデータに対するスコアとして計算し、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行するステップと、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行するステップと、
前記終了条件が満たされないとき、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行するステップと、
前記終了条件が満たされたとき、前記（ｄ）処理により生成された前記仮説を出力装置に出力する（ｇ）処理を実行するステップと
を具備する学習方法。
【請求項４】
コンピュータプログラムが格納された記憶部と、前記コンピュータプログラムを実行する処理装置とを具備するコンピュータを用いる学習方法であって、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行するステップと、
前記学習データに対して、入力である複数の属性の中から一部の属性をランダムに選択し、更にランダムに選択された同一の属性からなる入力と出力との組であるデータをランダムに選択し、それら選択したデータの入力から出力値を出力するような仮説である決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２））を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とするという一連の処理をＴ回（Ｔは１以上の整数）行って、Ｔ個の仮説を生成する（ｂ）処理を実行するステップと、前記記憶部には、そのラベルが設定されたデータである複数の候補データが格納され、
前記記憶部に格納された前記複数の候補データのそれぞれのデータの入力に対し、Ｔ個の決定木に対して、Ｔ個の出力値を計算し、それら出力値の平均をそれぞれのデータに対するスコアとし、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行するステップと、  前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行するステップと、
前記終了条件が満たされないとき、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行するステップと、
前記終了条件が満たされたとき、前記（ｄ）処理により生成された前記Ｔ個の仮説を出力装置に出力する（ｇ）処理を実行するステップと
を具備する学習方法。
【請求項５】
コンピュータプログラムが格納された記憶部と、前記コンピュータプログラムを実行する処理装置とを具備するコンピュータを用いる学習方法を、前記コンピュータに実行させる学習プログラムであって、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行するステップと、
前記学習データに対して、入力に対する出力値を表す決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２）など）を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とした仮説を生成する（ｂ）処理を実行するステップと、前記記憶部には、そのラベルが設定されたデータである複数の候補データが格納され、
前記記憶部に格納された前記複数の候補データそれぞれのデータの入力に対し、葉の値という出力値をそれぞれのデータに対するスコアとして計算し、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行するステップと、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行するステップと、
前記終了条件が満たされないとき、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行するステップと、
前記終了条件が満たされたとき、前記（ｄ）処理により生成された前記仮説を出力装置に出力する（ｇ）処理を実行するステップとの各ステップを前記コンピュータに実行させる学習プログラム。
【請求項６】
コンピュータプログラムが格納された記憶部と、前記コンピュータプログラムを実行する処理装置とを具備するコンピュータを用いる学習方法を、前記コンピュータに実行させる学習プログラムであって、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行するステップと、
前記学習データに対して、入力である複数の属性の中から一部の属性をランダムに選択し、更にランダムに選択された同一の属性からなる入力と出力との組であるデータをランダムに選択し、それら選択したデータの入力から出力値を出力するような仮説である決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２））を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とするという一連の処理をＴ回（Ｔは１以上の整数）行って、Ｔ個の仮説を生成する（ｂ）処理を実行するステップと、前記記憶部には、そのラベルが設定されたデータである複数の候補データが格納され、
前記記憶部に格納された前記複数の候補データのそれぞれのデータの入力に対し、Ｔ個の決定木に対して、Ｔ個の出力値を計算し、それら出力値の平均をそれぞれのデータに対するスコアとし、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行するステップと、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行するステップと、
前記終了条件が満たされないとき、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行するステップと、
前記終了条件が満たされたとき、前記（ｄ）処理により生成された前記Ｔ個の仮説を出力装置に出力する（ｇ）処理を実行するステップと
の各ステップを前記コンピュータに実行させる学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習データを学習させる学習システム（能動学習システム及び知識発見システム）に関する。
【背景技術】
【０００２】
コンピュータプログラムである学習アルゴリズムを用いて、学習データを学習させる方法として、能動学習と知識発見とが挙げられる。能動学習とは、与えられた学習データから受動学習するだけでなく、学習に有効なデータを能動的に提示することで、精度を向上させる技術のことである。従来の能動学習を利用した方法、もしくは選択的サンプリングを利用した方法は、特許文献１、非特許文献１、非特許文献２に記載されている。この従来の能動学習手法は、情報量が最も多い候補データ（以下、情報量最大の候補データと称する）を選択していた。この情報量最大の候補データは、境界だと予測されるデータである。また、知識発見とは、与えられた学習データから再学習を行う技術のことである。従来の知識発見を利用した方法は、特許文献２に記載されている。この従来の知識発見は、情報量最大の候補データを選択していた。
学習（能動学習や知識発見）では、クラスまたは関数値を含むラベルが用いられる。クラスは、ある事象の状態の有無を表し、関数値は、ある事象の状態を大きさとして数値で表したものである。能動学習である場合、ラベルは、学習データ、選択された候補データに設定され、知識発見である場合、ラベルは、学習データ、候補データに設定されている。
【０００３】
学習データを学習させるときに、アンサンブル学習が用いられる場合がある。アンサンブル学習とは、受動学習の精度を向上させるために、与えられた学習データから複数の仮説を生成し、これらの仮説を統合する技術のことである。代表的なアンサンブル学習手法として、バギング（Ｂａｇｇｉｎｇ）やブースティング（Ｂｏｏｓｔｉｎｇ）などがあり、非特許文献３、非特許文献４に記載されている。
【０００４】
学習データを学習させるときに、属性選択を行う場合がある。属性選択とは、学習データの属性を絞ることで次元を減らし精度を向上させる技術のことであり、非特許文献５に記載されている。この従来の手法では、予め定めた確率に従ってそれぞれの属性を選択するか否かを決定することで属性を減らしている。
【０００５】
しかし、学習データを学習させるための従来の手法では、以下のような問題点がある。
【０００６】
まず、第１の問題点は、所望の結果を予測することができないことである。例えば、候補データがアンバランスなデータまたは価値の異なるデータの場合に効率的に学習（能動学習や知識発見）ができない。ここで、アンバランスなデータとは、例えばラベル（クラスや関数値）を着目した時に情報数の分布が一様分布からある程度隔たっているデータのことであり、例えば、クラス間の情報数が異なっているデータなどである。また、価値が異なるデータとは、データのラベル（クラスや関数値）を求めるコストが異なる場合や、特定のラベル（クラスあるいは関数値）が設定されたデータに価値がある場合のデータのことであり、そのような価値の高いデータを主に抽出したいような場合に利用される。
第１の問題点の理由としては、従来手法のように情報量最大の候補データを選択していると、情報数が少ない候補データが選択されないため、学習データのラベル（クラス、関数値）に属する多様な候補データが得られず、学習アルゴリズムによる学習が困難となるためである。それを防ぐためには、学習アルゴリズムでコストなどを設定する、あるいは候補データを増減させるなどの手法が考えられるが、学習前に適切なコストや適切な候補データの増減を決めるのは難しい。候補データの価値が異なる場合、価値の高い候補データを選択することにより、所望の結果を予測することができる学習システムが望まれる。
【０００７】
第２の問題点は、予測精度が安定しないことである。
第２の問題点の理由としては、候補データを選択するための基準が予めに決められている（情報量最大の候補データを選択する）ために、選択される候補データが偏ってしまい、候補データ全体から反映されるような仮説が生成されないためである。予測精度が安定する学習システムが望まれる。
【０００８】
第３の問題点は、上述のアンサンブル学習により属性選択を行う場合、適切な選択確率が予め定められないと予測精度が向上しないことである。
第３の問題点の理由としては、例えば属性の選択確率を０．５と予め定めた場合、選択される属性数はおよそ半分になるが、実際には不要な属性が多かった場合、対応できない。学習前に適切な属性数を決めるのは難しい。また、学習しながら、属性数を計算（選択確率）により決めるようにするとその計算に時間がかかり計算コストが膨大になる。予測精度が向上する学習システムが望まれる。
【０００９】
上記の問題点について、創薬のスクリーニングを例にして具体的に説明する。創薬のスクリーニングの場合、例えば、クラスは、ある事象の状態の有無として、ある化合物の結合の有無を表し、関数値は、ある事象の状態の大きさとして、ある化合物の結合能を数値で表したものである。
創薬のスクリーニングでは、活性化合物（正例）の数が非活性化合物（負例）の数に比べて非常に少ない。従って、情報量最大の候補データを選択していると、上記第２の問題点として、非活性化合物を多く選択してしまい、多様な活性化合物が得られない。
また、実験を通して薬物候補となる活性化合物を発見するために、活性化合物を如何に少ない実験回数で発見するかが重要である。情報量最大という基準では、上記第１の問題点として、効率的に学習（能動学習、知識発見）することができない。このため、より良い仮説を生成すること（所望の結果を予測すること）ができないことがある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１１−３１６７５４号公報
【特許文献２】特開２００１−２２９０２６号公報
【非特許文献】
【００１１】
【非特許文献１】セング（Ｓｅｕｎｇ）著「クエリー  バイ  コミッティ（Ｑｕｅｒｙ  ｂｙ  Ｃｏｍｍｉｔｔｅｅ）」１９９２年発行の国際会議の予稿集「プロシーディングス  オブ  ザ  フィフス  アニュアル  エーシーエム  ワークショップ  オン  コンピューテーショナル  ラーニング  セオリー（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｆｉｆｔｈ  ａｎｎｕａｌ  ＡＣＭ  ｗｏｒｋｓｈｏｐ  ｏｎ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ｌｅａｒｎｉｎｇ  ｔｈｅｏｒｙ）」の２８７−２９４頁
【非特許文献２】ワームス（Ｗａｒｍｕｔｈ）著「サポートベクタマシン  フォア  アクティブ  ラーニング  イン  ザ  ドラッグ  ディスカバリー  プロセス（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅｓ  ｆｏｒ  Ａｃｔｉｖｅ  Ｌｅａｒｎｉｎｇ  ｉｎ  ｔｈｅ  Ｄｒｕｇ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｃｅｓｓ）」２００３年発行の論文誌「ジャーナル  オブ  ケミカル  インフォメーション  サイエンス（Ｊｏｕｒｎａｌ  ｏｆ  Ｃｈｅｍｉｃａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｃｉｅｎｃｅｓ）」４３巻２号６６７−６７３頁
【非特許文献３】ブライマン（Ｂｒｅｉｍａｎ）著「バギング  プレディクターズ（Ｂａｇｇｉｎｇ  Ｐｒｅｄｉｃｔｏｒｓ）」１９９６年発行の論文誌「マシンラーニング（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ）」２４巻２号１２３−１４０頁
【非特許文献４】フロインド（Ｆｒｅｕｎｄ）とシャピレ（Ｓｈａｐｉｒｅ）著「ア  ディシジョン  セオレティック  ジェネラライゼーション  オブ  オンライン  ラーニング  アンド  アン  アプリケーション  トゥー  ブースティング（Ａ  ｄｅｃｉｓｉｏｎ  −ｔｈｏｒｅｔｉｃ  ｇｅｎｅｒａｌｉｚａｔｉｏｎ  ｏｆ  ｏｎ−ｌｉｎｅ  ｌｅａｒｎｉｎｇ  ａｎｄ  ａｎ  ａｐｐｌｉｃａｔｉｏｎ  ｔｏ  ｂｏｏｓｔｉｎｇ）」１９９５年発行の国際会議予稿集「プロシーディングス  オブ  セカンド  ヨーロピアン  コンファランス  オン  コンピューテーショナル  ラーニング  セオリー（Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｓｅｃｏｎｄ  ｅｕｒｏｐｅａｎ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ｃｏｍｐｕｔａｔｉｏｎａｌ  ｌｅａｒｎｉｎｇ  ｔｈｅｏｒｙ）」２３−３７頁
【非特許文献５】ホ（Ｈｏ）著「ザ  ランダム  サブスペース  メソッド  フォア  コンストラクティング  ディシジョン  フォレスト（Ｔｈｅ  Ｒａｎｄｏｍ  Ｓｕｂｓｐａｃｅ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｃｏｎｓｔｒｕｃｔｉｎｇ  Ｄｅｃｉｓｉｏｎ  Ｆｏｒｅｓｔｓ）」１９９８年発行の論文誌「アイトリプルイー  トランザクションズ  オン  パタン  アナリシス  アンド  マシン  インテリジェンス（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｔｔｅｒｎ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍａｃｈｉｎｅ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）」２０巻８号８３２−８４４頁
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明の課題は、所望の結果を予測することができる学習システムを提供することにある。
【００１３】
本発明の他の課題は、予測精度が安定する学習システムを提供することにある。
【００１４】
本発明の更に他の課題は、予測精度が向上する学習システムを提供することである。
【課題を解決するための手段】
【００１５】
以下に、［発明を実施するための形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１６】
本発明の学習システムは、能動学習システム（５０）と、知識発見システム（６０）とに分けることができる。
まず、本発明の能動学習システム（５０）において、アンサンブル学習としてバギングを用いた場合について説明する。
【００１７】
本発明の能動学習システム（５０）は、
コンピュータプログラムが格納された記憶部（３３）と、
前記コンピュータプログラムを実行する処理装置（５）と、
出力装置（４）と
を具備し、
前記処理装置（５）は、
１つ以上のデータの特徴を示す属性である入力とクラス又は関数値である出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行し（Ｓ１）、
前記学習データに対して、入力である複数の属性の中から一部の属性をランダムに選択し、更にランダムに選択された同一の部分属性からなる入力と出力との組であるデータをランダムに選択し、それら選択したデータの入力から出力値を出力するような仮説を、予め定めた学習アルゴリズムを用いて生成するという一連の処理をＴ回（Ｔは１以上の整数）行って、Ｔ個の仮説を生成する（ｂ）処理を実行し（Ｓ２１〜Ｓ２４）、
前記記憶部（３３）には、更に、そのラベルが設定されていないデータである複数の候補データが格納され、
前記処理装置（５）は、
前記記憶部（３３）に格納された前記複数の候補データのそれぞれのデータの入力に対し、前記Ｔ個の仮説を用いてＴ個の出力値を計算し、出力値が関数値の場合はそれら出力値の平均をそれぞれのデータに対するスコアとし、出力値がクラス値の場合は、予め定めたクラス値となる割合（予め定めたクラス値となる回数をＴで除した値）をそれぞれのデータに対するスコアとし、スコアから選択確率を計算するような予め定めた選択関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行し（Ｓ４）、
ユーザにより決定されたラベルを前記選択候補データに設定し、ラベル設定候補データとして生成する（ｄ）処理を実行し（Ｓ５）、
前記ラベル設定候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｅ）処理を実行し（Ｓ５）、
前記終了条件が満たされないとき（Ｓ３−ＮＯ）、前記（ｃ）、（ｄ）、（ｅ）処理を実行する（ｆ）処理を実行し、
前記終了条件が満たされたとき（Ｓ３−ＹＥＳ）、前記（ｅ）処理により生成された前記Ｔ個の仮説を前記出力装置（４）に出力する（ｈ）処理を実行する。
【００１８】
本発明の能動学習システム（５０）において、アンサンブル学習としてブースティングを用いた場合について説明する。
【００１９】
本発明の能動学習システム（５０）において、アンサンブル学習としてバギングを用いた場合について説明する。
【００２０】
本発明の能動学習システム（５０）は、
コンピュータプログラムが格納された記憶部（３３）と、
前記コンピュータプログラムを実行する処理装置（５）と、
出力装置（４）と
を具備し、
前記処理装置（５）は、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行し（Ｓ１）、
前記学習データに対して、入力である複数の属性の中から一部の属性をランダムに選択し、更にランダムに選択された同一の属性からなる入力と出力との組であるデータをランダムに選択し、それら選択したデータの入力から出力値を出力するような仮説である決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した前記選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２））を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とするという一連の処理をＴ回（Ｔは１以上の整数）行って、Ｔ個の仮説を生成する（ｂ）処理を実行し（Ｓ２１〜Ｓ２４）、
前記記憶部（３３）には、更に、そのラベルが設定されていないデータである複数の候補データが格納され、
前記処理装置（５）は、
前記記憶部（３３）に格納された前記複数の候補データのそれぞれのデータの入力に対し、Ｔ個の決定木に対して、Ｔ個の出力値を計算し、それら出力値の平均をそれぞれのデータに対するスコアとし、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行し（Ｓ４）、
ユーザにより決定されたラベルを前記選択候補データに設定し、ラベル設定候補データとして生成する（ｄ）処理を実行し（Ｓ５）、
前記ラベル設定候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｅ）処理を実行し（Ｓ５）、
前記終了条件が満たされないとき（Ｓ３−ＮＯ）、前記（ｃ）、（ｄ）、（ｅ）処理を実行する（ｆ）処理を実行し、
前記終了条件が満たされたとき（Ｓ３−ＹＥＳ）、前記（ｅ）処理により生成された前記Ｔ個の仮説を前記出力装置（４）に出力する（ｈ）処理を実行する。
【００２１】
まず、本発明の知識発見システム（６０）において、アンサンブル学習としてバギングを用いた場合について説明する。
【００２２】
本発明の知識発見システム（６０）は、
コンピュータプログラムが格納された記憶部（３３）と、
前記コンピュータプログラムを実行する処理装置（５）と、
出力装置（４）と
を具備し、
前記処理装置（５）は、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行し（Ｓ１）、
前記学習データに対して、入力に対する出力値を表す決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した前記選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２）など）を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とした仮説を生成する（ｂ）処理を実行し（Ｓ２１〜Ｓ２４）、
前記記憶部（３３）には、更に、そのラベルが設定されたデータである複数の候補データが格納され、
前記処理装置（５）は、
前記記憶部（３３）に格納された前記複数の候補データそれぞれのデータの入力に対し、葉の値という出力値をそれぞれのデータに対するスコアとして計算し、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行し（Ｓ４）、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行し（Ｓ５）、
前記終了条件が満たされないとき（Ｓ３−ＮＯ）、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行し、
前記終了条件が満たされたとき（Ｓ３−ＹＥＳ）、前記（ｄ）処理により生成された前記仮説を前記出力装置（４）に出力する（ｇ）処理を実行する。
【００２３】
本発明の知識発見システム（６０）において、アンサンブル学習としてブースティングを用いた場合について説明する。
【００２４】
本発明の知識発見システム（６０）において、アンサンブル学習としてバギングを用いた場合について説明する。
【００２５】
本発明の知識発見システム（６０）は、
コンピュータプログラムが格納された記憶部（３３）と、
前記コンピュータプログラムを実行する処理装置（５）と、
出力装置（４）と
を具備し、
前記処理装置（５）は、
１つ以上のデータの特徴を示す属性である入力とクラスである出力との組で表現され、且つ、その出力の具体的な値を示すラベルが設定された学習データと、終了条件とを入力する（ａ）処理を実行し（Ｓ１）、
前記学習データに対して、入力である複数の属性の中から一部の属性をランダムに選択し、更にランダムに選択された同一の属性からなる入力と出力との組であるデータをランダムに選択し、それら選択したデータの入力から出力値を出力するような仮説である決定木を、予め定めた決定木生成アルゴリズムを用いて生成し、決定木のそれぞれの葉に対してその葉に該当した前記選択データのうちで予め定めたクラスであるデータ数の割合（葉に該当し予め定めたクラスである前記選択データ数／葉に該当した前記選択データ数）、あるいは、その割合をなました値（（葉に該当し予め定めたクラスである前記選択データ数＋１）／（葉に該当した前記選択データ数＋２））を葉の値として計算し、データに対する出力値をそのデータが該当した葉の値とするという一連の処理をＴ回（Ｔは１以上の整数）行って、Ｔ個の仮説を生成する（ｂ）処理を実行し（Ｓ２１〜Ｓ２４）、
前記記憶部（３３）には、更に、そのラベルが設定されたデータである複数の候補データが格納され、
前記処理装置（５）は、
前記記憶部（３３）に格納された前記複数の候補データのそれぞれのデータの入力に対し、Ｔ個の決定木に対して、Ｔ個の出力値を計算し、それら出力値の平均をそれぞれのデータに対するスコアとし、スコアから選択確率を計算するような予め定めた関数を用いて、前記複数の候補データの中から、選択候補データを選択する（ｃ）処理を実行し（Ｓ４）、
前記選択候補データを前記学習データに付加して前記（ｂ）処理を実行する（ｄ）処理を実行し（Ｓ５）、
前記終了条件が満たされないとき（Ｓ３−ＮＯ）、前記（ｃ）、（ｄ）処理を実行する（ｅ）処理を実行し、
前記終了条件が満たされたとき（Ｓ３−ＹＥＳ）、前記（ｄ）処理により生成された前記Ｔ個の仮説を前記出力装置（４）に出力する（ｇ）処理を実行する。
【発明の効果】
【００２６】
本発明の学習システムは、所望の結果を予測することができる。
【００２７】
本発明の学習システムは、予測精度が安定する。
【００２８】
本発明の学習システムは、予測精度が向上する。
【図面の簡単な説明】
【００２９】
【図１】図１は、本発明の第１実施形態に係る学習システムとして能動学習システムの構成を示すブロック図である。
【図２】図２は、図１の機能ロジックを示す図である。
【図３】図３は、本発明の第１実施形態に係る学習システムとして能動学習システムの動作を示すフローチャートである。
【図４】図４は、本発明の学習システムに適用される選択関数として数４を説明するための図である。
【図５】図５は、本発明の第２実施形態に係る学習システムとして知識発見システムの構成を示すブロック図である。
【図６】図６は、図５の機能ロジックを示す図である。
【図７】図７は、本発明の第２実施形態に係る学習システムとして知識発見システムの動作を示すフローチャートである。
【発明を実施するための形態】
【００３０】
添付図面を参照して、本発明の実施形態による学習システムを実施するための形態を以下に説明する。
（第１実施形態）
図１は、本発明の第１実施形態に係る学習システムとして能動学習システム５０の構成を示すブロック図である。本発明の能動学習システム５０は、入力装置１と、データ処理装置５と、出力装置４とを具備する。データ処理装置５はコンピュータであり、データ処理装置５には、入力装置１と出力装置４とが接続されている。出力装置４としては表示装置、印刷装置が例示される。
【００３１】
データ処理装置５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６と、メモリ７と、メモリ７より容量が大きい大容量メモリとを具備する。メモリ７には、ＣＰＵ６が実行するためのコンピュータプログラムであるデータ処理部２と、記憶部３とが格納されている。データ処理部２は、学習プログラムである学習部２１と、制御プログラムである制御部２２と、データ選択プログラムであるデータ選択部２３と、データ更新プログラムであるデータ更新部２４とを具備する。制御部２２は、学習部２１、データ選択部２３、データ更新部２４を制御するプログラムである。記憶部３は、リサンプリングデータ記憶部３１、学習データ記憶部３２を具備する。リサンプリングデータ記憶部３１は、アンサンブル学習を行う場合に使われる。また、上記大容量メモリを候補データ記憶部３３と称する。
【００３２】
図２は、図１の機能ロジックを示す図である。
【００３３】
ユーザの入力装置１の操作により、データ処理部２の学習部２１は、学習データと下位学習アルゴリズムと終了条件とを入力する。学習データは、そのラベル（クラスまたは関数値）が設定されたデータである。学習データの詳細については後述する。下位学習アルゴリズムは、能動学習を行うためのコンピュータプログラムである。学習部２１は、入力した学習データと終了条件とを学習データ記憶部３２に格納する。本実施例では、下位学習アルゴリズムは、学習データと終了条件と共に入力されるが、予めに学習データ記憶部３２に格納されていてもよい。
【００３４】
学習部２１は、下位学習アルゴリズムを用いて学習処理を行う。アンサンブル学習により学習データのリサンプリングや属性選択を行う場合、学習部２１は、下位学習アルゴリズムを用いて、アンサンブル学習を行う。学習部２１は、アンサンブル学習により、学習データをリサンプリングして部分データを生成し、学習データの属性をリサンプリングして部分属性を生成し、部分データと部分属性とを含むリサンプリングデータをリサンプリングデータ記憶部３１に格納する。リサンプリング、仮説についての詳細は後述する。学習部２１は、リサンプリングデータ記憶部３１を参照して、リサンプリングデータに基づいて、学習データを学習し仮説を生成する。本実施例では、リサンプリングも下位学習アルゴリズムで実現するようにプログラムを作成した場合には、リサンプリングデータ記憶部３１は省略可能である。
アンサンブル学習を行う場合、学習部２１は、予め決められたリサンプリング回数分だけ上記の学習処理を繰り返して複数の仮説を得る。
【００３５】
候補データ記憶部３３には、複数の候補データが格納されている。複数の候補データの各々は、そのラベル（クラスまたは関数値）が設定されていないデータである。本実施例では、複数の候補データは、候補データ記憶部３３に予めに格納されているが、更新あるいは変更することができる。また、複数の候補データは、学習データと下位学習アルゴリズムと終了条件と共に入力されてもよい。
本実施例では、候補データ記憶部３３は、上記大容量メモリとしてメモリ７と分けられてデータ処理装置５に備えられているが、候補データの数が少ない場合、ＣＰＵ６が高速に計算できるため、メモリ７内に設けられてもよい。この場合、メモリ７の記憶部３は、更に、候補データ記憶部３３を具備する。
【００３６】
データ処理部２のデータ選択部２３は、データ選択処理を行う。データ選択処理では、データ選択部２３は、学習部２１により生成された複数の仮説に対して、後述の重み付き平均を施す。データ選択部２３は、候補データ記憶部３３を参照し、複数の仮説を用いて、複数の候補データの各々に対するスコアを計算する。データ選択部２３は、上記計算されたスコアに基づいて、複数の候補データの中から、第１候補データを選択する。このデータ選択部２３（データ選択プログラム）には、複数の候補データの中から第１候補データを選択するための、予め定められた選択関数が記載されている。選択関数を用いて第１候補データを選択することについての詳細は後述する。
【００３７】
データ処理部２のデータ更新部２４は、データ更新処理を行う。データ更新処理では、データ更新部２４は、データ選択部２３により選択された第１候補データを出力装置４に出力する。ユーザは、上記選択された第１候補データのラベル（クラスまたは関数値）を実験などで確定（決定）する。ユーザの入力装置１の操作により、データ更新部２４は、ユーザにより決定されたラベル（クラスまたは関数値）を上記選択された第１候補データに設定する。データ更新部２４は、上記選択された第１候補データを学習データに付加して学習部２１に出力し、候補データ記憶部３３に格納された第１候補データを削除する。
【００３８】
データ処理部２の制御部２２は、学習データ記憶部３２を参照して、終了条件が満たされないとき、上記の処理を実行するように学習部２１、データ選択部２３、データ更新部２４を制御する。制御部２２は、学習データ記憶部３２を参照して、終了条件が満たされたとき、学習部２１により生成された複数の仮説を出力装置４に出力する。
【００３９】
上記の学習データについて説明する。入力装置１によってデータ処理装置５に入力される学習データをＳとし、そのデータ数をｍ（ｍは１以上の整数）としたとき、ラベル（クラスまたは関数値）が設定された学習データＳは、数１のように表される。
【００４０】
【数１】
0005126694.tif 000002
【００４１】
ここで、ｘｉは入力、ｙｉは出力値を示す。例えば、創薬の場合、ｘｉは化合物の表現、ｙｉは活性の有無などである。ｙｉは、ｙｉ∈｛０、１｝でも、任意のクラスの集合でも、任意の関数値の集合でも構わない。ここでは、説明を簡単にするために、｛０、１｝とし、情報数が少ないクラス、もしくは価値の高いクラスを出力＝１の正例として以下説明するが、複数の候補データが前述のアンバランスなデータや前述の価値の異なるデータの場合以外でも本発明は適用できる。また、多クラスあるいは関数値の場合も、出力＝１の代わりに１つ以上のクラスあるいは関数値を割り当てることなどにより一般性を失わずに本発明を適用できる。または、多クラスの場合には、２クラスの分類を組み合わせることにより、分類を実現することもできる。
【００４２】
上記の下位学習アルゴリズムは、例えば、決定木、決定リスト、ニューラルネットワーク、ナイーブベイズ（Ｎａｉｖｅ  Ｂａｙｅｓ）、ベイジアンネットワーク、回帰分析、サポートベクタマシンなどを学習するためのアルゴリズムである。
ここでは、アンサンブル学習としてバギングを用いて説明を行うが、本発明はブースティングなどの他のアンサンブル学習に適用してもよい。アンサンブル学習を行う場合、リサンプリング回数をＴとし、上記の学習処理をＴ回繰り返して複数の仮説としてＴ個の仮説を得る。
【００４３】
次に、本発明の能動学習システム５０の動作としてアンサンブル学習を行う場合について詳細に説明する。図３は、本発明の能動学習システム５０の動作を示すフローチャートである。
【００４４】
ユーザの入力装置１の操作により、データ処理部２の学習部２１は、入力処理として、学習データと下位学習アルゴリズムと終了条件とを入力する（ステップＳ１）。このとき、学習部２１は、終了条件を学習データ記憶部３２に格納する。
【００４５】
次に、学習部２１は、上記の学習処理として、学習データに対して、下位学習アルゴリズムを用いたアンサンブル学習を行う（ステップＳ２）。
【００４６】
まず、学習部２１は、学習データを学習データ記憶部３２に格納し、リサンプリング回数ｉを１にセットする（ステップＳ２１）。
【００４７】
次に、学習部２１は、アンサンブル学習により、学習データをリサンプリングして部分データを生成する（ステップＳ２２）。ここで、リサンプリングとは、例えば、ｍ個の学習データＳに対して、所定回数だけ１からｍまでの整数ｉをランダムに発生させ、その整数の番号の学習データ（ｘｉ、ｙｉ）をサンプリングすることなどである。
【００４８】
次いで、学習部２１は、不要な属性を減らすために、アンサンブル学習により、学習データと同時に学習データの属性もリサンプリングして部分属性を生成する（ステップＳ２３）。このとき、学習部２１は、部分データと部分属性とを含むリサンプリングデータをリサンプリングデータ記憶部３１に格納する。学習データの場合と異なり学習データの属性は同じ属性が存在しても意味が無いので同じ属性は削除する。適切な属性数の推定値に応じて予め決めた数だけ、属性をリサンプリングする。適切な属性数が推定できない場合には、元の属性数と同数だけリサンプリングする。なお、属性数が膨大過ぎるなどの場合には、この属性選択の前に既存の手法で予め決められた数だけ選択しておいてもよい。
【００４９】
次に、学習部２１は、リサンプリングデータ記憶部３１を参照して、リサンプリングデータに基づいて、下位学習アルゴリズムにより学習データを学習し仮説を生成する（ステップＳ２４）。仮説とは、任意の入力ｘに対する出力値を表している。
【００５０】
次いで、学習部２１は、リサンプリング回数ｊをインクリメント（＋１）する（ステップＳ２５）。
【００５１】
次に、学習部２１は、リサンプリング回数ｊと設定リサンプリング回数Ｔとを比較する（ステップＳ２６）。リサンプリング回数ｊが設定リサンプリング回数Ｔ（Ｔは１以上の整数）を越えない場合（ステップＳ２６−ＮＯ）、学習部２１は、ステップＳ２２〜Ｓ２５を繰り返す。リサンプリング回数ｊが設定リサンプリング回数Ｔを越えた場合（ステップＳ２６−ＹＥＳ）、学習部２１は、Ｔ個の仮説を得る。
【００５２】
次に、データ処理部２の制御部２２は、学習データ記憶部３２を参照して、終了条件を満たしているか否かを判定する（ステップＳ３）。終了条件を満たしていなければ（ステップＳ３−ＮＯ）、制御部２２は、データ選択処理、データ更新処理、学習処理を実行するようにデータ選択部２３、データ更新部２４、学習部２１を制御する。
【００５３】
終了条件を満たしている場合（ステップＳ３−ＹＥＳ）、データ処理部２のデータ選択部２３は、データ選択処理を行う（ステップＳ４）。データ選択処理では、スコア計算処理と選択処理とを含む。
【００５４】
データ選択処理（ステップＳ４）のスコア計算処理では、データ選択部２３は、学習部２１により生成されたＴ個の仮説に対して、重み付き平均を施す。データ選択部２３は、候補データ記憶部３３を参照し、Ｔ個の仮説を用いて、複数の候補データの各々に対するスコアを計算する。スコアは、各候補データの正例らしさの数値である。表現形式が決定木の場合には、例えば、スコアとして、候補データをその決定木で分類する際の各葉の学習データでの部分的正例の割合として数２を用いることができる。
【００５５】
【数２】
0005126694.tif 000003
【００５６】
ここで、Ｓｔを候補データと同じ葉で分類される学習データの集合とする。上付きｔは階乗を表すものではなく、記号として用いられる。また、Ｓｔのうち、Ｓｐｔを正例のクラスに属する学習データの集合とし、入力（ｘｉ、ｙｉ）が葉ｔに含まれる重み×個数をｗｉｔとする。ニューラルネットワークの場合は、例えば、スコアとして、出力値を用いることができる。
【００５７】
または、上記部分的正例の割合をなました値として、例えば、数３を用いることができる。
【００５８】
【数３】
0005126694.tif 000004
【００５９】
従って、重み付き平均とは、アンサンブル学習では、バギングの場合、例えば、各仮説のスコアの平均を用い、ブースティングの場合、例えば、各仮説のスコアの重み付きの値を用いる。
【００６０】
データ選択処理（ステップＳ４）の選択処理では、データ選択部２３は、上記計算されたスコアに基づいて、複数の候補データの中から、第１候補データを選択する。候補データ記憶部３３に格納された候補データの数をＲ（Ｒは１以上の整数）とし、第１候補データの数をＢ（Ｂは１以上の整数）とする。最初に与えられた（入力した）学習データの数が十分多い場合（設定個数よりも多い場合）には、スコアが最大（スコア最大）の候補データから順にＢ個選択すればよい。これは、学習データの数が十分多いので、偏りが無いと考えられるためである。しかし、実際には、最初に与えられた（入力した）学習データの数は、候補データ記憶部３３に格納された候補データの数に比べて少なく、スコア最大の候補データを選択することは、選択すべき候補データが偏ってしまい解が不安定になる可能性がある。そこで、データ選択部２３は、上記の選択関数として以下に示すような指数的に減少する関数に基づいて第１候補データを選択する。
【００６１】
まず、データ選択部２３は、候補データ記憶部３３に格納されたＲ個の候補データを、例えば、正例スコア（ＰＳ）の大きい順に並べる。あるいは、例えば、正例スコアに適当な定数で重み付けた正例スコアの分散もしくは標準偏差などを加えた値の大きい順に並べる。あるいは、例えば、｜ＰＳ−０．５｜の順に並べる。これは、前述のアンバランスなデータや前述の価値の異なるデータである場合に限らず通常の能動学習の場合に適した順番である。どのような順番で並べるかは、ユーザーが入力装置１を用いて選択関数のパラメータとして指定することができる。また、データ選択部２３（データ選択プログラム）には、複数の選択関数が記載されていて、選択関数のパラメータを指定するのと同様に、ユーザーが入力装置１を用いて複数の選択関数の中から１つの選択関数を選択することができる。Ｂ個の第１候補データを選択する場合には、例えば、選択関数として指数関数ｆ（ｚ）＝Ａ・ｅｚ（ｚは１以上の整数）が与えられ、数４が成り立つ定数Ａを定める。
【００６２】
【数４】
0005126694.tif 000005
【００６３】
図４に示されるように、数４は、ｚ番目の第１候補データを所定範囲８（０から指数関数ｆ（ｚ）の値までの範囲）の中から選択することにより、Ｒ個の候補データからＢ個の第１候補データを選択した時に、確率的には、Ｒ個の候補データ全体９から選択されるように定数Ａを定めるものである。数４の変形により、定数Ａは以下のように求めることができる。例えば、乱数を振って、指数関数ｆ（ｘ）より乱数の値が大きければ、候補データを選択し、小さければ、候補データを選択しない、という動作をＢ個の候補データ（第１候補データ）が選択されるまで繰り返される。このように、選択関数である指数関数ｆ（ｘ）の確率に従って候補データが選択される。
【００６４】
【数５】
0005126694.tif 000006
【００６５】
データ選択部２３は、Ｒ個の候補データをスコアの順に参照し、ｚ番目に選択する第１候補データを、１／ｆ（ｚ）の確率で選択するものとする。選択確率１／ｆ（ｚ）が１に近い場合、スコア上位（スコア最大も含む）の第１候補データをほとんど選択し、選択確率１／ｆ（ｚ）が０に近い場合、第１候補データをまばらに選択する。
【００６６】
次に、ステップＳ４の後、データ処理部２のデータ更新部２４は、データ更新処理を行う（ステップＳ５）。データ更新処理では、設定処理と更新処理とを含む。
【００６７】
データ更新処理（ステップＳ５）の設定処理では、データ更新部２４は、データ選択部２３により選択された第１候補データを出力装置４に出力する。ユーザは、上記選択された第１候補データのラベル（クラスまたは関数値）を実験などで確定（決定）する。ユーザの入力装置１の操作により、データ更新部２４は、ユーザにより決定されたラベル（クラスまたは関数値）を上記選択された第１候補データに設定する。
【００６８】
データ更新処理（ステップＳ５）の更新処理では、データ更新部２４は、上記選択された第１候補データを学習データに付加して学習部２１に出力し、候補データ記憶部３３に格納された第１候補データを削除する。その後、学習部２１は、学習処理（ステップＳ２）を実行する。
【００６９】
次に、制御部２２は、学習データ記憶部３２を参照して、終了条件を満たしているか否かを判定する（ステップＳ３）。終了条件を満たしていれば（ステップＳ３−ＹＥＳ）、制御部２２は、学習部２１により生成されたＴ個の仮説を最終仮説として出力装置４に出力する。
【００７０】
終了条件としては、（Ａ）条件、（Ｂ）条件、（Ｃ）条件、（Ｄ）条件、（Ｅ）条件のいずれか１つが挙げられる。（Ａ）条件では、例えば、予め定めた反復回数Ｎを越えたら終了とする。（Ｂ）条件では、予め定めた数の正例が発見できれば終了とする。（Ｃ）条件では、学習データが十分多い場合には、学習データの一部を評価データとして学習に用いずに残しておき、評価データの予測精度が予め定めた値よりも高くなれば終了とする。（Ｄ）条件では、例えばバギングの場合には、推定した予測精度が予め定めた値よりも高くなれば終了とする。予測精度の推定方法は、各学習データに対して、その学習データが用いられなかった仮説でのバギング結果で予測する。これを全ての学習データに対して実行して予測精度を推定する。（Ｅ）条件では、予測精度の傾きが予め定めた値よりも小さくなれば終了とする。
【００７１】
例えば終了条件が（Ａ）条件である場合、制御部２２は、ステップＳ１にて反復回数Ｊを１にセットしておき、データ更新処理（ステップＳ５）が終了したときに反復回数Ｊをインクリメント（＋１）にする。制御部２２は、ステップＳ３にて反復回数Ｊと予め定めた反復回数Ｎとを比較し、反復回数Ｊが予め定めた反復回数Ｎを超えた場合、学習部２１により生成されたＴ個の仮説を出力装置４に出力する。能動学習システム５０では、終了条件を満たさなければ学習データＳの数が（Ｂ×Ｊ）ずつ増える。
【００７２】
本発明の能動学習システム５０の動作としてアンサンブル学習を行う場合について説明したが、アンサンブル学習を行わない場合では、上記のステップＳ２１〜Ｓ２３、Ｓ２５、Ｓ２６は不要である。この場合、ステップＳ２にて学習部２１により生成される仮説の数は１つであるため、データ選択処理（ステップＳ４）のスコア計算処理にて、データ選択部２３は、学習部２１により生成された仮説に対して、重み付き平均を施す必要はない。
また、下位学習アルゴリズムによる学習は、アンサンブル学習としてバギングを用いる場合には独立に行うことができるので、並列に実行することも可能である。
また、学習データとして、属性が少な過ぎる、あるいは全ての属性が重要であると類推されているなど不要な属性を減らす必要が無い場合には、上記のステップＳ２３を省くことができる。
【００７３】
次に、本発明の能動学習システム５０の効果について説明する。
【００７４】
本発明の能動学習システム５０によれば、能動学習を行う際に、所望の結果を予測することができる。例えば、複数の候補データが前述のアンバランスなデータまたは前述の価値の異なるデータの場合に効率的に能動学習を行うことができる。
複数の候補データが前述のアンバランスなデータである場合、本発明の能動学習システム５０では、仮説を用いて複数の候補データの各々に対するスコアを計算し、上記計算されたスコアに基づいて、複数の候補データの中から、第１候補データを選択するため、情報数が少ない候補データを選択することができ、学習データのラベル（クラス、関数値）に属する多様な候補データを得ることができる。このため、より良い仮説を生成すること（所望の結果を予測すること）ができる。
複数の候補データが前述の価値の異なるデータである場合、本発明の能動学習システム５０では、仮説を用いて複数の候補データの各々に対するスコアを計算し、上記計算されたスコアに基づいて、複数の候補データの中から、第１候補データを選択するため、価値の高い候補データを選択することができ、学習データのラベル（クラス、関数値）に属する多様な候補データを得ることができる。このため、より良い仮説を生成すること（所望の結果を予測すること）ができる。
【００７５】
本発明の能動学習システム５０では、複数の候補データの中から、第１候補データを選択するときに、必ずしも情報量最大の候補データを選択するわけではない。本発明の能動学習システム５０では、前述のアンバランスなデータ、前述の価値の異なるデータを含む第１候補データを選択する手法として、上述の選択関数（指数的な関数）を用いる。このため、データ空間から一様にデータが選択され、解の不安定さを防ぐことができる。学習データの数が少ないにも関わらず、最大スコアの候補データばかりを選択した場合、部分的に、例えば決定木で部分的に負例が不足して、より正確な仮説が生成できなくなる。このように、複数の候補データの中から、前述のアンバランスなデータ、前述の価値の異なるデータを含む第１候補データを選択するための選択関数を用いることが好ましい。
【００７６】
本発明の能動学習システム５０によれば、能動学習を行う際に、所望の結果を予測する予測精度が安定する。
本発明の能動学習システム５０では、第１候補データを選択するための基準が予めに決められているわけではない（必ずしも情報量最大の候補データを選択するわけではない）ために、選択される候補データ（第１候補データ）が偏ることはない。つまり、学習がある程度進んで、候補データに対するスコアが類似してきた場合、予めに決められたスコアを選択したのでは、例えば決定木のある部分木のデータばかりが選択される可能性があるが、本発明の能動学習システム５０では、確率的に選択しているので、適切にばらついて選択データ（選択される候補データ）が偏ることが無くデータ空間から一様にデータが選択され、解の不安定さを防ぐことができる。このため、候補データ全体から反映されるような仮説を生成することができ、予測精度が安定する。
【００７７】
本発明の能動学習システム５０によれば、能動学習を行う際に、アンサンブル学習により属性選択を行う場合、所望の結果を予測する予測精度が向上する。
本発明の能動学習システム５０では、学習データをリサンプリングすることに加えて、学習データの属性もリサンプリングするため、不要な属性を除くことができる。これにより、データや不要な属性数に依存する最適な選択確率が幾つであっても、ある程度カバーすることができ、予測精度が向上する。また、属性数が少なくなることにより計算効率が向上するため、予測精度が向上する。元の属性数と同数だけリサンプリングすると、平均的には属性の約６割が選択されることになるが、前述した従来の手法のように５割などと予め定めて５割の属性をランダムに選択した場合よりも広く分散させることができる。
このように、本発明の能動学習システム５０では、部分データと不要な属性を除いた部分属性とにより学習データを学習し複数の仮説を生成した場合、従来の手法よりも迅速に所望の結果を予測することができ、予測精度が向上する。
【００７８】
本発明の能動学習システム５０では、前述のアンバランスなデータや前述の価値の異なるデータで下位学習アルゴリズムに決定木や回帰木を使用する場合に、第１候補データに前述のアンバランスなデータ、前述の価値の異なるデータが含まれるように、スコアの計算に葉での正例の割合もしくはそれをなました値を用いる（数２、数３参照）。このため、本発明の能動学習システム５０によれば、アンバランスなデータや価値の異なるデータを考慮して、より良い仮説を生成すること（所望の結果を予測すること）ができる。
【００７９】
次に、本発明の能動学習システム５０の動作について具体的な例を用いて説明する。本発明の能動学習システム５０として、創薬スクリーニングで、候補データ記憶部３３から活性化合物を探索する問題に適用した場合を考える。この場合、活性化合物がデータ数の少ない価値の高い正例に相当し、非活性化合物がデータ数の多い価値の低い負例に相当する。また、下位学習アルゴリズムは決定木を学習するアルゴリズムとし、アンサンブル学習としてバギングを行うものとする。
学習部２１は、ステップＳ１にて、活性の有無が明らかになっている学習データと、決定木を学習するアルゴリズム（下位学習アルゴリズム）と、終了条件とを受け取り、学習処理（ステップＳ２）にて、現時点のデータ、すなわち、学習データからサンプリングにより生成した複数の部分サンプルを、決定木の下位学習アルゴリズムに学習させ、複数の決定木を得る。
次に、制御部２２は、ステップＳ３にて終了条件を満たしているかを判定し、満たしているなら、得られた複数の決定木を出力装置４に出力し、終了する。
満たしていなければ、データ選択部２３は、データ選択処理（ステップＳ４）にて、候補データ記憶部３３に格納された複数の候補データに対して、得られた複数の決定木の各々の正例スコアを上述した手法で計算し平均を取る。こうして計算された複数の候補データに対するスコアに応じて予め定めた選択関数に従って選択する第１候補データを決める。
選択された第１候補データのラベルが化合物の活性実験などで確定された場合、データ更新部２５は、データ更新処理（ステップＳ５）にて、入力装置１から入力されたラベルを第１候補データに設定する。データ更新部２５は、そのラベル付き選択データ（第１候補データ）を学習データに追加し、候補データ記憶部３３からその選択データを削除する。学習部２１は、第１候補データが追加された学習データにより能動学習を続行する。
【００８０】
（第２実施形態）
本発明の第２実施形態に係る学習システムでは、本発明の第１実施形態に係る学習システム（能動学習システム５０）と重複する説明を省略する。図５は、本発明の第２実施形態に係る学習システムとして知識発見システム６０の構成を示すブロック図である。知識発見システム６０のデータ処理部２は、能動学習システム５０のデータ処理部２のデータ更新部２４に代えて、データ更新部２５を具備する。
【００８１】
図６は、図５の機能ロジックを示す図である。
【００８２】
候補データ記憶部３３には、複数の候補データが格納されている。知識発見システム６０の場合、複数の候補データの各々は、そのラベル（クラスまたは関数値）が設定されたデータである。
【００８３】
データ処理部２のデータ更新部２５は、データ更新処理を行う。知識発見システム６０の場合、データ更新処理では、データ更新部２５は、データ選択部２３により選択された第１候補データを学習データとして学習部２１に出力し、候補データ記憶部３３に格納された第１候補データを削除する。
【００８４】
次に、本発明の知識発見システム６０の動作としてアンサンブル学習を行う場合について詳細に説明する。図７は、本発明の知識発見システム６０の動作を示すフローチャートである。
【００８５】
データ処理部２は、能動学習システム５０と同様にステップＳ１〜Ｓ４を実行する。
次に、データ処理部２のデータ更新部２５は、データ更新処理を行う（ステップＳ６）。
【００８６】
データ更新処理（ステップＳ６）では、データ更新部２５は、データ選択部２３により選択された第１候補データを学習データとして学習部２１に出力し、候補データ記憶部３３に格納された第１候補データを削除する。その後、学習部２１は、学習処理（ステップＳ２）を実行する。
【００８７】
本発明の知識発見システム６０の動作としてアンサンブル学習を行う場合について説明したが、アンサンブル学習を行わない場合では、能動学習システム５０の場合と同様に上記のステップＳ２１〜Ｓ２３、Ｓ２５、Ｓ２６は不要である。この場合、ステップＳ２にて学習部２１により生成される仮説の数は１つであるため、データ選択処理（ステップＳ４）のスコア計算処理にて、データ選択部２３は、学習部２１により生成された仮説に対して、重み付き平均を施す必要はない。
【００８８】
次に、本発明の知識発見システム６０の効果について説明する。本発明の知識発見システム６０の効果については、能動学習システム５０とほぼ同様である。
【００８９】
本発明の知識発見システム６０によれば、知識発見を行う際に、所望の結果を予測することができる。例えば、複数の候補データが前述のアンバランスなデータまたは前述の価値の異なるデータの場合に効率的に再学習（知識発見）を行うことができる。
複数の候補データが前述のアンバランスなデータである場合、本発明の知識発見システム６０では、仮説を用いて複数の候補データの各々に対するスコアを計算し、上記計算されたスコアに基づいて、複数の候補データの中から、第１候補データを選択するため、情報数が少ない候補データを選択することができ、学習データのラベル（クラス、関数値）に属する多様な候補データを得ることができる。このため、より良い仮説を生成すること（所望の結果を予測すること）ができる。
複数の候補データが前述の価値の異なるデータである場合、本発明の知識発見システム６０では、仮説を用いて複数の候補データの各々に対するスコアを計算し、上記計算されたスコアに基づいて、複数の候補データの中から、第１候補データを選択するため、価値の高い候補データを選択することができ、学習データのラベル（クラス、関数値）に属する多様な候補データを得ることができる。このため、より良い仮説を生成すること（所望の結果を予測すること）ができる。
【００９０】
本発明の知識発見システム６０では、複数の候補データの中から、第１候補データを選択するときに、必ずしも情報量最大の候補データを選択するわけではない。本発明の知識発見システム６０では、前述のアンバランスなデータ、前述の価値の異なるデータを含む第１候補データを選択する手法として、上述の選択関数（指数的な関数）を用いる。このため、データ空間から一様にデータが選択され、解の不安定さを防ぐことができる。学習データの数が少ないにも関わらず、最大スコアの候補データばかりを選択した場合、部分的に、例えば決定木で部分的に負例が不足して、より正確な仮説が生成できなくなる。このように、複数の候補データの中から、前述のアンバランスなデータ、前述の価値の異なるデータを含む第１候補データを選択するための選択関数を用いることが好ましい。
【００９１】
本発明の知識発見システム６０によれば、知識発見を行う際に、所望の結果を予測する予測精度が安定する。
本発明の知識発見システム６０では、第１候補データを選択するための基準が予めに決められているわけではない（必ずしも情報量最大の候補データを選択するわけではない）ために、選択される候補データ（第１候補データ）が偏ることはない。つまり、学習がある程度進んで、候補データに対するスコアが類似してきた場合、予めに決められたスコアを選択したのでは、例えば決定木のある部分木のデータばかりが選択される可能性があるが、本発明の知識発見システム６０では、確率的に選択しているので、適切にばらついて選択データ（選択される候補データ）が偏ることが無くデータ空間から一様にデータが選択され、解の不安定さを防ぐことができる。このため、候補データ全体から反映されるような仮説を生成することができ、予測精度が安定する。
【００９２】
本発明の知識発見システム６０によれば、知識発見を行う際に、アンサンブル学習により属性選択を行う場合、所望の結果を予測する予測精度が向上する。
本発明の知識発見システム６０では、学習データをリサンプリングすることに加えて、学習データの属性もリサンプリングするため、不要な属性を除くことができる。これにより、データや不要な属性数に依存する最適な選択確率が幾つであっても、ある程度カバーすることができ、予測精度が向上する。また、属性数が少なくなることにより計算効率が向上するため、予測精度が向上する。元の属性数と同数だけリサンプリングすると、平均的には属性の約６割が選択されることになるが、前述した従来の手法のように５割などと予め定めて５割の属性をランダムに選択した場合よりも広く分散させることができる。
このように、本発明の知識発見システム６０では、部分データと不要な属性を除いた部分属性とにより学習データを学習し複数の仮説を生成した場合、従来の手法よりも迅速に所望の結果を予測することができ、予測精度が向上する。
【００９３】
本発明の知識発見システム６０では、前述のアンバランスなデータや前述の価値の異なるデータで下位学習アルゴリズムに決定木や回帰木を使用する場合に、第１候補データに前述のアンバランスなデータ、前述の価値の異なるデータが含まれるように、スコアの計算に葉での正例の割合もしくはそれをなました値を用いる（数２、数３参照）。このため、本発明の知識発見システム６０によれば、アンバランスなデータや価値の異なるデータを考慮して、より良い仮説を生成すること（所望の結果を予測すること）ができる。
【００９４】
次に、本発明の知識発見システム６０の動作について具体的な例を用いて説明する。本発明の知識発見システム６０として、創薬スクリーニングで、候補データ記憶部３３から活性化合物を探索する問題に適用した場合を考える。この場合、活性化合物がデータ数の少ない価値の高い正例に相当し、非活性化合物がデータ数の多い価値の低い負例に相当する。また、下位学習アルゴリズムは決定木を学習するアルゴリズムとし、アンサンブル学習としてバギングを行うものとする。
学習部２１は、ステップＳ１にて、活性の有無が明らかになっている学習データと、決定木を学習するアルゴリズム（下位学習アルゴリズム）と、終了条件とを受け取り、学習処理（ステップＳ２）にて、現時点のデータ、すなわち、学習データからサンプリングにより生成した複数の部分サンプルを、決定木の下位学習アルゴリズムに学習させ、複数の決定木を得る。
次に、制御部２２は、ステップＳ３にて終了条件を満たしているかを判定し、満たしているなら、得られた複数の決定木を出力装置４に出力し、終了する。
満たしていなければ、データ選択部２３は、データ選択処理（ステップＳ４）にて、候補データ記憶部３３に格納された複数の候補データに対して、得られた複数の決定木の各々の正例スコアを上述した手法で計算し平均を取る。こうして計算された複数の候補データに対するスコアに応じて予め定めた選択関数に従って選択する第１候補データを決める。
能動学習システム５０とは異なり、複数の候補データのラベルは既に既知である。このため、第１候補データのラベルも既に既知である。データ更新部２５は、データ更新処理（ステップＳ５）にて、そのラベル付き選択データ（第１候補データ）を学習データとし、候補データ記憶部３３からその選択データを削除する。学習部２１は、学習データ（第１候補データ）により知識発見を続行する。
【産業上の利用可能性】
【００９５】
本発明の学習システムは、例えば、創薬スクリーニングで活性化合物を探索するなどのバイオインフォマティクスといった用途に適用できる。特に、本発明の学習システムは、前述のアンバランスなデータや前述の価値の異なるデータを含む複数の候補データから第１候補データを選択するようなデータマイニングといった用途に適用可能である。
【符号の説明】
【００９６】
１  入力装置
２  データ処理部
３  記憶部
４  出力装置
５  データ処理装置
６  ＣＰＵ
７  メモリ
２１  学習部
２２  制御部
２３  データ選択部
２４  データ更新部
２５  データ更新部
３１  リサンプリングデータ記憶部
３２  学習データ記憶部
３３  候補データ記憶部
【図１】
0005126694.tif 000007
【図２】
0005126694.tif 000008
【図３】
0005126694.tif 000009
【図４】
0005126694.tif 000010
【図５】
0005126694.tif 000011
【図６】
0005126694.tif 000012
【図７】
0005126694.tif 000013