説明

確率モデル作成方法

【課題】 事象が発生または発生しない確率を精度よく算出できる確率モデル作成方法を提供する。
【解決手段】 確率モデル作成システムは、確率モデルと重み係数を繰り返し作成するモデル作成部1と、モデル作成部1で作成された確率モデルと重み係数を記憶する第1記憶部2と、モデル作成部1が最後に作成した最終的な確率モデルを記憶する第2記憶部3と、所定のパラメータを入力する入力部4と、入力されたパラメータを第2記憶部3から読み出した確率モデルに入力して所定の事象が発生する(または発生しない)確率を算出する確率算出部5とを備えている。この構成により、ある企業の特定の座標指標が入力されたときに、迅速に企業の倒産確率を簡易かつ精度よく算出できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定の事象が発生または発生しない確率を算出する確率モデル作成方法に関する。
【背景技術】
【0002】
所定の事象が発生する確率を算出するために、確率モデルを構築する技術が提案されている(非特許文献1参照)。
【0003】
この非特許文献1では、AdaBoostと呼ばれるアルゴリズムを提案している。このアルゴリズムは広く利用されているが、判別問題に対するアルゴリズムであるため、確率モデルを構築する際には直接利用できない。
【0004】
上述したAdaBoostの考え方を利用して確率モデルを構築する手法が提案されている(非特許文献2参照)。ところがこの手法によっても、正しい確率モデルを構築することができない。
【非特許文献1】Freund, Y. and Schapire, R. E.: A decision-theoretic generalization of on-line learning and an application to boosting, Journal of Computer and System Sciences, Vol.55, No. 1, pp.119-139(1997).
【非特許文献2】末松伸朗、林朗:ブースティング法に発想を得た確率モデル学習アルゴリズム、人工知能学会誌、15巻1号(2001年1月)、pp129-136.
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、事象が発生または発生しない確率を精度よく算出できる確率モデル作成方法を提供するものである。
【課題を解決するための手段】
【0006】
本発明の一実施形態によれば、所定の事象を説明するための1つ以上の変数を含む説明変数と該説明変数に応じた値を取る非説明変数とを組とするサンプルの集合である学習データの各サンプルごとに、予め用意された確率モデルに基づいて、前記非説明変数の値に対応する確率を算出するステップと、該算出された確率に基づいて、学習データの各サンプルに対する重みを算出するステップと、算出された重みと前記学習データとに基づいて新たな確率モデルを作成してモデル記憶装置に記憶するステップと、前記モデル記憶装置に記憶された確率モデルを用いて、前記説明変数と同じデータ形式の入力パラメータに対して、前記事象が発生または発生しない確率を算出するステップと、を備える。
【0007】
また、本発明の一実施形態によれば、所定の事象を説明するための1つ以上の変数を含む説明変数と該説明変数に応じた値を取る非説明変数とを組とするサンプルの集合である学習データの各サンプルごとに、予め用意された確率モデルに基づいて、前記非説明変数の値に対応する確率を算出するステップと、該算出された確率に基づいて、学習データの各サンプルに対する事象が発生しない確率を算出し、該算出された事象が発生しない確率に比例した重みを算出するステップと、算出された重みと前記学習データとに基づいて新たな確率モデルを作成するステップと、前記算出された重みを用いて、所定回数、前記重みを算出するステップと前記新たな確率モデルを作成するステップとの処理を繰り返し行った後、各回ごとに算出された確率モデルに基づいて、最終的な確率モデルをモデル記憶装置に記憶するステップと、前記モデル記憶装置に記憶された確率モデルを用いて、前記説明変数と同じデータ形式の入力パラメータに対して、前記事象が発生または発生しない確率を算出するステップと、を備えることを特徴とする確率モデル作成方法を提供するものである。
【発明の効果】
【0008】
本発明によれば、事象が発生または発生しない確率を精度よく算出できる。
【発明を実施するための最良の形態】
【0009】
以下、図面を参照しながら、本発明の一実施形態を説明する。
【0010】
(第1の実施形態)
図1は本発明の第1の実施形態に係る確率モデル作成システムの概略構成を示すブロック図である。図1の確率モデル作成システムは、確率モデルと重み係数を繰り返し作成するモデル作成部1と、モデル作成部1で作成された確率モデルと重み係数を記憶する第1記憶部2と、モデル作成部1が最後に作成した最終的な確率モデルを記憶する第2記憶部3と、所定のパラメータを入力する入力部4と、入力されたパラメータを第2記憶部3から読み出した確率モデルに入力して所定の事象が発生する(または発生しない)確率を算出する確率算出部5とを備えている。
【0011】
図1の各部の処理は、一つのコンピュータ機器で行ってもよいし、複数のコンピュータ機器で分散して行ってもよい。ただし、モデル作成部1の処理には時間がかかるおそれがあるため、事前に処理を行って、最終的な確率モデルを予め第2記憶部3に記憶しておくのが望ましい。これにより、入力部4からパラメータが入力されたときに、第2記憶部3から読み出した最終的な確率モデルを利用して、比較的短時間で上述した確率を算出することができる。あるいは、モデル作成部1の処理を高速で行うために、専用のコンピュータ機器を用意してもよい。また、第1記憶部2と第2記憶部3は、物理的に一つの記憶装置にまとめてもよい。
【0012】
図2は図1のシステムの処理手順の一例を示すフローチャートである。以下、このフローチャートを用いて、本実施形態の処理手順を説明する。以下では、一例として、図1のシステムを利用して、企業の倒産確率を算出する手順を説明する。なお、ベクトルを表す記号は、数式や図面においは、記号の上に矢印を付して表記するが、以下の文章中では、記号の前に「ベクトル」と表記する。
【0013】
まず、(1)式に示すサンプルセットを用意し、これを学習データとする。
【数1】

