(57)【要約】【課題】予測精度を保ったまま予測結果の解釈の容易さを向上する予測モデルを作成すること。【解決手段】実施形態によれば、予測モデル作成方法は評価ステップと、繰り返しステップと、統合ステップと、集約ステップとを具備する。評価ステップは過去に蓄積されたデータであり、予測モデルの作成に使用されるものである学習データを離散化し、離散領域毎に事前確率から事後確率を計算するための係数であるリフト値を求め、離散領域毎のリフト値を表す単体予測モデルを生成し、単体予測モデルを学習データに適用して、その予測結果と実績を比較し、予測精度や必要なパラメータの値を求めることにより単体予測モデルを評価する。繰り返しステップは離散領域を変更して、評価ステップを複数回動作させ、複数の単体予測モデルを生成させ、複数の単体予測モデルを評価させる。統合ステップは複数の単体予測モデルの評価結果を１つの統合評価結果に変換する。集約ステップは統合評価結果の非線形部分を線形近似して集約予測モデルを生成する。【選択図】図２
2016091306.tif 000002
【特許請求の範囲】
【請求項１】
過去に蓄積されたデータであり、予測モデルの作成に使用されるものである学習データを離散化し、離散領域毎に事前確率から事後確率を計算するための係数であるリフト値を求め、前記離散領域毎のリフト値を表す単体予測モデルを生成し、前記単体予測モデルを前記学習データに適用して、その予測結果と実績を比較し、予測精度や必要なパラメータの値を求めることにより前記単体予測モデルを評価する評価ステップと、
前記離散領域を変更して、前記評価ステップを複数回動作させ、複数の単体予測モデルを生成させ、前記複数の単体予測モデルを評価させる繰り返しステップと、
前記複数の単体予測モデルの評価結果を１つの統合評価結果に変換する統合ステップと、
前記統合評価結果から集約予測モデルを生成する集約ステップと、
を具備し、
前記集約ステップは、前記統合評価結果の非線形部分を線形近似して前記集約予測モデルを生成する予測モデル作成方法。
【請求項２】
前記評価ステップは、前記単体予測モデルの事後確率の対数と、前記単体予測モデルのＲＯＣ曲線の下側の面積に応じた統合ウェイトとを求め、
前記統合ステップは、前記対数に応じたロジスティック回帰パラメータを求め、前記複数の単体予測モデルの評価結果を前記統合ウェイトと前記ロジスティック回帰パラメータを用いて前記統合評価結果に変換する請求項１記載の予測モデル作成方法。
【請求項３】
前記集約ステップは、前記統合評価結果を該統合評価結果に含まれる前記ロジスティック回帰パラメータを用いるロジスティック回帰式の非線形項を省略し、線形項を残すことにより、前記集約予測モデルを生成する請求項２記載の予測モデル作成方法。
【請求項４】
前記学習データをブートストラップ・サンプリング処理し、重み付き学習データを生成する重み付け学習データ生成ステップをさらに具備し、
前記評価ステップは、前記重み付け学習データを離散化し、前記離散領域毎のリフト値を求め、前記単体予測モデルを生成し、前記単体予測モデルを評価し、
前記繰り返しステップは、
前記重み付き学習データの重みを更新して、前記評価ステップを第１の正整数ｍ回動作させ、ｍ個の単体予測モデルを生成させ、前記ｍ個の単体予測モデルを評価させる第１の繰り返しステップと、
前記ｍ個の単体予測モデルの評価後、前記重み付け学習データ生成ステップを動作させることを第２の正整数ｎ回繰り返し、ｍ×ｎ個の単体予測モデルを生成させ、前記ｍ×ｎ個の単体予測モデルを評価させる第２の繰り返しステップと、を具備し、
前記統合ステップは、前記ｍ×ｎ個の単体予測モデルの評価結果を１つの統合評価結果に変換する請求項１記載の予測モデル作成方法。
【請求項５】
前記第１の繰り返しステップは、ｍが所定回数を超えるか、あるいは予測の最大正答率が１となるかまたは所定値を下回るまで前記評価ステップを動作させる請求項４記載の予測モデル作成方法。
【請求項６】
前記第２の繰り返しステップは、ｎが所定回数を超えるまで前記重み付け学習データ生成ステップを動作させる請求項４記載の予測モデル作成方法。
【請求項７】
前記学習データは、説明変数と目的変数とを含み、
前記重み付き学習データは、ブートストラップ・サンプリングによる学習データの抽出回数を示す重みをさらに含み、
前記評価ステップは、目的変数が目標値となるデータの前記重みの合計をデータ数で割った初期確率と、前記離散領域毎のリフト値を表す単体予測モデルを生成し、
前記初期確率と前記離散領域毎のリフト値とを掛け合わせて前記単体予測モデルの事後確率の対数を求める請求項４記載の予測モデル作成方法。
【請求項８】
コンピュータにより実行されるプログラムであって、前記プログラムは、
過去に蓄積されたデータであり、予測モデルの作成に使用されるものである学習データを離散化し、離散領域毎に事前確率から事後確率を計算するための係数であるリフト値を求め、前記離散領域毎のリフト値を表す単体予測モデルを生成し、前記単体予測モデルを前記学習データに適用して、その予測結果と実績を比較し、予測精度や必要なパラメータの値を求めることにより前記単体予測モデルを評価する評価ステップと、
前記離散領域を変更して、前記評価ステップを複数回動作させ、複数の単体予測モデルを生成させ、前記複数の単体予測モデルを評価させる繰り返しステップと、
前記複数の単体予測モデルの評価結果を１つの統合評価結果に変換する統合ステップと、
前記統合評価結果から集約予測モデルを生成する集約ステップと、
を具備し、
前記集約ステップは、前記統合評価結果の非線形部分を線形近似して前記集約予測モデルを生成するものであるプログラム。
【請求項９】
前記評価ステップは、前記単体予測モデルの事後確率の対数と、前記単体予測モデルのＲＯＣ曲線の下側の面積に応じた統合ウェイトとを求め、
前記統合ステップは、前記対数に応じたロジスティック回帰パラメータを求め、前記複数の単体予測モデルの評価結果を前記統合ウェイトと前記ロジスティック回帰パラメータを用いて前記統合評価結果に変換する請求項８記載のプログラム。
【請求項１０】
前記集約ステップは、前記統合評価結果を該統合評価結果に含まれる前記ロジスティック回帰パラメータを用いるロジスティック回帰式の非線形項を省略し、線形項を残すことにより、前記集約予測モデルを生成する請求項９記載のプログラム。
【請求項１１】
前記学習データをブートストラップ・サンプリング処理し、重み付き学習データを生成する重み付け学習データ生成ステップをさらに具備し、
前記評価ステップは、前記重み付け学習データを離散化し、前記離散領域毎のリフト値を求め、前記単体予測モデルを生成し、前記単体予測モデルを評価し、
前記繰り返しステップは、
前記重み付き学習データの重みを更新して、前記評価ステップを第１の正整数ｍ回動作させ、ｍ個の単体予測モデルを生成させ、前記ｍ個の単体予測モデルを評価させる第１の繰り返しステップと、
前記ｍ個の単体予測モデルの評価後、前記重み付け学習データ生成ステップを動作させることを第２の正整数ｎ回繰り返し、ｍ×ｎ個の単体予測モデルを生成させ、前記ｍ×ｎ個の単体予測モデルを評価させる第２の繰り返しステップと、を具備し、
前記統合ステップは、前記ｍ×ｎ個の単体予測モデルの評価結果を１つの統合評価結果に変換する請求項８記載のプログラム。
【請求項１２】
前記第１の繰り返しステップは、ｍが所定回数を超えるか、あるいは予測の最大正答率が１となるかまたは所定値を下回るまで前記評価ステップを動作させる請求項１１記載のプログラム。
【請求項１３】
前記第２の繰り返しステップは、ｎが所定回数を超えるまで前記重み付け学習データ生成ステップを動作させる請求項１１記載のプログラム。
【請求項１４】
前記学習データは、説明変数と目的変数とを含み、
前記重み付き学習データは、ブートストラップ・サンプリングによる学習データの抽出回数を示す重みをさらに含み、
前記評価ステップは、目的変数が目標値となるデータの前記重みの合計をデータ数で割った初期確率と、前記離散領域毎のリフト値を表す単体予測モデルを生成し、
前記初期確率と前記離散領域毎のリフト値とを掛け合わせて前記単体予測モデルの事後確率の対数を求める請求項１１記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は予測モデル作成方法に関する。
【背景技術】
【０００２】
大規模データ活用の重要性が広く認識され、大量の顧客情報の分析や、機器のセンサデータに基づく異常検知など、様々な場面でデータ分析技術や予測モデルが活用されている。
【０００３】
ソフトウェア開発管理の分野においても、各種ツールやインフラの発展に伴い、大量のソフトウェア開発データが蓄積されるようになり、予測モデルの構築による開発プロジェクトのコントロールが重要な課題となっている。
【０００４】
予測モデルの活用を考えた際に、予測モデルに望まれる特性としては、予測精度が高いことに加えて、「なぜ、そのような予測に至ったか？」の原因の追究など、予測結果の解釈の容易さも重要な要素となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開2010-272004号公報
【特許文献２】特開2012-194894号公報
【特許文献３】特開2010-9177号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これまで、様々な予測モデルが提案されているが、高い予測精度と予測結果の解釈の容易さを両立することは困難だった。ナイーブベイズや決定木などの単純な予測モデルは、予測結果の解釈の容易さの点では優れているが、予測精度の面ではランダム・フォレスト等のより複雑な集団学習の手法に劣る。一方、ランダム・フォレストなどの集団学習の手法は、予測精度の面では優れているが、予測結果がブラックボックス化しがちであり、予測結果の解釈の容易さの点では劣る。
【０００７】
本発明の目的は、予測精度を保ったまま予測結果の解釈の容易さを向上する予測モデルを作成することである。
【課題を解決するための手段】
【０００８】
実施形態によれば、予測モデル作成方法は評価ステップと、繰り返しステップと、統合ステップと、集約ステップとを具備する。評価ステップは過去に蓄積されたデータであり、予測モデルの作成に使用されるものである学習データを離散化し、離散領域毎に事前確率から事後確率を計算するための係数であるリフト値を求め、離散領域毎のリフト値を表す単体予測モデルを生成し、単体予測モデルを学習データに適用して、その予測結果と実績を比較し、予測精度や必要なパラメータの値を求めることにより単体予測モデルを評価する。繰り返しステップは離散領域を変更して、評価ステップを複数回動作させ、複数の単体予測モデルを生成させ、複数の単体予測モデルを評価させる。統合ステップは複数の単体予測モデルの評価結果を１つの統合評価結果に変換する。集約ステップは統合評価結果の非線形部分を線形近似して集約予測モデルを生成する。
【図面の簡単な説明】
【０００９】
【図１】実施形態の予測モデル作成装置の構成の一例を示すブロック図である。
【図２】実施形態の予測モデル作成方法の一例を示すフローチャートである。
【図３】ブートストラップ・サンプリングにより重み付け学習データを作成する動作の一例を示す。
【図４】評価関数としてエントロピーを用いた場合の説明変数の離散化の一例を示す。
【図５】単体予測モデルの一例をリフト値の計算例とともに示す。
【図６】対数スコアの計算例を示す。
【図７】最大正答率の計算例を示す。
【図８】ＲＯＣ曲線及びＡＵＣの一例を示す。
【図９】単体予測モデルの評価結果の一例を示す。
【図１０】重みの更新の一例を示すフローチャートである。
【図１１】重みの更新例を示す。
【図１２】単体予測モデル統合用のパラメータの一例を示す。
【図１３】統合スコアの計算例を示す。
【図１４】集約予測モデルの一例を示す。
【図１５】単体予測モデルと集約予測モデルの関係の一例を示す。
【図１６】実施形態の集約予測モデルと、統合予測モデル（統合スコアを直接予測に利用）と、ランダム・フォレスト予測モデルとの比較結果の一例を示す。
【発明を実施するための形態】
【００１０】
実施形態を説明する前に、実施形態の説明に関係する用語を説明する。
【００１１】
・尺度水準  
変数やその測定データに対して、それらが表現する情報の性質に基づき数学・統計学的に分類した基準。低い方から順に、名義尺度、順序尺度、間隔尺度、比例尺度の４つの尺度水準があり、高い水準はより低い水準の性質を含む形になっている。
【００１２】
・学習データ  
予測モデルの学習に用いられるデータの集合。各データは、１つ以上の説明変数、及び１つの目的変数から成るベクトルとして表現される。全ての説明変数の値の組み合わせに対して目的変数が所定の値になるように予測モデルを学習することが目標である。学習データの個々のデータに重みを付加したものを、重み付き学習データと呼ぶ。
【００１３】
・テストデータ  
予測モデルの評価（テスト）に用いられるデータの集合。データセットの構造自体は、学習データと同じである。
【００１４】
・ブートストラップ・サンプリング  
１つのデータセットから、データ数と同じ回数の復元抽出を行って新たなサンプルを生成し、その繰り返しにより、母集団の性質やモデルの推測の誤差などを分析する方法。復元抽出されたサンプルを、ブートストラップ・サンプルという。
【００１５】
・ＯＯＢ（Out-of-Bag）データ  
ブートストラップ・サンプリングにおいて、復元抽出で一部のデータが重複して選択された場合、その分、一度も選択されないデータが生じる。これらのデータを集めたものを、ＯＯＢ（Out-of-Bag）データと呼ぶ。
【００１６】
・正答率  
予測モデルの評価指標の一つ。全予測対象データにおける正答（例えば、正と負の２クラスの判別において、正と予測して実際に正、または負と予測して実際に負）の割合。判別のための閾値を変化させると、それに伴って正答率も変化する。その最大値を最大正答率と呼ぶ。また、最大正答率における、誤判別されたデータを誤判別データと呼ぶ。
【００１７】
・ＲＯＣ曲線  
予測モデルの性能評価のためのグラフ。予測モデルの出力が高い順にデータをソートして、横軸に偽陽性率（例えば、正と負の２クラスの判別において、正と予測して実際は負だった割合）、縦軸に真陽性率（正と予測して実際に正だった割合）をプロットしたもの。ＲＯＣ曲線の下側の面積はＡＵＣ（Area Under the ROC Curve）と呼ばれ、予測モデルの評価指標の一つで、０から１の間の値をとる。ＡＵＣが１に近いほど、予測精度が高いと言える。
【００１８】
・バイアス−バリアンス分解  
予測モデルの誤差は、予測モデルの真のモデルからの偏りに起因する誤差（バイアス）、学習データのサンプルのばらつきに起因する誤差（バリアンス）、及び本質的に削減不可能な誤差に分解できる。バイアスとバリアンスには、一般に、トレードオフの関係がある。
【００１９】
・交差検定（Ｋ分割交差検定）  
予測モデルの性能評価のための実験方法の一つ。予測モデルの学習・評価に用いるデータセットをＫ分割（Ｋ＝５，１０等が多く用いられる）し、（Ｋ−１）セットを学習データ、残りの１セットをテストデータとし、予測モデルの評価をＫ回繰り返す。
【００２０】
・予測モデル  
対象の観察データや測定データから要因間の関係や内在する傾向、パターンを学習し、諸量を計算できる形のモデルとして表現したもの。予測の対象となる変数（目的変数）が連続値の場合を回帰モデル、離散値の場合を判別モデルという。判別のための代表的な予測モデルとしては、例えば、決定木、ナイーブベイズなどがある。
【００２１】
対象の観察データの一例は顧客データがあり、測定データの一例は種々の機器のセンサデータがある。顧客データは過去の顧客のパターン情報を含んでおり、例えば、顧客の特性と購買パターンを構造化したものが予測モデルとなる。予測モデルを作っておくと、新しい顧客が来た時に、こういう商品があれば購買するであろうという予測を立てることができる。単純な予測モデルは生のデータを入力し予測結果を出力する関数で表すことができる。
【００２２】
・ナイーブベイズ  
予測モデルの一種。目的変数の判別に関する事後確率をベイズの定理に基づき計算したもの。ただし、事後確率の計算において、説明変数の独立性を仮定している。事後確率は、事前確率に対してリフト値と呼ばれる一種の補正係数を掛け合わせて行くことによって計算する。モデルの出力（事後確率の推定値）の対数をとったものを対数スコアと呼ぶ。
【００２３】
・集団学習  
単独ではそれほど精度が高くない複数の予測モデルを統合・組み合わせることで、精度を向上させる学習方法。複数の結果の統合・組み合わせの方法としては、多数決、平均などが用いられる。代表的な集団学習のアルゴリズムとして、バギング（ブートラップ・サンプリングした学習データの予測結果を多数決で評価）、ブースティング（予測結果に基づいて学習データの重みを変更）、ランダム・フォレストなどがある。ここでは、集団学習の構成要素となる個々の予測モデルを単体予測モデル、複数の単体予測モデルの評価結果を統合・組み合わせたものを統合評価結果、複数の単体予測モデルを統合・組み合わせたモデルを統合予測モデルと呼ぶ。単体予測モデルを統合・組み合わせる際、各単体予測モデルに対して割り当てられた重みを、統合ウェイトと呼ぶ。また、統合予測モデルを１つの単体予測モデルに変換する操作を集約と呼ぶ。
【００２４】
・ランダム・フォレスト  
決定木を用いた集団学習のアルゴリズムの一種。バギングの改良版であり、決定木における説明変数の選択をランダム化して、個々の予測のばらつきを大きくすることにより、統合した結果の予測精度を高めることに成功。
【００２５】
以下、実施形態について図面を参照して説明する。  
図１は、予測モデル作成方法を実行するシステムの構成例を示す機能ブロック図である。破線はモデル作成処理部７０への入力を意味し、実線はモデル作成処理部７０からの出力を意味する。システムは、入力データ管理部１０と、出力データ管理部４０と、モデル作成処理部７０とからなる。入力データ管理部１０は、ブートストラップ最大回数データ１２、ブースティング最大回数データ１４、学習データ１６、テストデータ１８を管理する。出力データ管理部４０は、重み付け学習データ４２、単体予測モデル４４、対数スコア４６、最大正答率データ４８、誤判別データ５０、統合ウェイト５２、統合スコア５４、集約予測モデル５６、評価結果データ５８を管理する。モデル作成処理部７０は、ブートストラップ・サンプル生成部７２、ナイーブベイズ予測モデル生成部７４、ブースティング処理部７６、予測モデル統合部７８、予測モデル集約部８０、予測モデル評価部８２を含む。
【００２６】
ブートストラップ最大回数データ１２はブートストラップ・サンプル生成部７２に入力される。ブースティング最大回数データ１４はブースティング処理部７６に入力される。学習データ１６はブートストラップ・サンプル生成部７２に入力される。テストデータ１８は評価結果データ５８に入力される。
【００２７】
ブートストラップ・サンプル生成部７２は重み付き学習データ４２を出力する。重み付き学習データ４２はナイーブベイズ予測モデル生成部７４とブースティング処理部７６に入力される。ナイーブベイズ予測モデル生成部７４は、単体予測モデル４４、対数スコア４６、最大正答率データ４８、誤判別データ５０、統合ウェイト５２を出力する。最大正答率データ４８、誤判別データ５０はブースティング処理部７６に入力される。ブースティング処理部７６は重み付き学習データ４２も出力する。重み付け学習データ４２、対数スコア４６、統合ウェイト５２は、予測モデル統合部７８に入力される。予測モデル統合部７８は統合スコア５４を出力する。統合スコア５４は予測モデル集約部８０に入力され、予測モデル集約部８０は集約予測モデル５６を出力する。統合スコア５４、集約予測モデル５６は予測モデル評価部８２に入力され、予測モデル評価部８２は評価結果データ５８を出力する。
【００２８】
実施形態は、予測精度が高く、かつ、結果の解釈が容易な予測モデルを作成するものである。  
予測精度の向上のために、ブートストラップ・サンプリングとブースティングを組み合わせて学習データをランダム化し、ナイーブベイズ予測モデルに適用している。ここで、ＯＯＢデータのＡＵＣから計算した重み（統合ウェイト）で各予測モデルの評価結果の加重平均をとり評価結果を統合し、その結果に基づいて予測モデルを生成することにより、高い予測精度が実現される。過去のデータである学習データから予測モデルを作る際、新しいデータであるテストデータに対する予測精度を出来るだけ高めることが目標だが、学習データに対して過剰に適合させる（オーバーフィッティング）と、かえってテストデータに対する予測精度が悪くなることがある。ＯＯＢデータ、すなわち、ブートストラップ・サンプリングにおける重複を許したランダム抽出で選ばれなかったデータ、を用いることにより、テストデータに対して実際に予測精度を評価する前段階で、オーバーフィッティングの度合いや新しいデータに対する予測性を事前に見積もることができる。ＯＯＢデータに対する予測精度が低い場合には、仮に、学習データに対する予測精度が高くても、テストデータに対する予測精度は高くない可能性がある。このような情報を、評価結果を統合する際のウェイトとして利用することで、トータルとして高い予測精度を実現している。
【００２９】
ナイーブベイズ予測モデルは、一般に、バイアスが大きくバリアンスが小さい比較的安定した予測モデルであるため、従来、集団学習のアルゴリズムとはあまり相性が良くなかった。集団学習では、むしろ、決定木のような、バイアスが小さくバリアンスが大きい不安定な予測モデルの方が適用効果が大きい。そこで、ブートストラップ・サンプリングとブースティングを組み合わせて適用することにより、ナイーブベイズの予測結果のばらつきを大きくし、さらに、ＯＯＢデータのＡＵＣから計算した重み（統合ウェイト）を使うことにより、極端な予測結果の影響を減らして、予測精度を高めることができる。
【００３０】
結果の解釈容易性の向上のために、集団学習による予測モデルの非線形部分を線形近似して、予測精度を概ね保ったまま等価な単体のナイーブベイズの予測モデルに集約することにより、予測結果の解釈が容易なモデルを実現した。集約予測モデルは単一のナイーブベイズモデルと等価であるので、単一のモデルを調べるだけでよく、また、各変数の影響を独立に考慮することができるので、予測結果の解釈が容易である。
【００３１】
図２は、予測モデル作成方法の一例を示すフローチャートである。  
ブロック１０２で、学習データ１６がブートストラップ・サンプル生成部７２に入力される。ブートストラップ・サンプル生成部７２には、ブートストラップ最大回数データ１２が設定されている。学習データ１６は、予測モデル作成のための生データであり、顧客データ等である。
【００３２】
ステップ１０４で、ブートストラップ・サンプル生成部７２は、学習データ１６に対して、データの数と同じ回数、重複ありのランダム抽出（ブートストラップ・サンプリングと呼ばれる）を実施し、重み付き学習データ４２を出力する。
【００３３】
図３は、ブートストラップ・サンプリングの一例を示す。学習データ１６は、多数、例えば２０個のデータセットからなり、データセットは、データの識別子、説明変数Ｘ１、Ｘ２、Ｘ３、目的変数Ｙ（２値）を含む。予測モデルの学習の目標は、例えば目的変数Ｙ＝１を判別することである。ブートストラップ・サンプリングにより得られる重み付け学習データ４２も２０個のデータセットからなり、データセットは、データの識別子、説明変数Ｘ１、Ｘ２、Ｘ３、目的変数Ｙ（２値）、重みを含む。全てのデータセットの重みの合計は、データセットの数（＝２０）である。識別子ＩＤ＝１、２のデータは１回も抽出されておらず、識別子ＩＤ＝３のデータは２回抽出されている。
【００３４】
ステップ１０６で、ブートストラップ・サンプル生成回数のカウンタがインクリメント（＋１）される。
【００３５】
ステップ１０８で、ナイーブベイズ予測モデル生成部７４は、重み付き学習データ４２の説明変数Ｘを離散化する。重み付き学習データ４２の各説明変数Ｘ１、Ｘ２、Ｘ３が順序尺度（あるいは間隔尺度、比例尺度）の場合、あらかじめ決定した評価関数に基づいて変数を離散化する。離散化のための主な評価関数としては、エントロピー、期待リフト値（特願２０１３−１１８０９１）などがあるが、いずれを用いてもよく、評価関数は特に限定しない。
【００３６】
一例として、評価関数としてエントロピーを用いた場合の説明変数Ｘ１の離散化を図４に示す。変数毎に離散化の候補を幾つか用意し、評価関数が最小となる候補に決定する。候補２で、エントロピーが最小であるので、変数Ｘ１の離散化は候補２に決定する。変数Ｘ２も同様の方法で離散化される。変数Ｘ３は、元々、名義尺度の離散変数なので、離散化の必要がない。
【００３７】
ステップ１１０で、ナイーブベイズ予測モデル生成部７４は、各説明変数Ｘ１、Ｘ２について各離散領域のリフト値を計算する。リフト値は、ナイーブベイズ手法において、事前確率Ｐ（Ａ）から事後確率Ｐ（Ａ│Ｄ）を計算するための一種の補正係数であり、ベイズの定理を式変形した以下の式で定義される。  
Ｐ（Ａ│Ｄ）＝Ｐ（Ａ）×Ｐ（Ｄ│Ａ）／Ｐ（Ｄ）  
事後確率Ｐ（Ａ│Ｄ）は変数Ｘが離散領域Ｄに入ったときに、変数Ｙ＝Ａとなる確率である。事前確率Ｐ（Ａ）は何も条件がないときに、変数Ｙ＝Ａとなる確率である。リフト値Ｐ（Ｄ│Ａ）／Ｐ（Ｄ）の分子：Ｐ（Ｄ│Ａ）は変数Ｙ＝Ａの条件下で、変数Ｘが離散領域Ｄに入る確率であり、分母：Ｐ（Ｄ）は変数Ｘが離散領域Ｄに入る確率である。結果として得られる（変数、離散領域、リフト値）の組が、単体予測モデル４４となる。
【００３８】
単体予測モデル４４の一例をリフト値の計算例とともに図５に示す。なお、単体予測モデルは初期確率（Ｙ＝１の重みの合計を全データ数で割った値）も含む。
【００３９】
ステップ１１２で、ナイーブベイズ予測モデル生成部７４は、重み付き学習データ４２による単体予測モデル４４の評価を行なう。重み付き学習データ４２を単体予測モデル４４に適用して、その出力に基づき評価する。単体予測モデル４４の評価結果は、対数スコア（事後確率の対数）４６、最大正答率データ４８、誤判別データ５０及びＯＯＢデータのＡＵＣから構成される。
【００４０】
対数スコア４６は、対象データの各要素（ＩＤ＝１，２，…）に対してナイーブベイズ予測モデルを適用して計算する。対数スコア４６は、初期確率に、各説明変数Ｘ１，Ｘ２，…の該当する離散領域のリフト値を掛け合わせて、最後にＬｏｇ１０をとることによって得られる。
【００４１】
対数スコア４６の計算例を図６に示す。変数Ｘ１は離散領域Ｄ１，１に含まれ、変数Ｘ２は離散領域Ｄ２，２に含まれる。識別子ＩＤ＝１、２のデータは、重み＝０なので適用対象外である。識別子ＩＤ＝３のデータの対数スコアはＬｏｇ１０（０．４×０．６５９×２．１３３×…）＝０．７４９である。ここで、０．４は初期確率であり、０．６５９はＸ１∈Ｄ１，１のリフト値、２．１３３はＸ２∈Ｄ２，２のリフト値である。
【００４２】
ナイーブベイズ予測モデルを適用して得られる各データの対数スコアが高いほど、当該データがＹ＝１である確率が高いと期待される。対数スコアの閾値を決めて、対数スコアが閾値以上のデータをＹ＝１とみなすことにより予測結果が確定する。ここで、予測結果と実績を比較することにより、予測モデルの正答率が計算できる。
【００４３】
対数スコアの閾値を動かすと、それに伴って正答率も変化する。正答率の最大値を最大正答率データ４８と呼ぶ。また、最大正答率において、予測と実績が異なるデータの集合を誤判別データ５０と呼ぶ。
【００４４】
最大正答率の計算例を図７に示す。閾値１とした場合、Ｙ＝１と予測し、実績もＹ＝１だったデータの重みの合計は５であり、Ｙ＝０と予測し、実績もＹ＝０だったデータの重みの合計は１２である。全データの重みの合計は２０であるので、正答率＝（５＋１２）／２０＝０．８５である。閾値２とした場合、同様にして計算すると、正答率＝（７＋７）／２０＝０．７である。そのため、最大正答率＝０．８５、誤判別データ＝｛４，１１｝である。
【００４５】
予測結果の一般的な評価方法として、正答率の他に、ＲＯＣ曲線がある。ＲＯＣ曲線の下側の面積は、ＡＵＣ（Area Under the ROC Curve）と呼ばれる。
【００４６】
重み付き学習データ４２において、重みを反転（重み＞０のデータを重み＝０に変更、重み＝０のデータを重み＝１に変更）させたデータを、ＯＯＢデータと呼ぶ。
【００４７】
ＯＯＢデータに対してＡＵＣを計算した値auc_oobから、統合スコア計算時（ステップ１２４）の各単体予測モデル４４の重みである統合ウェイト（ｗ）５２が得られる。  
ｗ＝ｌｏｇｅ（auc_oob／（１−auc_oob））  
ただし、auc_oob＜＝０．５の場合、ｗ＝０となる。
【００４８】
ＲＯＣ曲線及びＡＵＣの一例を図８に示す。ＲＯＣ曲線は、対数スコアの高い順にデータをソートして、横軸に偽陽性率、縦軸に真陽性率をプロットしたグラフである。縦軸の真陽性率は、Ｙ＝１と予測して実際もＹ＝１だった割合であり、横軸の偽陽性率は、Ｙ＝１と予測して実際はＹ＝０だった割合である。ＲＯＣ曲線の下側の面積がＡＵＣであり、この例ではＡＵＣ＝０．８７５である。
【００４９】
ステップ１１２で出力される最大正答率データ４８及び誤判別データ５０は、ステップ１１６の「重み付き学習データの重みを更新」で使用される。ステップ１１２で出力される対数スコア４６及び統合ウェイト（ｗ）５２は、ステップ１２４の「統合スコアの計算」で使用される。
【００５０】
図９は、単体予測モデルの評価結果の一例を示す。重み付き学習データ（重み＝０を除去）からは、対数スコア（識別子ＩＤ＝３のデータについて０．７４９）、最大正答率（＝０．８５）、誤判別データ５０（＝｛４，１１｝）が得られる。ＯＯＢデータからは、auc_oob＝０．８７５より、統合ウェイトｗ（＝１．９４６）が得られる。
【００５１】
ステップ１１４で、ブースティング処理部７６はブースティング処理を終了すべきか否かを判定する。ブースティング処理とは、学習データによる予測モデルの評価結果に基づいて、学習データの重みを調整する処理である。代表的なブースティング手法として、AdaBoost、LogitBoost等があるが、いずれを用いてもよく、ブースティング手法は特に限定しない。
【００５２】
終了判定は、ブースティング処理の回数、最大正答率、または最大正答率に基づくことができる。例えば、ブースティング処理の回数がブースティング最大回数データ１４（値はＮｂｓｔ）を超えるか、最大正答率＝１（誤判別データセット＝φ）となるか、または最大正答率が０．５を下回った場合、ブースティング処理のループから抜ける。
【００５３】
終了判定の結果が否の場合は、ステップ１１６で、ブースティング処理部７６が重み付き学習データ４２の重みを更新する（ブースティング処理）。ブースティング処理部７６は、重み付き学習データ４２、最大正答率データ４８、誤判別データ５０を入力して、各データに対する重みを再計算し、重み付き学習データ４２を更新する。
【００５４】
重みの更新例を図１０に示す。重みの更新では、誤判別したデータの重みを増して、全体を正規化する。ステップ１００１で、ｂ＝ａ／（１−ａ）を計算する。ここで、ａは最大正答率である。ステップ１００２で、誤判別データの重みをｂ倍する（Ｗ_temp＝ｂｘＷ_old）。なお、正しく判別したデータの重みは変更しない（Ｗ_temp＝Ｗ_old）。ステップ１００３で、変更前と変更後の全データの重みの比を求める（ｋ＝ΣＷ_temp／ΣＷ_old）。ステップ１００４で、変更後の重みをｋで割って正規化する（Ｗ_new＝Ｗ_temp／ｋ）。Σはデータの数についての積算である。
【００５５】
図１１は、更新された重み付け学習データの一例を示す。  
図９に示すように、最大正答率＝０．８５であるので、ｂは次のように計算される（ステップ１００１）。  
ｂ＝０．８５／（１−０．８５）＝５．６６６
ＩＤ＝３のデータは正しく判別されたので、重みは変更しない（ステップ１００２）。  
Ｗ３＿ｔｅｍｐ＝Ｗ３＿ｏｌｄ＝２  
ＩＤ＝４のデータは誤って判別されたので、重みをｂ倍する（ステップ１００２）。  
Ｗ４＿ｔｅｍｐ＝ｂｘＷ４＿ｏｌｄ＝１１．３３３  
以下、同様に、正判別か誤判別かに応じて重みを更新する。  
ΣＷｉ＿ｔｅｍｐ＝３１  
ΣＷｉ＿ｏｌｄ＝２０  
ｋ＝ΣＷｉ＿ｔｅｍｐ／ΣＷｉ＿ｏｌｄ＝１．５５  
Ｗ３＿ｎｅｗ＝Ｗ３＿ｔｅｍｐ／ｋ＝１．２９  
Ｗ４＿ｎｅｗ＝Ｗ４＿ｔｅｍｐ／ｋ＝７．３１  
この後、ステップ１１８でブースティング処理回数のカウンタがインクリメント（＋１）され、ステップ１０８に戻り、ブースティング処理が継続される。
【００５６】
ブースティング終了判定の結果がＯＫの場合は、ステップ１２０で、ブートストラップ・サンプル生成部７２は、ブートストラップ・サンプル処理を終了すべきか否かを判定する。終了判定は、ブートストラップ・サンプル生成回数に基づくことができる。例えば、ブートストラップ・サンプル生成回数がブートストラップ最大回数データ１２（値はＮｂｓｐ）を超える場合、ブートストラップ・サンプル生成処理のループから抜ける。
【００５７】
終了判定の結果が否の場合は、ステップ１０４に戻り、ブートストラップ・サンプル生成処理が継続される。
【００５８】
ここまでの処理で、ブートストラップ・サンプリング処理とブースティング処理の２つのループを入れ子（ブースティングループが内側、ブートストラップ・サンプリングループが外側）で繰り返した結果、様々な重みに変化した重み付き学習データ４２と、それに対応する単体予測モデル４４、対数スコア４６、統合ウェイト５２が、出力データ管理部４０に保存される。以後、各ループをＲｕｎ＝１，２，…として参照する。例えば、Ｎｂｓｔ＝１０，Ｎｂｓｐ＝２０の場合、Ｒｕｎ＝１から始まり、最大でＲｕｎ＝１０ｘ２０＝２００個までの単体予測モデル４４及びこれらのデータセットが存在する可能性がある。
【００５９】
ブートストラップ・サンプリング終了判定の結果がＯＫの場合は、予測モデル統合部７８は各Ｒｕｎ毎に出力データ管理部４０に保存されている複数の単体予測モデル４４を統合する。先ず、ステップ１２２で、予測モデル統合部７８は重み付き学習データ４２と対数スコア４６を用いて、各Ｒｕｎにおけるロジスティック回帰パラメータα，βを計算する。具体的には、対数スコア４６を説明変数（＝Ｓ）、重み付き学習データ４２のＹを目的変数として、次式のロジスティック回帰分析を実施し、ロジスティック回帰パラメータα，βを求める。  
Ｐ（Ｙ＝１）＝１／（１＋ｅ−（α＋β×Ｓ））
各Ｒｕｎで得られる個々のデータの対数スコア４６は、変数の独立性を仮定した事後確率の近似指標であるが、厳密な意味での確率値でない（０から１の範囲に収まらない）ため、複数の単体予測モデル４４を統合する際、スケールがばらばらで予測精度が落ちてしまうことが実験により確認された。そこで、対数スコア４６をロジスティック回帰式で変換することにより、０から１の範囲で正規化され、その結果、複数の単体予測モデル４４を統合する際の予測精度が向上する。
【００６０】
これにより、図１２に示すように、ステップ１１２で計算した統合ウェイトｗ、auc_oobデータとロジスティック回帰パラメータα，βとを併せて、単体予測モデル統合用のパラメータとして使用する。
【００６１】
ステップ１２４で、予測モデル統合部７８は、全Ｒｕｎの単体予測モデル４４とモデル統合用パラメータｗ，α，βを用いて、集団学習の予測モデルの一種である統合予測モデルの統合スコアＳａｌｌを計算する。
【００６２】
統合スコアＳａｌｌの計算例を図１３に示す。予測モデル統合部７８は、全Ｒｕｎの単体予測モデル４４から導出される対数スコアＳｎ（＝Σｌｏｇ（Liftｉ（ｎ））、Σはｉ＝０からｍの積算である）をロジスティック回帰式（Ｐｎ＝１／（１＋ｅ−（αｎ＋βｎ×Ｓｎ）））で変換して、各単体予測モデル４４の重みｗで加重平均をとることにより、複数の単体予測モデル４４を統合・組み合わせた統合予測モデルの統合スコアＳａｌｌを計算する。  
Ｓａｌｌ＝Σｗｉ×Ｐｉ／Σｗｉ 
ここで、単体予測モデル４４の説明変数をＸ１，Ｘ２，…Ｘｍ、Ｒｕｎ＝ｋにおける初期確率をLift０（ｋ）、変数Ｘｉのリフト値をLiftｉ（ｋ）とする。Σはｉ＝０からｍの積算である。
【００６３】
ステップ１２６で、予測モデル集約部８０は、統合予測モデルを集約した１つの単体予測モデル（集約予測モデル５６）を構築する。具体的には、図１４に示すように、統合スコアに含まれるロジスティック回帰式（Ｐｎ＝１／（１＋ｅ−（αｎ＋βｎ×Ｓｎ）））をテーラー展開して得られた予測式の非線形部分を線形近似（非線形の項を無視して線形項のみとする）して、式変形や項の整理を行うことにより、集約予測モデル５６が得られる。
【００６４】
集約予測モデル５６において、Ａを初期確率（ｌｏｇ）、Ｂを変数Ｘｊのリフト値（ｌｏｇ）とみなすことにより、単体のナイーブベイズ予測式が得られる。これにより、ブートストラップ・サンプリング処理とブースティング処理の２つのループを入れ子で繰り返し、様々な重みの重み付き学習データに対応する単体予測モデルが多数得られ、これらを統合した１つの集約予測モデルが得られる。
【００６５】
ステップ１２８で、予測モデル評価部８２は、テストデータによる統合予測モデル、集約予測モデル５６の評価を行なう。統合予測モデルは実施例では構築していないが、統合スコアを直接予測に利用した仮想的なモデルを統合予測モデルとする。統合予測モデル及び集約予測モデル５６をテストデータに適用して、評価結果データ５８を得る。
【００６６】
図１５に示すように、単体予測モデル４４は、全てのＲｕｎに対応する重みｗと、ロジスティック回帰パラメータα、βを含む。一方、集約予測モデル５６は、集約された離散領域とリフト値をもつ単一のナイーブベイズ予測モデルである。
【００６７】
予測モデルの評価は、一般的な手法、例えば、前述のＡＵＣなどを用いることができる。ここでは、一例として、ＮＡＳＡが公開しているソフトウェア開発データの４つのデータセットを用いて、ランダム・フォレスト、統合予測モデル、集約予測モデル５６との比較を行った。評価結果を図１６に示す。５分割交差検定（全データを５分割し、４つを学習データ、１つをテストデータとした評価を５回繰り返す方法）で予測精度（ＡＵＣ）を計算する。これを５回繰り返し、その平均値を求めた。その結果、４つのデータセット全てにおいて、統合予測モデル、集約予測モデル５６の予測精度（ＡＵＣ）がランダム・フォレストを上回った。統合予測モデルと集約予測モデル５６とを比較すると、今回のデータセットにおいて、予測精度はほぼ同等である。ただし、モデルの複雑さの面では、統合予測モデルは、他の集団学習のモデル（ランダム・フォレスト等）とあまり変わらないが、集約予測モデル５６は、単一のモデルに集約されているため、構造が単純であり、モデルの解釈（予測結果に至った原因の分析等）が容易である。
【００６８】
以上説明したように、実施形態によれば、ブートストラップ・サンプリングとブースティングを組み合わせて学習データをランダム化し、ナイーブベイズ予測モデルに適用することにより、予測精度が向上する。ブートストラップ・サンプリングでは、重複を許してランダム抽出するので、選ばれないデータ（ＯＯＢ）が存在する。ＯＯＢデータに対して予測精度を評価することで学習データに含まれない新しいデータに対してどの位の予測精度がありそうかを事前に見積もることができる。ＯＯＢデータのＡＵＣから計算した統合ウェイトを用いて各予測モデルの評価結果の加重平均をとって評価結果を統合し、その結果に基づいて予測モデルを生成することにより、高い予測精度が実現される。また、集団学習による予測モデルの非線形部分を線形近似して、予測精度を概ね保ったまま等価な単体のナイーブベイズの予測モデルに集約することにより、予測結果の解釈が容易なモデルを実現することができる。
【００６９】
なお、本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００７０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。例えば、ブートストラップ・サンプリング、ブースティング、及び、ＯＯＢデータを用いた複数の予測モデルの統合は、ナイーブベイズ以外の単体予測モデルにも適用できる。また、集団学習による予測モデルの非線形部分の線形近似は、上述した実施形態に限らずに生成された複数のナイーブベイズ予測モデルを集約する際に適用してもよい。
【符号の説明】
【００７１】
１６…学習データ、４２…重み付き学習データ、４４…単体予測モデル、４６…対数スコア、５２…統合ウェイト、５４…統合スコア、５６…集約予測モデル、７２…ブートストラップ・サンプル生成部、７４…ナイーブベイズ予測モデル生成部、７６…ブースティング処理部、７８…予測モデル統合部、８０…予測モデル集約部、８２…予測モデル評価部。
【図１】
2016091306.tif 000003
【図２】
2016091306.tif 000004
【図３】
2016091306.tif 000005
【図４】
2016091306.tif 000006
【図５】
2016091306.tif 000007
【図６】
2016091306.tif 000008
【図７】
2016091306.tif 000009
【図８】
2016091306.tif 000010
【図９】
2016091306.tif 000011
【図１０】
2016091306.tif 000012
【図１１】
2016091306.tif 000013
【図１２】
2016091306.tif 000014
【図１３】
2016091306.tif 000015
【図１４】
2016091306.tif 000016
【図１５】
2016091306.tif 000017
【図１６】
2016091306.tif 000018