【0014】
サンプルの番号iは、例えば企業を識別する番号である。i番目のサンプルは、(ベクトルxi,ci)である。xiは、サンプル番号iの企業における財務指標の少なくとも一部であり、説明変数とも呼ばれる。以下の表は財務指標一覧の一例を示す図である。この図は、「企業倒産予知情報の形成」白田佳子著、中央経済社に開示されたものとほぼ同じである。
【表1】


【0015】
財務指標の一覧が表1で表される場合、ベクトルxiには表1に列挙された財務指標の少なくとも一部が含まれる。ベクトルxiのj番目の成分をxij(j=1,…,n)と書くことにする。j番目の成分は財務指標の一覧におけるnj番目の指標と対応する。つまり、xijは企業iの財務指標njの値である。
【0016】
例えば、財務指標のベクトルxiが例えばj=1,2,…,7の成分を持っていたとすると、{外部負債依存率, 買入債務回転期間, 総資産運転資本率, 売上高税引前当期利益率, 一人当り売上高, 総資本回転率, 一人当り販管費}なる、財務指標のベクトルxiが得られる。
【0017】
i番目のサンプル(ベクトルxi,ci)におけるciは、企業iが1年以内に倒産するかどうかを示すものであり、0(非倒産)または1(倒産)を取る非説明変数である。倒産とは、銀行取引停止処分、会社更生法、商法による会社整理、民事再生法、破産、特別清算等を表し、休業、廃業、解散、人員整理、手形ジャンプなどは特に取引先に重大な被害を与えていないことを勘案して倒産とはしない。ただし、倒産の定義はモデルの運用を踏まえて自由に変更してもかまわない。
【0018】
図1のモデル作成部1は、まず、予め与えられた確率モデルQ(c|ベクトルz)により、(2)式に基づいて、各サンプルの確率Q(c|ベクトルxi)を計算しておく(図2のステップS1)。(2)式は、ロジットモデルに基づいている。
【数2】

【0019】
(2)式のパラメータ(α,ベクトルβ)は、以下の(3)式で算出される対数尤度l(D,Q)が最大となるように設定される。
【数3】

【0020】
このようなパラメータ(α,ベクトルβ)を算出することは、いわゆる凸問題であるため、ニュートン法や最急降下法などのよく知られた手法で、簡易かつ最適な値が得られる。得られたパラメータ(α,ベクトルβ)とこの場合の確率モデルQを、各記号の上に「^」を付けて表記することにすると、(4)式で表される(ステップS2)。
【数4】

【0021】
次に、モデル作成部1は、各サンプルごとに、荷重値(=重み)wt={wt1,…,wtN}を計算する(ステップS3)。このとき、荷重値wti(i=1,…,N)は(5)式で表される。
【数5】

【0022】
ただし、ztは(6)式で表される。
【数6】

【0023】
実際に1年以内に倒産していればci=1である。このとき、1−ci=0となり、(5)式中の括弧内は倒産しない確率を表す。逆に、1年以内に倒産していなければ、ci=0となり、(5)式中の括弧内は倒産する確率を表す。
【0024】
このように、(5)式中の括弧内は、現実に起こった事象とは反対の事象が生じる確率を表しており、荷重値wtは現実に起こらなかった事象が発生するとモデルで推定した確率を表す。この荷重値wtを各サンプルに乗じることは、実際に発生しなかった事象を大きく推定したサンプルに大きな荷重値を掛けることになる。従って、次回の学習では、このサンプルを強調してモデルを作成するというように直感的に解釈できる。
【0025】
ここで、目的関数をl(w,D,P)と表記することにする。Pはこれから新しく求める重みwに対応した確率モデルであり、本実施形態ではロジットモデルを考える。Pは(7)式で表される。
【数7】

【0026】
目的関数l(w,D,P)は重みwにより重み付けした分布に対する対数尤度とする。このとき、(8)式で表される。
【数8】

【0027】
(8)式の目的関数を最大化するようにパラメータ(α,ベクトルβ)を定めることで、重み付けした分布に対するモデルを得ることができる(ステップS4)。
【0028】
算出された最終的なパラメータに対応するモデルを(9)式で表し、(10)式に基づいて、確率モデルQ'(c|ベクトルz)を算出する(ステップS5)。
【数9】

【数10】

【0029】
(10)式により、財務指標がベクトルzである企業が1年以内に倒産する確率を算出することができる。
【0030】
図1のモデル作成部1は、(10)式の確率モデルQ'(c|ベクトルz)を第2記憶部3に記憶する。
【0031】
その後、入力部4を介して、ある企業の特定の財務指標が入力されると、確率算出部5は、第2記憶部3に記憶されている(10)式のベクトルzに、入力部4から入力された特定の財務指標で生成されるベクトルを入力して、この企業が1年以内に倒産する確率を算出する。
【0032】
このように、第1の実施形態では、複数の企業のそれぞれについて、財務指標に基づいて倒産確率に関する確率モデルを生成する。このとき、実際に倒産が発生しなかったサンプルに対して大きな荷重値を掛けるようにして、次回の学習では、倒産が発生しなかったサンプルを強調して確率モデルを生成する。このようにして得られた確率モデルを記憶しておく。したがって、ある企業の特定の座標指標が入力されたときに、迅速に企業の倒産確率を簡易かつ精度よく算出することができる。
【0033】
(第2の実施形態)
第1の実施形態は、企業の倒産確率を算出する例を説明したが、第2の実施形態は、種々の事象の発生確率を算出できるように、第1の実施形態を一般化したものである。
【0034】
第2の実施形態では、(11)式で表されるサンプルセットを用意し、これを学習データとする。
【数11】

【0035】
サンプルの番号をiとすると、i番目のサンプルは(ベクトルxi,ci)で表される。ここで、ベクトルxiは説明変数であり、xiのj番目の成分は、xij(j=1,…,n)で表される。cは「0」か「1」を取りうる非説明変数である。
【0036】
予め与えられた確率モデルQ(c|ベクトルz)により、各サンプルの確率Q(c|ベクトルx)を計算する。
【0037】
次に、(12)式に基づいて各サンプルごとに荷重値(=重み)w={w1,…,wN}を計算する。
【数12】

【0038】
(12)式中のzは(13)式で表される。
【数13】

【0039】
ここで、目的関数をl(w,D,P)と表記する。Pはこれから新しく求める重みwに対応した確率モデルである。本実施形態では、目的関数を、重みwにより重み付けした分布に対する対数尤度とする。この場合、目的関数l(w,D,P)は(14)式で表される。
【数14】

【0040】
目的関数は、必ずしも対数尤度でなくてもよく、AICやTICなどの他の関数を用いてもよい(なお、AICやTICについては、竹内啓:「情報統計量の分布とモデルの適切さの基準」、数理科学、No. 153 (1976) p12-18.を参照)。
【0041】
ここで、Pθ(c|ベクトルz)がθをパラメータとするパラメトリックモデルであるとき、目的関数l(w,D,Pθ)は(15)式で表される。
【数15】

【0042】
(15)式の目的関数を最大化するようにθを定めることで、重み付けした分布に対するモデルを得ることができる。
【0043】
他の目的関数の例として、(16)式に示す二乗誤差を用いることもできる。
【数16】

【0044】
この場合、目的関数を最小化することで、重み付けした分布に対するモデルを得ることができる。
【0045】
以下では、目的関数を最大化または最小化することにより得られるθの最適解を、θの上に「^」を付けて表す。
【0046】
ここでは、Pθ(c|ベクトルx)として、図3に示すニューラルネットワークを考える。図3のニューラルネットワークの出力をPθ(1|ベクトルx)とみなす。ニューラルネットワークでは、ノード間の枝に対応した荷重値とノードに対応した閾値をパラメータθと考える。
【0047】
また、Pθ(0|ベクトルx)=1−Pθ(1|ベクトルx)として計算し、上述した(15)式により目的関数を算出する。そして、この目的関数が最大となるようにθを決定することで、パラメータが決定される。(15)式の目的関数の代わりに、近似式である以下の(17)式を用いて目的関数を算出してもよい。
【数17】

【0048】
(17)式の目的関数を採用する場合は、目的関数を最小化することで、パラメータθの最適解を算出する。
【0049】
算出されたパラメータθの最適解に対応するモデルを、(18)式で表記することにする。
【数18】

【0050】
次に、(19)式に基づいて、最終的な確率モデルを算出する。
【数19】

【0051】
(19)式で算出した確率モデルを、図1の第2記憶部3に記憶しておけば、ベクトルzに所定の説明変数を与えることで、ある事象の発生確率を簡易かつ精度よく算出することができる。
【0052】
このように、第2の実施形態では、種々の事象について、予め(19)式に基づいて確率モデルを算出して第2記憶部3に記憶しておくため、その事象の発生(または発生しない)確率を簡易かつ精度よく算出することができる。
【0053】
(第3の実施形態)
上述した第2の実施形態では、(19)式に示す確率モデルを1回だけ算出しているが、重みwを更新しながら確率モデルの算出を所定回数繰り返し行って、最終的な確率モデルを算出してもよい。
【0054】
図4は本発明の第3の実施形態に係る確率モデル作成システムの処理手順を示すフローチャートである。まず、以下の(20)式で表されるデータセットを用意して学習データとする。
【数20】

【0055】
サンプルの番号をiとすると、i番目のサンプルは(ベクトルxi,ci)で表される。tは世代を表すものとし、初期状態ではt=1とする。ベクトルxiは説明変数であり、ベクトルxiのj番目の成分はxij(j=1,…,n)で表される。ciは非説明変数であり、「0」か「1」を取る。
【0056】
まず、t=1の場合の荷重値(=重み)w1として、(21)式のように初期設定する(ステップS11)。
【数21】

【0057】
なお、t回目の荷重値wtは、各サンプル(i=1,2,…,N)ごとに、wt={wt1,…,wtN}で表される。
【0058】
次に、(22)式に示すように、目的関数l(wt,D,Pθ)が最大になるように、θを決定する(ステップS12)。
【数22】

【0059】
目的関数l(wt,D,Pθ)が最大になる確率モデルP(t)(c|ベクトルx)は、(23)式で表される。この確率モデルP(t)(c|ベクトルx)は、各回ごとに図1の第1記憶部2に記憶しておく。
【数23】

【0060】
例えば、確率モデルPθ(c|ベクトルx)として、ニューラルネットワークを考え、ニューラルネットワークの出力をPθ(1|ベクトルx)とする。ニューラルネットワークでは、ノード間の枝に対応した荷重値とノードに対応した閾値をパラメータとして考える。
【0061】
また、Pθ(0|ベクトルx)=1−Pθ(1|ベクトルx)として計算し、上述した(22)式を用いて目的関数を定義する。そして、この目的関数が最大となるようにθを決定することで、パラメータを決定できる。目的関数は、近似的に(24)式のように置き換えてもよい。
【数24】

【0062】
(24)式の目的関数を採用する場合、目的関数を最小化することで、パラメータθの最適解を算出できる。算出されたパラメータθの最適解に対応する確率モデルP(t)(c|ベクトルx)は、上述した(23)式で表される。
【0063】
次に、(25)式に従って、次回の重みwt+1を算出する(ステップS13)。
【数25】

【0064】
ここで、ztは、(26)式で表される。算出された重みは、各回ごとに図1の第1記憶部2に記憶しておく。
【数26】

【0065】
次に、終了条件を満たしたか否かを判定する(ステップS14)。終了条件を満たさなければ、tを「1」だけインクリメントして(ステップS15)、ステップS12以降の処理を繰り返す。
【0066】
ここで、終了条件としては、以下のようなものが考えられる。
【0067】
(1)回数を指定する場合であり、tが一定の数を上回る。
【0068】
(2)重み付けした分布に対してまったく学習できない場合。すなわち、lt(θ)−l1/2が予め定めた値Δよりも小さくなった場合である。ここで、l1/2は、すべてのi(i=1,2,…,N)に対して、P(t)(ci|ベクトルxi)=1/2となる目的関数の値である。
【0069】
(3)元の分布に対して学習できない場合。この場合、l1(Q(t-1))≧l1(Qt)となる。この処理を実行する場合、毎回Qtを算出する必要がある。
【0070】
(4)評価用サンプルに対する目的関数を改善できない場合。評価用サンプルD'を用いて、(27)式を定義しておき、l'1(Q(t-1))≧l'1(Q(t))となる場合。
【数27】

【0071】
終了条件を満たせば、(28)式に従って最終的な確率モデルQt(c|ベクトルz)を算出する(ステップS16)。
【数28】

【0072】
このように、第3の実施形態では、重みを更新しながら繰り返し確率モデルを算出して最終的な確率モデルを得るため、学習結果を十分に考慮に入れた精度の高い事象の発生確率を求めることができる。
【0073】
(第4の実施形態)
第4の実施形態は、第3の実施形態を拡張して、企業の信用リスクの予測を行うものである。
【0074】
まず、(29)式で示すデータセットを用意して、学習データとする。
【数29】

【0075】
ベクトルxiのj成分は、第1の実施形態と同様に財務指標を表す。上述した表1にある財務指標ID1〜ID67を全集合Ω={x1,…,x67}とし、ベクトルxi=(xi1,…,xi67)とする。また、(30)式を満たす部分集合Aを定義する。
【数30】

【0076】
ベクトルx(A)は、部分集合Aに対応した添え字のベクトルである。例えば、ベクトルx({2,5,6})=(x2,x5,x6)である。また、訓練用データDと評価用データD'を用意する。
【0077】
サンプル番号(企業番号)をiとし、i番目のサンプルは(ベクトルxi,ci)で表される。また、tは世代を表し、初期状態ではt=1である。非説明変数cは、「0」(非倒産)か、「1」(倒産)である。
【0078】
第1世代の訓練用データD(1)=Dと評価用データD'(1)=Dは、全業種のデータであるが、このうちの製造業だけを取り出したデータを第2世代とし、それぞれD(2)とD(2) 'とする。
【0079】
製造業で規模の大きな(例えば従業員数30名以上の)企業のサンプルをそれぞれD(3)とD (3) 'とする。この例では新世代のデータは旧世代のデータに含まれており、(31)式が成立するが、必ずしもこれを満たさなくてもよい。
【数31】

【0080】
まず、t=1の場合の荷重値(=重み)w1を、(32)式のように初期設定する。
【数32】

【0081】
ここで、各サンプル(i=1,2,…,N)ごとの荷重値wtは、wt={wt1,…,wtN}で表される。
【0082】
部分集合Aは、上述した(30)式を満たす集合とし、ベクトルx(A)は、Aに対応したベクトルである。例えば、ベクトルx({2,5,6})=(x2,x5,x6)である。1つ以上の部分集合Aに対して、(33)式に示す目的関数を定義する。
【数33】

【0083】
ここで、A=A1,…,Amとする。このとき、m個の目的関数が存在することになる。この実施形態では、ロジットモデルを採用することにする。例えば、A1={2,5,6}の場合、ベクトルx({2,5,6})=(x2,x5,x6)となる。このときの確率モデルは、(34)式のようになる。
【数34】

【0084】
(34)式において、θ({2,5,6})=(α256,β)である。
【0085】
2={1,5,6,12}の場合、ベクトルx({1,5,6,12})=(x1,x5,x6,x12)である。このときの確率モデルは、(35)式のようになる。
【数35】

【0086】
(35)式において、θ({1,5,6,12})=(α1,α5,α6,α12,β)である。
【0087】
各Aに対応した目的関数を最大にするθ(A)を、θ(A)の記号の上に「^」を付けて表記することにする。
【0088】
他方、各Aに対する評価用目的関数は、評価用データD'と
【数36】

とを用いると、(36)式のように定義される。
【数37】

【0089】
(36)式の評価用目的関数を最大にするAを、記号Aの上に「^」を付けて表記することにする。この場合、(36)式が最大となるときの確率モデルは、(37)式のようになる。
【数38】

t≧2では、D(t)の各サンプルに対してP(t-1)(c|ベクトルxi)を算出し、(37)式に従ってcと対応した事象の発生しない確率を算出する。
【数39】

【0090】
(38)式と1世代前の荷重値wit-1の積を取ると、t世代の荷重値witは(39)式で表される。
【数40】

【0091】
(39)式中のztは、(40)式のようになる。
【数41】

【0092】
次に、目的関数l(W(t),D(t),Pθ)を最大化するようにθを設定する。ここでは、特に、重みwtにより重み付けした分布に対する対数尤度を(41)式のようなものとする。
【数42】

【0093】
各Aに対応した目的関数を最大とするθ(A)を、記号θ(A)の上に「^」を付けて表記することにする。他方、評価用データD(t)'と目的関数θ(A)の最大値とを用いると、各Aに対する評価用目的関数は、(42)式のように定義される。
【数43】

【0094】
この(42)式を最大にするAを、記号Aの上に「^」を付けて表記する。これにより、確率モデルは、(43)式のようになる。
【数44】

【0095】
t=3まで、以上の処理を繰り返した後、求まった確率モデルP(t)(ci|ベクトルxi)を用いて、(44)式に基づいて最終的な確率モデルを算出する。
【数45】

【0096】
この(44)式の確率モデルは、図1の第2記憶部3に記憶される。この(44)式の確率モデルのベクトルzに、ある企業の財務指標を入力することにより、ある企業が1年以内に倒産する確率を計算することができる。
【0097】
一般に、|D(3)|<|D(2)|<|D(1)|、かつ|D(3)'|<|D(2)'|<|D(1)'|である。規模の大きな製造業のサンプル数|D(3)|や|D(3)'|は少なく、モデルのパラメータを正確に決めるのは困難である。しかし、本手法を用いれば、全サンプルを用いて基本となるモデルP(1)を定めておいて、これを修正することで、全体モデルQ(c|ベクトルz)を構築することができるため、精度の高いモデルが得られる。
【0098】
実際、多くの場合、P(2)やP(3)に含まれるパラメータ数は、P(1)に含まれるパラメータ数よりも少ない。場合によっては、部分集合D(t)が小さすぎて、モデルを改善できない場合がある。この場合、P(t)(0|ベクトルz)=P(t)(1|ベクトルz)=1/2とすれば、t世代目の学習結果とt-1世代目の学習結果が一致する。
【0099】
このように、第4の実施形態では、基本となる確率モデルを予め作成しておき、その確率モデルを事象に応じて適宜修正することにより、精度のよい確率モデルを簡易に作成することができる。
【0100】
(第5の実施形態)
第4の実施形態は、企業の信用リスクを評価する手法について説明したが、第5の実施形態は、第4の実施形態を一般化したものである。
【0101】
第5の実施形態は、第3の実施形態の目的関数を最大化または最小化することによりパラメータを決定してP(t)(ci|ベクトルxi)を算出する処理を拡張したものである。具体的には、世代ごとに最適な説明変数の部分集合を選択する手法を実装する。
【0102】
(45)式に示す部分集合Aを考える。
【数46】

【0103】
ベクトルx(A)は、部分集合に含まれる要素のベクトルである。例えば、ベクトルx({2,5,6})=(x2,x5,x6)である。また、訓練用データDと評価用データD'を用意しておく。そして、第3の実施形態の目的関数の代わりに、1つ以上の部分集合Aに対して、(46)式に示す目的関数を定義する。
【数47】

【0104】
ここで、A=A1,…,Amである。このとき、m個の目的関数が存在することになる。この実施形態では、ロジットモデルを採用することにする。
【0105】
例えば、A1={2,5,6}の場合、ベクトルx({2,5,6})=(x2,x5,x6)であり、確率モデルは(47)式のようになる。θ({2,5,6})=(α256,β)である。
【数48】

【0106】
2={1,5,6,12}の場合、ベクトルx({1,5,6,12})=(x1,x5,x6,x12)であり、確率モデルは(48)式のようになる。θ({1,5,6,12})=(α15612,β)である。
【数49】

【0107】
各Aに対応した目的関数の最大値θ(A)を、記号θ(A)の上に「^」を付けて表記する。
【0108】
また、評価用データD'と
【数50】

とを用いて、各Aに対して(49)式に示す評価用目的関数を定義する。
【数51】

【0109】
(49)式を最大とするAを記号Aの上に「^」を付けて表記する。このようにして求まった
【数52】

を用いると、(50)式が得られる。
【数53】

【0110】
確率モデルを算出した後の処理は第3の実施形態と同様に行う。
【0111】
(第6の実施形態)
第6の実施形態は、第3の実施形態の目的関数を最大化または最小化することによりパラメータを決定してP(t)(ci|ベクトルxi)を算出する処理を拡張したものである。具体的には、世代ごとに最適な種類のモデルを選択する手法を実装する。
【0112】
上述した第3の実施形態において、Pは世代tごとに異なる関数族である。つまり、異なる種類のモデルPk(k=1,…,m)を用意しておく。例えば、k=1,2,3とし、k=1はロジットモデル、k=2は中間層のノード数2のニューラルネットワーク、k=3は決定木という構成を考えることができる。
【0113】
次に、(51)式に示す目的関数を考える。
【数54】

【0114】
ここで、λは「1」以上の予め定められた数値とし、|θ|はモデルに含まれるパラメータ数を表す。(51)式の第二項は、モデルに含まれるパラメータ数が多くなりすぎることに対するペナルティであり、AIC(Akaike Information Criteria)では、λ=1である。
【0115】
(51)式の目的関数を最大にする解を、(52)式のように表すと、このときの確率モデルは(53)式で表される。
【数55】

【数56】

【0116】
(53)式の確率モデルPが算出されると、その後の処理は第3の実施形態と同様に行う。
【0117】
(第7の実施形態)
第7の実施形態は、第3の実施形態とは、重みの更新手法が異なっている。第3の実施形態では、(54)式に従って重みの更新を行っていた。
【数57】

【0118】
第7の実施形態では、以下の(55)〜(57)式に基づいて重みの更新を行う。
【数58】

【0119】
(55)〜(57)式は、t-1までのモデルでまったく検討はずれの予測しかできないサンプルは、サンプル自体に問題があるとみなして、サンプルから除外することに対応している。式中の閾値100/Nは、世代tに依存して変化させてもよい。
【0120】
このように、第7の実施形態では、信頼性の低いサンプルを除外して重みの更新を行うため、信頼性の高い重みを算出でき、ひいては精度の高い確率モデルを算出できる。
【0121】
(第8の実施形態)
第8の実施形態は、上述した実施形態とは確率モデルPの形式が異なるものである。
【0122】
(58)式に示す学習データDにおいて、c=0,1の2値しか取らないとする。
【数59】

【0123】
また、(59)式に示す確率モデルPを考える。
【数60】

【0124】
(59)式において、(60)式の制約をつける。
【数61】

【0125】
すなわち、判別モデルを組み合わせて最良の結果を得たい場合を想定する。この場合、第3の実施形態で尤度が最大となるように確率モデルPを導出するのと同様の結果を、異なる手法で実現することができる。以下、その手法を説明する。
【0126】
(61)式が成立すれば正解、(62)式が成立すれば不正解とし、エラー率εtが最小になるようにh(ベクトルz)の中に含まれるパラメータを決定する。
【数62】

【0127】
判別モデルでは、エラー率が最小になるようにモデルを構成するため、この処理は通常の判別モデル作成に対応する。エラー率は、全サンプルに占める不正解となったサンプルの割合である。また、(63)式が成立するとする。
【数63】

【0128】
算出したht(ベクトルz)とλを、上述した(59)式に代入することで、Pt(1|z)とPt(0|z)=1−Pt(1|z)が求まる。
【0129】
これ以降の処理は、第3の実施形態と同様に、確率モデルPを用いて、(64)式に示す最終的な確率モデルQt(c|ベクトルz)を算出する。
【数64】

【0130】
あるいは、各世代ごとに求まったhtとλtを用いて、以下の(65)式および(66)式により、最終的な確率モデルを算出することもできる。
【数65】

【0131】
また、閾値をΛとして、確率モデルQt(1|ベクトルz)>Λであれば、推定値1確信度Qt(1|ベクトルz)を出力する。Qt(1|ベクトルz)≦Λであれば、推定値0確信度Qt(0|ベクトルz)を出力する。
【0132】
特に、Λ=1/2の場合、推定値はAdaBoostingの結果と一致するが、AdaBoostingでは確信度を算出することはできない。
【0133】
(第9の実施形態)
第9の実施形態は、文字認識を行うものである。
【0134】
図5(a)はアルファベットの「A」を表す5×5のピクセルデータを示す。この図5(a)の各ピクセルごとに2値表現を行うと、図5(b)のような結果が得られる。
【0135】
本実施形態では、図5(b)に示す5×5のピクセル群をベクトルxiとして表現する。具体的には、ベクトルxi=(0,0,1,0,0,0,1,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1)となる。非説明変数cは、文字の種別を表すとする。したがって、「A」を表すcA=1となり、その他の文字に対応するc0〜c9とcB〜cZはいずれも「0」となる。正確には、(67)式で表現することができる。
(c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, cA, cB, cC, cD, cE, cF, cG, cH, cI, cJ, cK, cL, cM, cN, cO, cP, cQ, cR, cS, cT, cU, cV, cW, cX, cY, cZ)
=(0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
【0136】
ここで、(68)式に示すデータセットにおいて、各文字ごとにモデルを作成する。
【数66】

【0137】
各文字ごとに第1の実施形態と同様の処理により、モデル作成を行う。この結果、(69)式のようなモデルが得られる。
【数67】

【0138】
図5(a)の入力に対して最適な解は、(Q0,Q1,…,Q9)=0、QA=1、(QB,…,Qz)=0である。これにより、入力された文字が「A」であったことがわかる。実際には、このように明確に計算できず、ベクトルQ=(Q0,Q1,…,Q9,QA,…,Qz)の中で最大の値を取る文字を回答として出力する。
【0139】
このように、第9の実施形態によれば、文字認識を精度よく行うことができる。
【0140】
(その他の具体例1)
第1の実施形態では、企業の倒産確率を算出する例を説明したが、本発明は、種々の事象が発生する(発生しない)確率を予測するために用いることができる。以下では、本発明を医療リスクの評価のために使用する例を説明する。
【0141】
まず、(70)式に示すサンプルセットを用意して、これを学習データとする。
【数68】

【0142】
(70)式において、サンプルの番号iは医療業務を識別する番号である。i番目のサンプルは、(ベクトルxi,ci)である。ciは、医療業務iの実行中にエラーの発生の有無を表すもので、0(エラーなし)または1(エラーあり)を取る非説明変数である。
【0143】
ここで、エラーがあっても、患者に何らかの影響が及ぶ場合とそうでない場合があるが、患者に影響の大きいエラー(事故)だけをカウントしてもよい。
【0144】
ベクトルxiのj番目の成分をxij(j=1,…,n)と表記する。エラーと相関のある事象(影響因子と呼ぶ)の一覧を用意しておき、j番目の成分は影響因子の一覧におけるnj番目の指標と対応する。つまり、xijは医療業務iの影響因子njの値である。表2は影響因子の一覧の一例を示している。
【表2】

【0145】
その後は、第1の実施形態と同様の手順で処理を行って、最終的に、医療リスクの確率を算出することができる。
【0146】
(その他の具体例2)
次に、事務リスクの評価を行う例について説明する。
【0147】
まず、(71)式に示すサンプルセットを用意して、これを学習データとする。
【数69】

【0148】
サンプルの番号iは単位事務を識別する番号である。i番目のサンプルは、(ベクトルxi,c)で表される。ここでは、一例として、銀行の営業店の事務リスクの評価を行うことを考える。
【0149】
iは定められた一定期間内(ここでは半年とする)に、単位事務iの実行中に損失事故の発生の有無を表すものであり、0(損失事故なし)または1(損失事故あり)を取りうる非説明変数である。
【0150】
損失事故とは、実際に1円以上の損失が発生したことをいう。また、ベクトルxiのj番目の成分をxij(j=1,…,n)と表記することにする。損失事故と相関のある事象(影響因子と呼ぶ)の一覧を用意しておき、j番目の成分は影響因子の一覧におけるnj番目の指標と対応する。
【0151】
つまり、xijは単位事務iの実行された営業店において、過去一定期間(ここでは、半年とする)に計測された影響因子njの値である。
【0152】
表3は影響因子の一覧の一例を示す表である。
【表3】

【0153】
影響因子の中に、過去の事務量当たりの損失事故が含まれているが、これは将来の損失事故を予測する入力として利用している。
【0154】
ここで、図6のような期間T1,T2を考える。ある営業店の期間T2における事務量が10,000時間であるとし、単位事務を1000時間とする。このとき、この営業店では、期間T2に10単位の単位事務を実行したことになる。この期間内に損失事故が2件発生したとする。
【0155】
また、この営業店において、期間T1に計測された結果をベクトルxで表すと、この営業店については以下の10サンプルが生成される。
(ベクトルx,1)
(ベクトルx,1)
(ベクトルx,0)
(ベクトルx,0)
(ベクトルx,0)
(ベクトルx,0)
(ベクトルx,0)
(ベクトルx,0)
(ベクトルx,0)
(ベクトルx,0)
【0156】
他の営業店についても、同様にしてサンプルを作成することができる。この問題では、損失事故が少ないことと、営業店の数がそれほど多くないため、詳細なモデルを構築することが難しい。そこで、過去に作成したモデルをP(1)(c=1|ベクトルX=ベクトルxi)として、サンプルセットDを用いて、P(2)(c=1|ベクトルX=ベクトルxi)を算出する。そして、この算出結果を用いて、(72)式を算出して、最終的な確率モデルを得る。
【0157】
この(72)式により、事務量当たりの損失事故発生確率が算出される。
【数70】

【図面の簡単な説明】
【0158】
【図1】本発明の第1の実施形態に係る確率モデル作成システムの概略構成を示すブロック図。
【図2】図1のシステムの処理手順の一例を示すフローチャート。
【図3】ニューラルネットワークの一例を示す図。
【図4】本発明の第3の実施形態に係る確率モデル作成システムの処理手順を示すフローチャート。
【図5】(a)は文字「A」のピクセルデータ、(b)は(a)を2値表現したデータを示す図。
【図6】期間T1,T2を説明する図。
【符号の説明】
【0159】
1 モデル作成部
2 第1記憶部
3 第2記憶部
4 入力部
5 確率算出部

【特許請求の範囲】
【請求項1】
所定の事象を説明するための1つ以上の変数を含む説明変数と該説明変数に応じた値を取る非説明変数とを組とするサンプルの集合である学習データの各サンプルごとに、予め用意された確率モデルに基づいて、前記非説明変数の値に対応する確率を算出するステップと、
該算出された確率に基づいて、学習データの各サンプルに対する重みを算出するステップと、
算出された重みと前記学習データとに基づいて新たな確率モデルを作成してモデル記憶装置に記憶するステップと、
前記モデル記憶装置に記憶された確率モデルを用いて、前記説明変数と同じデータ形式の入力パラメータに対して、前記事象が発生または発生しない確率を算出するステップと、を備えることを特徴とする確率モデル作成方法。
【請求項2】
前記重みを算出するステップは、前記非説明変数の値に対応する確率を算出するステップにより前記事象が発生する確率を算出した場合には、前記事象が発生しない確率を算出した結果に比例した前記重みを算出することを特徴とする請求項1に記載の確率モデル作成方法。
【請求項3】
前記重み、前記学習データおよび所定のパラメータを用いて定義される目的関数の値が最大または最小になるように、前記所定のパラメータの値を設定するステップを備え、
前記目的関数の値が最大または最小になるときの前記所定のパラメータを用いて、前記新たな確率モデルを作成することを特徴とする請求項1または2に記載の確率モデル作成方法。
【請求項4】
所定の事象を説明するための1つ以上の変数を含む説明変数と該説明変数に応じた値を取る非説明変数とを組とするサンプルの集合である学習データの各サンプルごとに、予め用意された確率モデルに基づいて、前記非説明変数の値に対応する確率を算出するステップと、
該算出された確率に基づいて、学習データの各サンプルに対する事象が発生しない確率を算出し、該算出された事象が発生しない確率に比例した重みを算出するステップと、
算出された重みと前記学習データとに基づいて新たな確率モデルを作成するステップと、
前記算出された重みを用いて、所定回数、前記重みを算出するステップと前記新たな確率モデルを作成するステップとの処理を繰り返し行った後、各回ごとに算出された確率モデルに基づいて、最終的な確率モデルをモデル記憶装置に記憶するステップと、
前記モデル記憶装置に記憶された確率モデルを用いて、前記説明変数と同じデータ形式の入力パラメータに対して、前記事象が発生または発生しない確率を算出するステップと、を備えることを特徴とする確率モデル作成方法。
【請求項5】
前記最終的な確率モデルは、各回ごとに算出された確率モデルを互いに掛け合わせて得られた積を含むことを特徴とする請求項4に記載の確率モデル作成方法。
【請求項6】
前記重み、前記学習データおよび所定のパラメータを用いて定義される目的関数の値が最大または最小になるように、前記所定のパラメータの値を設定するステップを備え、
各回ごとに、前記目的関数の値が最大または最小になるときの前記所定のパラメータを用いて、前記新たな確率モデルを作成することを特徴とする請求項4または5に記載の確率モデル作成方法。
【請求項7】
前記目的関数が改善されなくなった時点で、前記最終的な確率モデルを前記モデル記憶装置に記憶することを特徴とする請求項4乃至6のいずれかに記載の確率モデル作成方法。
【請求項8】
前記学習データは、訓練用データと評価用データとを有し、
前記目的関数は、重みと訓練用データとで定義される訓練用目的関数と、重みと評価用データとで定義される評価用目的関数とを有し、
前記訓練用目的関数および前記評価用目的関数の値が最大または最小になるように、前記所定のパラメータの値を設定して、前記新たな確率モデルを作成することを特徴とする請求項6または7に記載の確率モデル作成方法。
【請求項9】
所定回数、前記重みを算出するステップと前記新たな確率モデルを作成するステップとの処理を繰り返し行う際に使用する学習データを、各回毎に変更する、請求項4記載の確率モデル作成方法。
【請求項10】
所定回数、前記重みを算出するステップと前記新たな確率モデルを作成するステップとの処理を繰り返し行う際に、確率モデルの種類を、各回毎に変更する、請求項4記載の確率モデル作成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−185099(P2006−185099A)
【公開日】平成18年7月13日(2006.7.13)
【国際特許分類】
【出願番号】特願2004−377042(P2004−377042)
【出願日】平成16年12月27日(2004.12.27)
【出願人】(000003078)株式会社東芝 (54,554)