特許第6765911号(P6765911)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱重工業株式会社の特許一覧

<>
  • 特許6765911-分類装置、分類方法およびプログラム 図000011
  • 特許6765911-分類装置、分類方法およびプログラム 図000012
  • 特許6765911-分類装置、分類方法およびプログラム 図000013
  • 特許6765911-分類装置、分類方法およびプログラム 図000014
  • 特許6765911-分類装置、分類方法およびプログラム 図000015
  • 特許6765911-分類装置、分類方法およびプログラム 図000016
  • 特許6765911-分類装置、分類方法およびプログラム 図000017
  • 特許6765911-分類装置、分類方法およびプログラム 図000018
  • 特許6765911-分類装置、分類方法およびプログラム 図000019
  • 特許6765911-分類装置、分類方法およびプログラム 図000020
  • 特許6765911-分類装置、分類方法およびプログラム 図000021
  • 特許6765911-分類装置、分類方法およびプログラム 図000022
  • 特許6765911-分類装置、分類方法およびプログラム 図000023
  • 特許6765911-分類装置、分類方法およびプログラム 図000024
  • 特許6765911-分類装置、分類方法およびプログラム 図000025
  • 特許6765911-分類装置、分類方法およびプログラム 図000026
  • 特許6765911-分類装置、分類方法およびプログラム 図000027
  • 特許6765911-分類装置、分類方法およびプログラム 図000028
  • 特許6765911-分類装置、分類方法およびプログラム 図000029
  • 特許6765911-分類装置、分類方法およびプログラム 図000030
  • 特許6765911-分類装置、分類方法およびプログラム 図000031
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6765911
(24)【登録日】2020年9月18日
(45)【発行日】2020年10月7日
(54)【発明の名称】分類装置、分類方法およびプログラム
(51)【国際特許分類】
   G06F 16/906 20190101AFI20200928BHJP
【FI】
   G06F16/906
【請求項の数】11
【全頁数】29
(21)【出願番号】特願2016-180696(P2016-180696)
(22)【出願日】2016年9月15日
(65)【公開番号】特開2018-45516(P2018-45516A)
(43)【公開日】2018年3月22日
【審査請求日】2019年8月23日
(73)【特許権者】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(74)【代理人】
【識別番号】100161702
【弁理士】
【氏名又は名称】橋本 宏之
(74)【代理人】
【識別番号】100189348
【弁理士】
【氏名又は名称】古都 智
(74)【代理人】
【識別番号】100196689
【弁理士】
【氏名又は名称】鎌田 康一郎
(74)【代理人】
【識別番号】100210572
【弁理士】
【氏名又は名称】長谷川 太一
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100064908
【弁理士】
【氏名又は名称】志賀 正武
(74)【代理人】
【識別番号】100108578
【弁理士】
【氏名又は名称】高橋 詔男
(74)【代理人】
【識別番号】100126893
【弁理士】
【氏名又は名称】山崎 哲男
(72)【発明者】
【氏名】若杉 一幸
【審査官】 松尾 真人
(56)【参考文献】
【文献】 特開2015−076104(JP,A)
【文献】 特開2016−103094(JP,A)
【文献】 特開2004−157814(JP,A)
【文献】 特開2014−241060(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
(57)【特許請求の範囲】
【請求項1】
分類対象データの分類に用いられる木構造の分類モデルにおける個々の分岐の評価値を算出する分岐評価部と、
前記木構造の分類モデルを用いて前記分類対象データを分類して分類結果を取得する分類部と、
前記分類部による分類における前記木構造の分類モデル上の経路に含まれるノードからの分岐の前記評価値を説明変数毎に合計して、前記分類部による分類に関する評価値を算出する分類結果評価部と、
を備える分類装置。
【請求項2】
前記分類結果評価部は、前記経路に含まれるノードからの分岐の前記評価値を合計して、前記分類結果に対する評価値を算出する、請求項1に記載の分類装置。
【請求項3】
前記分類部は、複数の前記木構造の分類モデルの各々における前記分類結果の中から、複数の前記木構造の分類モデル全体における分類結果を選択し、
前記分類結果評価部は、複数の前記木構造のモデルの各々における前記分類部の分類に関する評価値に基づいて、複数の前記木構造の分類モデル全体における前記分類部の分類に関する評価値を算出する、
請求項1または請求項2に記載の分類装置。
【請求項4】
前記分類部は、複数の前記木構造の分類モデルの各々における分類結果に対する前記評価値に基づいて、複数の前記木構造の分類モデルの各々における分類結果の中から、複数の前記木構造の分類モデル全体における分類結果を選択する、請求項に記載の分類装置。
【請求項5】
前記木構造の分類モデルは決定木であり、
前記分岐評価部は、前記決定木における分岐の評価値を分岐の親ノードでの平均情報量と子ノードでの平均情報量との違いに基づいて算出する、請求項1からのいずれか一項に記載の分類装置。
【請求項6】
前記分岐評価部は、さらに、前記親ノードに到達した学習用データの数に基づいて、前記決定木における分岐の評価値を算出する、請求項に記載の分類装置。
【請求項7】
前記分岐評価部は、前記木構造のモデルのノード毎に、当該ノードに到達した学習用データに含まれる目的変数値を計数して最多数の目的変数値を検出し、
前記分類結果評価部は、さらに、前記経路のうち親ノードと子ノードとで最多数の目的変数値が異なる位置に基づいて、前記分類部の分類結果に対する評価値を算出する、
請求項または請求項に記載の分類装置。
【請求項8】
前記木構造の分類モデルは回帰木であり、
前記分岐評価部は、前記回帰木における分岐の親ノードに到達した学習用データに含まれる目的変数値の内平方和と、子ノードに到達した学習用データに含まれる目的変数値の内平方和との違いに基づいて前記分岐の評価値を算出する、
請求項1からのいずれか一項に記載の分類装置。
【請求項9】
前記木構造の分類モデルに学習用データを適用した学習結果と適用した学習用データに含まれる目的変数値との関係におけるκ係数を算出し、得られたκ係数に基づいて前記木構造の分類モデルに用いる説明変数を選択する説明変数選択部をさらに備える、請求項1からのいずれか1項に記載の分類装置。
【請求項10】
分類装置が、分類対象データの分類に用いられる木構造の分類モデルにおける個々の分岐の評価値を算出する分岐評価ステップと、
前記分類装置が、前記木構造の分類モデルを用いて前記分類対象データを分類して分類結果を取得する分類ステップと、
前記分類装置が、前記分類ステップでの分類における前記木構造の分類モデル上の経路に含まれるノードからの分岐の前記評価値を説明変数毎に合計して、前記分類ステップでの分類に関する評価値を算出する分類結果評価ステップと、
を含む分類方法。
【請求項11】
コンピュータに、
分類対象データの分類に用いられる木構造の分類モデルにおける個々の分岐の評価値を算出する分岐評価ステップと、
前記木構造の分類モデルを用いて前記分類対象データを分類して分類結果を取得する分類ステップと、
前記分類ステップでの分類における前記木構造の分類モデル上の経路に含まれるノードからの分岐の前記評価値を説明変数毎に合計して、前記分類ステップでの分類に関する評価値を算出する分類結果評価ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分類装置、分類方法およびプログラムに関する。
【背景技術】
【0002】
機械学習の1つに決定木学習があり、決定木学習に関連して幾つかの技術が提案されている。例えば、特許文献1には、機械学習によって運転者の動作を判定するための方法が記載されている。特許文献1に記載の方法では、複数の学習用画像を決定木に適用し、ある葉ノードに到達した全ての学習用画像のうち、その葉ノードにおける予測結果と一致する学習用画像の割合を、その葉ノードの信頼度スコアとする。そして、特許文献1に記載の方法では、運転者の画像をランダムフォレストモデルに適用して決定木毎に信頼度スコアを求め、信頼度スコアを用いた重み付け多数決によって運転者の動作を判定する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2015−76104号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
複数の決定木を用いたアンサンブルモデル(例えばランダムフォレストモデル)で決定木の数が多い場合など、判定の過程が複雑になり判定の根拠を解析することが困難な場合がある。判定の根拠がわからない場合、ユーザは判定結果に対するアクションの検討が困難となるため、判定結果を評価するための情報を得られることが好ましい。特許文献1では、葉ノードのみを信頼度の評価対象としており、木構造全体を総合的に評価し、因子ごとの影響度を明確化する方法は示されていない。
【0005】
本発明は、決定木など木構造の分類モデルを用いた判定について、判定結果の信頼度を評価するための情報を提供することができる分類装置、分類方法およびプログラムを提供する。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、分類装置は、分類対象データの分類に用いられる木構造の分類モデルにおける個々の分岐の評価値を算出する分岐評価部と、前記木構造の分類モデルを用いて前記分類対象データを分類して分類結果を取得する分類部と、前記分類部による分類における前記木構造の分類モデル上の経路に含まれるノードからの分岐の前記評価値を説明変数毎に合計して、前記分類部による分類に関する評価値を算出する分類結果評価部と、を備える。
【0008】
前記分類結果評価部は、前記経路に含まれるノードからの分岐の前記評価値を合計して、前記分類結果に対する評価値を算出するようにしてもよい。
【0009】
前記分類部は、複数の前記木構造の分類モデルの各々における前記分類結果の中から、複数の前記木構造の分類モデル全体における分類結果を選択し、前記分類結果評価部は、複数の前記木構造のモデルの各々における前記分類部の分類に関する評価値に基づいて、複数の前記木構造の分類モデル全体における前記分類部の分類に関する評価値を算出するようにしてもよい。
【0010】
前記分類部は、複数の前記木構造の分類モデルの各々における分類結果に対する前記評価値に基づいて、複数の前記木構造の分類モデルの各々における分類結果の中から、複数の前記木構造の分類モデル全体における分類結果を選択するようにしてもよい。
【0011】
前記木構造の分類モデルは決定木であり、前記分岐評価部は、前記決定木における分岐の評価値を分岐の親ノードでの平均情報量と子ノードでの平均情報量との違いに基づいて算出するようにしてもよい。
【0012】
前記分岐評価部は、さらに、前記親ノードに到達した学習用データの数に基づいて、前記決定木における分岐の評価値を算出するようにしてもよい。
【0013】
前記分岐評価部は、前記木構造のモデルのノード毎に、当該ノードに到達した学習用データに含まれる目的変数値を計数して最多数の目的変数値を検出し、前記分類結果評価部は、さらに、前記経路のうち親ノードと子ノードとで最多数の目的変数値が異なる位置に基づいて、前記分類部の分類結果に対する評価値を算出するようにしてもよい。
【0014】
前記木構造の分類モデルは回帰木であり、前記分岐評価部は、前記回帰木における分岐の親ノードに到達した学習用データに含まれる目的変数値の内平方和と、子ノードに到達した学習用データに含まれる目的変数値の内平方和との違いに基づいて前記分岐の評価値を算出するようにしてもよい。
【0015】
前記木構造の分類モデルに学習用データを適用した学習結果と適用した学習用データに含まれる目的変数値との関係におけるκ係数を算出し、得られたκ係数に基づいて前記木構造の分類モデルに用いる説明変数を選択する説明変数選択部をさらに備えるようにしてもよい。
【0016】
本発明の第2の態様によれば、分類方法は、分類装置が、分類対象データの分類に用いられる木構造の分類モデルにおける個々の分岐の評価値を算出する分岐評価ステップと、前記分類装置が、前記木構造の分類モデルを用いて前記分類対象データを分類して分類結果を取得する分類ステップと、前記分類装置が、前記分類ステップでの分類における前記木構造の分類モデル上の経路に含まれるノードからの分岐の前記評価値を説明変数毎に合計して、前記分類ステップでの分類に関する評価値を算出する分類結果評価ステップと、を含む。
【0017】
本発明の第3の態様によれば、プログラムは、コンピュータに、分類対象データの分類に用いられる木構造の分類モデルにおける個々の分岐の評価値を算出する分岐評価ステップと、前記木構造の分類モデルを用いて前記分類対象データを分類して分類結果を取得する分類ステップと、前記分類ステップでの分類における前記木構造の分類モデル上の経路に含まれるノードからの分岐の前記評価値を説明変数毎に合計して、前記分類ステップでの分類に関する評価値を算出する分類結果評価ステップと、を実行させるためのプログラムである。
【発明の効果】
【0018】
上記した分類装置、分類方法及びプログラムによれば、木構造の分類モデルを用いた判定について、判定結果を評価するための情報を提供することができる。
【図面の簡単な説明】
【0019】
図1】本発明の第1実施形態に係る予測装置の機能構成を示す概略ブロック図である。
図2】同実施形態に係る決定木に含まれるノードの例を示す説明図である。
図3】同実施形態に係る予測結果評価部が生成する評価用情報の第1の例を示す説明図である。
図4】同実施形態に係る予測結果評価部が生成する評価用情報の第2の例を示す説明図である。
図5】同実施形態に係る予測結果評価部が評価値の算出に用いるデータの例を示す説明図である。
図6】同実施形態に係る決定木における経路の第1の例を示す説明図である。
図7】同実施形態に係る決定木における経路の第2の例を示す説明図である。
図8】同実施形態に係る予測結果評価部が算出する重みの例を示す説明図である。
図9】同実施形態に係る予測部が重み付け多数決を行う場合の予測結果の確度の例を示すグラフである。
図10】同実施形態に係る回帰木に含まれるノードの例を示す説明図である。
図11】同実施形態に係る予測装置が機械学習を行う処理手順の例を示すフローチャートである。
図12】同実施形態に係る予測装置が予測を行う処理手順の例を示すフローチャートである。
図13】本発明の第2実施形態に係る分類装置の機能構成を示す概略ブロック図である。
図14】同実施形態に係る予測装置による予測結果と正解との関係を示す説明図である。
図15】因子数が3つの場合に、同実施形態に係る説明変数選択部が因子を選択する処理の例を示す説明図である。
図16】同実施形態に係る説明変数選択部が因子の最適化を行う第1の方法における処理手順の例を示すフローチャートである。
図17】同実施形態に係る誤回答因子の除去に用いる学習用データの例を示す説明図である。
図18】同実施形態に係る予測結果と正解との関係に対するラベルの例を示す説明図である。
図19】同実施形態に係る制御部が誤回答因子の除去用に生成する決定木の例を示す説明図である。
図20】同実施形態に係る誤回答因子の検出の繰り返しの例を示す説明図である。
図21】同実施形態に係る説明変数選択部が因子の最適化を行う第2の方法における処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0021】
<第1実施形態>
図1は、本発明の第1実施形態に係る予測装置の機能構成を示す概略ブロック図である。図1に示すように、予測装置100は、データ取得部110と、出力部120と、記憶部180と、制御部190とを備える。制御部190は、分岐評価部191と、予測部192と、予測結果評価部193とを備える。
【0022】
予測装置100は、機械学習を行って木(Tree)構造の分類モデルを取得し、得られた分類モデルを用いて分類対象データの分類を行う。予測装置100は、分類装置の例に該当する。
予測装置100が用いる学習用データでは、説明変数値、目的変数値共に示されている。予測装置100が学習によって取得する木構造の分類モデルでは、説明変数値による分岐条件が根ノード(Root Node)及び中間ノード(Intermediate Node)に示され、目的変数値が葉ノード(Leaf Node)に示される。
【0023】
一方、予測装置100が用いる分類対象データでは、説明変数値は示されているが目的変数値は示されていない。予測装置100の予測部192は、分類対象データの説明変数値を木のノードに示される分岐条件に適用して、根ノードから葉ノードへ向けて木を辿り、葉ノードに示される目的変数値を取得する。
また、予測装置100の予測結果評価部193は、得られた分類結果を評価するための評価用情報を生成する。予測装置100のユーザは、この評価用情報を参照して、分類結果の確度又は分類の根拠を解析するなど、予測装置100が行った分類を解析することができる。
【0024】
以下では、予測装置100が行う分類対象データの分類を予測と称するが、予測装置100の用途は未来の事象の予測に限らない。予測装置100が、過去の事象の分析を行うようにしてもよいし、機器の制御など現在の事象に対する処理を行うようにしてもよい。
以下では、予測装置100が取得する分類対象データを予測対象データと称する。また、予測装置100が用いる分類モデルを予測モデルと称する。
【0025】
また、以下では、予測装置100が森(Forest)構造の予測モデルを用いる場合を例に説明するが、予測装置100が用いる森構造の予測モデルに含まれる木の数は、1つであってもよい。すなわち、予測装置100が単体の木で構成される予測モデルを用いるようにしてもよい。
また、以下では、1つの装置(予測装置100)が、機械学習と予測対象データに基づく予測とを行う場合を例に説明するが、機械学習を行う装置と予測対象データに基づく予測を行う装置とが別個の装置として構成されていてもよい。
また、以下では、予測装置100が用いる木構造の予測モデルが決定木である場合を例に説明するが、予測装置100が用いる木構造の予測モデルはこれに限らない。後述するように、予測装置100が用いる木構造の予測モデルは回帰木であってもよい。
【0026】
データ取得部110は、学習用データを取得する。データ取得部110が取得した学習用データを用いて制御部190が機械学習を行い、決定木を生成する。
また、データ取得部110は、予測対象データを取得する。データ取得部110が取得した予測対象データに対し、制御部190の予測部192が、当該予測対象データに基づく予測を行う。
【0027】
データ取得部110は、例えば通信回路を含んで構成され、他の装置と通信を行って学習用データ及び予測対象データを取得する。
但し、データ取得部110が学習用データ及び予測対象データを取得する方法として、他の装置との通信による方法に限らずいろいろな方法を用いることができる。例えば、データ取得部110が外付けの記憶デバイスに対するインタフェースを含んで構成され、記憶デバイスからデータを取得するようにしてもよい。あるいは、記憶部180が学習用データを予め記憶している場合、データ取得部110が記憶部180から学習用データを読み出すようにしてもよい。あるいは、データ取得部110がキーボード等の操作入力デバイスを有し、ユーザ操作によって入力されるデータを取得するようにしてもよい。あるいは、データ取得部110がこれら複数の方法の組み合わせで学習用データ及び予測対象データを取得するようにしてもよい。
【0028】
出力部120は、予測部192による予測結果、及び、予測結果評価部193が生成した評価用情報を出力する。
例えば出力部120は、液晶パネル又はLED(Light Emitting Diode、発光ダイオード)パネルなどの表示画面を有し、予測結果及び評価用情報を表示画面に表示する。あるいは、出力部120が通信回路を含んで構成され、予測結果及び評価用情報を他の装置へ送信するなど、表示以外の方法で出力を行うようにしてもよい。あるいは、出力部120が、これら複数の方法を組み合わせて、予測結果及び評価用情報の出力を行うようにしてもよい。
【0029】
記憶部180は、予測装置100が備える記憶デバイスを用いて構成され、各種データを記憶する。
制御部190は、予測装置100の各部を制御して各種処理を行う。制御部190は、例えば予測装置100が備えるCPU(Central Processing Unit、中央処理装置)が、記憶部180からプログラムを読み出して実行することで構成される。
上記のように、制御部190は、データ取得部110が取得した学習用データを用いて機械学習を行い、決定木を生成する。例えば、データ取得部110は、ランダムフォレスト(Random Forest)のアルゴリズムを用いて複数の決定木を生成する。
【0030】
分岐評価部191は、決定木における個々の分岐の評価値を算出する。具体的には、分岐評価部191は、分岐元のノードにおける平均情報量(Entropy)と分岐先のノードにおける平均情報量との違いに基づいて分岐の評価値を算出する。さらに具体的には、分岐評価部191は、分岐元のノードと分岐先のノードとの間の情報利得(Information Gain)を算出し、得られた情報利得と分岐元のノードに到達する学習用データの数とを乗算して、分岐の評価値を算出する。
【0031】
図2は、決定木に含まれるノードの例を示す説明図である。図2のノードXは、分岐元のノードに該当し、ノードY及びZはいずれも分岐先のノードに該当する。
図2の「到達データ数」の項目は、ノードに到達した学習用データの個数を示している。「正常」の項目は、ノードに到達した学習用データのうち目的変数値が「正常」であるものの個数を示している。「異常」の項目は、ノードに到達した学習用データのうち目的変数値が「異常」であるものの個数を示している。「分割因子」の項目は、分岐条件を示している。ここでいう分岐条件は、予測部192が予測の際に分岐先のノードのいずれかを選択するための判定条件である。
【0032】
図2の例では、ノードXに到達した100個の学習用データのうち、60個の目的変数値が「正常」となっており、40個の目的変数値が「異常」となっている。
また、ノードXでは、回転数が600より大きいか否かが分岐先になっている。予測部192は、予測対象データに示される回転数が600より大きい場合はノードYへ進み、600未満の場合はノードZへ進む。
以下では、予測部192が予測対象データに基づいて特定のノードに到達することを、予測対象データが当該ノードに到達するとも表記する。
ノードXにおける分岐条件のうち回転数は、説明変数の例に該当する。回転数の具体的な数値は、説明変数値の例に該当する。
以下では、説明変数を因子とも称する。
【0033】
図2の例では、ノードXに到達した100個の予測対象データのうち80個がノードYに分岐し、20個がノードZに分岐している。ノードYに到達した80個の予測対象データのうち60個の目的変数値が「正常」となっており、20個の目的変数値が「異常」となっている。また、ノードYに到達した20個の予測対象データの全てで目的変数値が「異常」となっている。
分岐評価部191は、式(1)に基づいて、ノードXからの分岐の評価値S(X)を算出する。
【0034】
【数1】
【0035】
ここで、N(X)は、ノードXに到達した学習用データの個数を示す。図2の例の場合、N(X)=100である。
また、IG(X)は、ノードXからの分岐における情報利得を示す。情報利得IG(X)は、式(2)のように示される。
【0036】
【数2】
【0037】
上記のように、N(X)は、ノードXに到達した学習用データの個数を示す。図2の例の場合、N(X)=100である。N(Y)は、ノードYに到達した学習用データの個数を示す。図2の例の場合、N(Y)=80である。N(Z)は、ノードZに到達した学習用データの個数を示す。図2の例の場合、N(Z)=20である。
また、H(X)、H(Y)、H(Z)は、それぞれノードX、ノードY、ノードZにおける平均情報量を示す。平均情報量H(W)は、式(3)のように示される。
【0038】
【数3】
【0039】
ここで、Wはノードを示す。図2の例の場合、WにX、Y、Zをそれぞれ代入する。
また、B1(W)及びB2(W)は、ノードWに到達した学習用データのうち、目標変数値毎に当該目的変数値を示す学習用データの個数を示す。例えばノードXの場合、B1(X)は、目的変数値「正常」を示す学習用データの数「60」であり、B2(X)は、目的変数値「異常」を示す学習用データの数「40」である。
なお、B1とB2とが逆でもよい。すなわち、B1が、目的変数値「異常」を示す学習用データの数を示し、B2が、目的変数値「正常」を示す学習用データの数を示していてもよい。
【0040】
ノード毎の平均情報量は、当該ノードにおける目的変数値のばらつき度合いを示す。平均情報量が大きいほど、異なる目的変数値の数が同数に近く、平均情報量が小さいほど、いずれかの目的変数値に偏っている。従って、平均情報量が小さいノードほど、目的変数値の整理が進んでいる(すなわち、学習用データの分類が進んでいる)。
図2の例で、ノードXでは、「正常」と「異常」との割合が3:2であるのに対し、ノードYでは3:1になっている。また、ノードXの平均情報量H(X)≒0.971に対し、ノードYの平均情報量H(Y)≒0.811である。このように、ノードXにおける目的変数値よりもノードYにおける目的変数値の方が「正常」に偏っているため、ノードXの平均情報よりもノードYの平均情報量の方が小さくなっている。
【0041】
また、分岐における情報利得は、分岐前後での平均情報量の違いを示す。情報利得が大きい分岐ほど、その分岐によって目的変数値の偏りが大きくなっている。従って、情報利得が大きい分岐ほど、その分岐によって学習用データが効率的に分類されている。
このことから、情報利得が大きい分岐の親ノードを経由して得られた予測結果は、確度が高いと判断できる。
【0042】
ここで、情報利得は平均情報量に基づいて算出され、平均情報量は学習用データの絶対数ではなく個数の比に基づいて算出される。このため、分岐元のノードに到達した学習用データの数が少ない場合、情報利得の大きさが大きくなり易い。一方、分岐元のノードに到達した学習用データの数が少ない場合、このノードからの分岐については、学習結果に対する信頼性が低いといえる。そこで、式(1)では、ノードXに到達した学習用データの個数N(X)を、ノードXからの分岐における情報利得IG(X)に乗算している。これにより、分岐元のノードに到達した学習用データの数が少ないノードからの分岐の評価値が小さくなる。
このように、分岐の評価値として、データが効率的に分類されている度合いの評価値(情報利得の大きさの評価値)を用いる。データが効率的に分類されている分岐ほど分岐の評価値が大きくなる。この分岐の評価値は、いわば所望の分類における分岐の重要度を示す値である。
【0043】
以下では、ノードからの分岐の評価値を、分岐元のノードのスコアとも称する。例えば、S(X)をノードXのスコアとも称する。図2の例では、IG(X)≒0.16、N(X)=100であり、S(X)≒16である。
分岐評価部191は、機械学習時に制御部190が決定木を生成した段階で、生成された決定木の根ノード及び中間ノード(すなわち、葉ノード以外)の各々について、当該ノードのスコアを算出する。予測装置100が、複数の決定木によるアンサンブルモデルを用いる場合、分岐評価部191は、決定木毎に、根ノードのスコア及び各中間ノードのスコアを算出する。ここでいうアンサンブルモデルは、木構造の予測モデルを複数含むモデルである。予測装置100は、木構造の予測モデルの各々について予測結果を取得し、例えば多数決をとるなど統計的処理を行うことでアンサンブルモデルにおける予測結果を取得する。
【0044】
また、分岐評価部191は、決定木のモデルのノード毎に、当該ノードに到達する学習用データに含まれる目的変数値を計数して最多数の目的変数値を検出し、記憶部180に記憶させる。分岐評価部191が検出する最多数の目的変数値は、予測結果評価部193が、予測部192による予測に関する評価値を算出する際に、処理対象とするノードを限定する(マスクする)ために用いられる。
【0045】
予測部192は、データ取得部110が取得した予測対象データに基づく予測を行う。具体的には、予測部192は、予測対象データに示される説明変数値を参照して決定木を辿り(すなわち、予測対象データを決定木に適用して)、到達した葉ノードに示される目的変数値を取得する。予測部192が取得する目的変数値は、予測結果に該当する。
予測部192は、分類部の例に該当する。
予測装置100が、複数の決定木を含むアンサンブルモデルを用いる場合、予測部192は、決定木毎に目的変数値を取得し、得られた目的変数値の多数決によって、いずれかの目的変数値を選択する。なお、予測部192が、単純多数決に代えて後述する重み付け多数決を行うようにしてもよい。
【0046】
このように、予測部192は、予測対象データに対応する目的変数値を取得することで、予測対象データに基づく予測(判定)を行う。
例えば、目的変数が発電機の回転数及び発電量等の測定データを示し、目的変数値が「正常」または「異常」のいずれかである場合、予測部192は、予測対象データとして取得した測定データに対応する目的変数値として「正常」または「異常」のいずれかを取得する。これにより、予測装置100は、発電機に関する測定データの入力に対して「正常」または「異常」のいずれかの判定結果を出力する。このように、予測部192が行う分類を各種判定に用いることができる。
【0047】
予測結果評価部193は、予測部192による予測における決定木上の経路に含まれるノードのスコアに基づいて、予測部192による予測に関する評価値を算出する。そして、予測結果評価部193は、得られた評価値に基づいて分類に関する評価用情報を生成する。予測結果評価部193は、生成した評価用情報を出力部120に出力させる。
予測結果評価部193は、分類結果評価部の例に該当する。
【0048】
図3は、予測結果評価部193が生成する評価用情報の第1の例を示す説明図である。
図3の例で、「データNo.」の項目は、予測対象データ識別番号を示す。予測対象データ識別番号は、予測対象データを識別するための番号である。従って、図3の1行が1つの予測対象データに対応している。
「予測結果」の項目は、予測部192による予測結果を示す。すなわち、「予測結果」の項目には、予測対象データに基づいて予測部192が取得した目的変数値が示されている。
【0049】
「賛成決定木数」の項目は、予測結果となった目的変数値を示した決定木の数を示している。例えば、予測部192が複数の決定木から得られた目的変数値の単純多数決で予測結果を選択する場合、「賛成決定木数」の項の項目には、最多数となった目的変数値を示した決定木の数を示す。
「確度」の項目は、予測部192による予測結果に対して予測結果評価部193が算出した評価値を示す。評価値が大きいほど予測結果の確度が高いとの評価を示している。
【0050】
「重要因子1」、「重要因子2」、・・・の項目は、因子(説明変数)を、予測部192による予測の根拠として重要な順に示す。予測結果評価部193は、因子毎に当該因子の重要度の評価値を算出し、評価値の大きい順に因子を並べる。さらに、予測結果評価部193は、予測結果の項目に示される予測結果となるための目的変数値の条件(例えば、目的変数値の上下限値)を求める。予測結果評価部193は、得られた評価が大きい因子から順に、当該因子について得られた条件を「重要因子1」、「重要因子2」、・・・の欄に格納している。
以下では、重要因子1、重要因子2、・・・を総称して重要因子と表記する。
「スコア」の項目は、該当する重要因子(当該スコアと同じ欄に示されている重要因子)について予測結果評価部193が算出した評価値を示している。
【0051】
予測装置100のユーザは、「確度」の項目に示される評価値を、予測結果の確度の判断材料とすることができる。また、予測装置100のユーザは、「重要因子」の項目に示される因子及び条件と、「スコア」の欄に示される評価値とを参考にして、予測の根拠を検討することができる。予測の根拠が妥当か否かを判断することで、予測結果の確度を判断することができる。
【0052】
なお、予測結果評価部193が、1つの決定木について1つの評価用情報を生成するようにしてもよい。この場合、「賛成決定木数」の項目が無くなる以外は、図3の例と同様の項目とすることができる。各行には、予測部192が、1つの予測対象データを1つの決定木に適用して行った分類に対する評価用情報が示される。
【0053】
あるいは、予測結果評価部193が、決定木毎に生成した評価用情報を結合した(1つの情報にまとめた)評価用情報を生成するようにしてもよい。この場合、上記と同様、「賛成決定木数」の項目が無くなり、各行には、予測部192が、1つの予測対象データを1つの決定木に適用して行った分類に対する評価用情報が示される。
さらに、「データNo.」の項目に加えて「決定木No.」の項目を設け、「データNo.」欄を「データNo./決定木No.」欄に置き換える。この「データNo./決定木No.」の欄には、例えば「1/3」のように、その行に示される評価用情報の対象となる予測対象データ識別番号及び決定木識別番号が示される。上記のように、予測対象データ識別番号は、予測対象データを識別するための番号である。また、決定木識別番号は、決定木を識別するための番号である。
それ以外は、図3の例と同様の項目とすることができる。
【0054】
図4は、予測結果評価部193が生成する評価用情報の第2の例を示す説明図である。
図3の例では、因子がスコアの高い順に並んでいたのに対し、図4の例では、予め定められた順に因子が並んでいる。また、図3の例では、因子について得られた条件が示されているのに対し、図4では、この条件の表示は省略されている。それ以外は、図3の場合と同様である。
【0055】
図5は、予測結果評価部193が評価値の算出に用いるデータの例を示す説明図である。以下では、予測結果評価部193が評価値の算出に用いるデータを評価値算出用データと称する。
例えば、予測部192が予測対象データに基づく予測のために決定木を辿る際に、決定木毎に評価値算出用データを生成する。あるいは、予測部192が予測対象データに基づく予測を行った後に、予測結果評価部193が評価値算出用データを生成するようにしてもよい。
【0056】
評価値算出用データは、予測部192が予測対象データを分類するために辿った経路における各ノードに関する情報を示す。図5の例では、1つのノードに関する情報が1行に示されている。
図5の例で、「決定木深さ」の項目は、根ノードの深さを「1」とした場合のノードの深さを示す。
【0057】
「通過ノード」の項目は、ノード識別番号を示す。ノード識別番号は、ノードを識別するための番号であり、「決定木深さ」の項目に示されるノードの深さと、同じ深さのノードの識別番号として付された通し番号とを組み合わせて構成されている。評価値算出用データの各行は、その行の「通過ノード」欄に設定されているノード識別番号のノードに関する情報を示す。
【0058】
「スコア」の項目は、図2を参照して説明したノードのスコアを示す。
「因子」の項目は、分岐条件の判定(分岐先のノードの決定)に用いられた説明変数を示す。
「分岐結果」の項目は、分岐条件の判定の結果を示す。具体的には、「分岐結果」の項目は、分岐条件に含まれる判定閾値、及び、予測対象データに示される説明変数値の判定条件に対する関係(「>」、「=」または「<」など)を示す。
【0059】
因子と分岐結果との組み合わせで、分岐先のノードへ分岐するための分岐条件(説明変数値が満たすべき条件)を示す。例えば、図2の例でノードXからノードYへ分岐した場合、因子は「回転数」となり、分岐結果は「>600」となる。一方、ノードXからノードZへ分岐した場合、因子は「回転数」となり、分岐結果は「≦600」となる。
「マジョリティ」の項目は、ノードに到達した学習用データに含まれる目的変数値のうち最多数の目的変数値を示す。例えば、図2の例のノードXの場合、目的変数値「正常」の個数が60で最多であり、マジョリティ(Majority)は「正常」となる。予測部192は、予測対象データに基づく予測の際に到達したノードについて、分岐評価部191が検出した最多数の目的変数値を記憶部180から読出し、評価値算出用データの該当欄に書き込む。
【0060】
図6は、決定木における経路の第1の例を示す説明図である。
図6の例で、「ノード」の項目は、ノード識別番号を示す。「スコア」の項目は、ノードのスコアを示す。「マジョリティ」の項目は、図5の場合と同様である。「判定」の項目は、決定木としての予測結果を示す。すなわち、「判定」の項目に示される予測結果は、予測部192が、予測対象データに基づく予測の際に決定木を葉ノードまで辿って葉ノードで取得する目的変数値である。
【0061】
経路W11は、予測の際に予測部192が辿った経路の例である。図6の例では、予測部192は、ノード1、2−1、3−2、4−2、5−1の順に辿り、葉ノードであるノード5−1で、「正常」との判定結果を取得している。
予測結果評価部193は、予測部192が辿った経路に含まれるノードのスコアを合計することで、決定木における予測結果に対する評価値を算出する。ここでいう決定木における予測結果に対する評価値は、1つの予測対象データについて予測部192が1つの決定木を辿って得た予測結果に対する評価値である。
【0062】
図6の例の場合、予測結果評価部193は、ノード4−2、3−2、2−1、1の順に辿り、この決定木における予測結果に対する評価値を2000+1000+800+100=3900と算出する。
決定木における予測結果に対する評価値を算出するために、予測結果評価部193は、図5を参照して説明した評価値算出用データを用いる。具体的には、予測結果評価部193は、評価値算出用データのスコアの項目に示されるノードのスコアを合計することで、決定木における予測結果に対する評価値を算出する。
決定木における予測結果に対する評価値が高い場合、予測の際に予測部192がスコアの高いノードを経由していると考えられる。スコアの高いノードからの分岐は、情報利得が大きく、上記のように学習用データが効率的に分類されている。このことから、評価値が高い予測結果は確度が高いと判断できる。
【0063】
さらに、予測結果評価部193は、アンサンブルモデルのうち同じ予測結果を示す決定木について、決定木における予測結果に対する評価値を合計する。これにより、予測結果評価部193は、アンサンブルモデルにおける予測結果に対する評価値を算出する。ここでいうアンサンブルモデルにおける予測結果に対する評価値は、1つの予測対象データについて予測部192がアンサンブルモデル全体から得た予測結果に対する評価値である。
アンサンブルモデルにおける予測結果に対する評価値は、図3の例及び図4の例の「確度」の項目に示される。上記のように、個々の決定木における予測結果に対する評価値が予測結果の確度を示していると考えられることから、アンサンブルモデルにおける予測結果に対する評価値も、予測結果の確度を示していると考えられる。
【0064】
また、予測結果評価部193は、個々の決定木における因子毎(説明変数毎)の評価値を算出する。具体的には、予測結果評価部193は、予測部192が辿った経路に含まれるノードのスコアを因子毎に合計する。
説明変数毎のモデルを算出するために、予測結果評価部193は、図5を参照して説明した評価値算出用データを用いる。具体的には、予測結果評価部193は、評価値算出用データの因子の項目に示される因子のうち同じ因子を検出する。そして、予測結果評価部193は、因子を検出した行のスコアの欄に示されているノードのスコアを合計することで、因子毎の評価値(すなわち、説明変数毎の評価値)を算出する。
予測結果評価部193は、因子の項目に出現する全ての因子について、因子毎の評価値を算出する。因子の項目に1つのみ出現する因子については、予測結果評価部193は、当該因子が示されている行におけるノードのスコアを、因子毎の評価値とする。
【0065】
さらに、予測結果評価部193は、アンサンブルモデルのうち同じ予測結果を示す決定木について、説明変数毎の評価値を合計することで、アンサンブルモデルにおける説明変数毎の評価値を算出する。アンサンブルモデルにおける説明変数毎の評価値は、図3の例及び図4の例の「スコア」の項目に示される。
【0066】
また、予測結果評価部193は、因子毎の条件を検出する。ここでいう因子毎の条件は、予測部192が辿った経路となるために説明変数値が有するべき条件である。
因子毎の条件を検出するために、予測結果評価部193は、図5を参照して説明した評価値算出用データを用いる。具体的には、予測結果評価部193は、評価値算出用データの因子の項目に示される因子のうち同じ因子を検出する。そして、予測結果評価部193は、因子を検出した行の分岐結果の欄に示されている分岐結果(因子の値の条件)のアンド(and)をとることで、因子毎の条件を検出する。予測結果評価部193は、例えば、上限値については最も小さい上限値を採用し、下限値については最も大きい下限値を採用する。
予測結果評価部193は、因子の項目に出現する全ての因子について、決定木における因子毎の条件(決定木における因子毎の条件)を検出する。因子の項目に1つのみ出現する因子については、予測結果評価部193は、当該因子が示されている行における分岐結果を、因子毎の条件とする。
【0067】
さらに予測結果評価部193は、予測結果評価部193は、アンサンブルモデルのうち同じ予測結果を示す決定木について、因子毎の条件のアンドをとることで、アンサンブルモデルにおける因子毎の条件を検出する。アンサンブルモデルにおける因子毎の条件は、図3の例の「重要因子」の項目に示される。
アンサンブルモデルにおける評価値が高い説明変数は、個々の決定木における評価値が高いと考えられる。従って、アンサンブルモデルにおける評価値が高い説明変数は、予測の根拠として重要であると考えられる。
【0068】
図7は、決定木における経路の第2の例を示す説明図である。図7の経路12は、予測対象データに基づく予測の際に予測部192が決定木を辿った経路の例である。
図7の例における決定木は、図6の場合と同じである。一方、経路W12が示す経路が、図6の経路W11が示す経路と異なっている。具体的には、図6の例では、予測部192がノード4−2からノード5−1へ進んでいるのに対し、図7の例では、ノード4−2から5−2へ進んでいる。
【0069】
図6の経路W11ではいずれのノードでもマジョリティが「正常」であったのに対し、図7の経路W12では、ノード4−2で「正常」であったマジョリティが、ノード5−2では「異常」に切り替わっている。なお、葉ノードでは「判定」の項目が「マジョリティ」の項目に相当する。
図7の例のようにマジョリティが切り替わった場合、切り替わり前の分岐は予測結果の決定に貢献してないと評価できる。特に、マジョリティが決定木の深い段(葉ノードに近い箇所)で切り替わった場合、予測結果の決定に貢献している判定の回数(分岐の回数)が少ない点で、この予測結果の信頼性は低いと評価できる。
このようなマジョリティの切り替わりを決定木における予測結果に対する評価値に反映させるため、予測結果評価部193は、評価値の算出対象を限定するための重みを算出する。
【0070】
図8は、予測結果評価部193が算出する重みの例を示す説明図である。図8では、図5の評価値算出用データに「重み」の項目が加わった評価値算出用データが示されている。予測結果評価部193は、図5の評価値算出用データに「重み」の列を加え、評価値算出用データの下側の行(葉ノード側の行)から順に参照してく。そして、予測結果評価部193は、マジョリティが最初に切り替わる親ノード(分岐元のノード)まで重みを「1」に設定し、それより上(根ノード側)のノードについては重みを「0」に設定する。
【0071】
重みの値「1」は、ノードを評価値算出の対象とすることを示す。一方、重みの値「0」は、ノードを評価値算出の対象から除外することを示す。
図7の例の場合、予測結果評価部193は、ノード4−2の重みを「1」に設定し、ノード3−2、3−1、1のいずれについても重みを「0」に設定する。そして予測結果評価部193は、設定した重みに基づいてノード4−2のみを決定木における予測結果に対する評価値の算出対象として、当該評価値を100と算出する。
【0072】
このように、予測結果評価部193は、算出した重み用いてノードに対するマスキングを行なう。但し、予測結果評価部193が、マスキング以外の重み付けを行うようにしてもよい。例えば、予測結果評価部193が、マジョリティが最初に切り替わる親ノードよりも上のノードの重みを「0.1」に設定し、各ノードのスコアに重みを乗算して合計するようにしてもよい。これにより、決定木における予測結果に対する評価値の算出について、マジョリティが最初に切り替わる親ノードよりも上のノードの影響を調整する(比較的小さくする)ことができる。
【0073】
なお、予測部192が、アンサンブルモデルにおける予測結果を取得する際に、予測結果評価部193が算出した評価値を用いた重み付け多数決を行うようにしてもよい。
具体的には、データ取得部110が予測対象データを取得すると、予測部192は、まず、予測対象データに基づいて各決定木を辿り、決定木毎の予測結果を取得する。そして、予測結果評価部193が、決定木における予測結果に対する評価値(すなわち、予測対象データ毎、かつ、決定木毎の、予測部192による分類に対する評価値)を算出する。そして、予測部192は、同じ予測結果を示す決定木毎に当該評価値を合計し、合計値が最大となった予測結果を選択する。
これにより、予測部192は、各決定木における分類への評価を加味して予測結果を選択することができる。
【0074】
図9は、予測部192が重み付け多数決を行う場合の予測結果の確度の例を示すグラフである。図9は、ランダムフォレストで決定木を生成し、上述した重み付け多数決で予測結果を選択した実験結果を示している。
線L111は、重み付け多数決で予測結果を選択した場合の結果を示している。一方、線L112は、同じくランダムフォレストで線L111の場合と同数の決定木を生成し、単純多数決で予測結果を選択した場合の結果を示している。
【0075】
また、縦軸は予測結果と学習用データに含まれる説明変数値との関係におけるκ係数(カッパ係数)の値を示している。κ係数値が大きいほど、予測結果の確度が高いと評価できる。
実験では、異なる3つの条件で重み付け多数決の場合と、単純多数決の場合とを比較した。その結果、3つの条件のいずれでも重み付け多数決の場合のほうがκ係数値が大きくなった。
このように、上述した重み付け多数決を行う方が、単純多数決を行う場合よりも予測結果の確度が高くなることが実験で示された。
【0076】
なお、予測装置100が用いる木構造の予測モデルは決定木に限らず回帰木であってもよい。回帰木の場合、学習用データの目的変数値として数値が示され、予測装置100は、予測結果として数値を出力する。
回帰木の場合、分岐評価部191は、回帰木における分岐の親ノードに到達した学習ノードに含まれる目的変数値の内平方和と、子ノードに到達した学習用データに含まれる目的変数値の内平方和との違いに基づいてノードのスコアを算出する。
【0077】
図10は、回帰木に含まれるノードの例を示す説明図である。図10のノードXは、分岐元のノードに該当し、ノードY及びZは、いずれも分岐先のノードに該当する。
図10で、「到達データ数」の項目は、ノードに到達した学習用データの数を示している。「目的変数平均値」の項目は、ノードに到達した学習用データに含まれる目的変数値の平均値を示している。「分割因子」の項目は、図2の場合と同様、分岐条件を示している。
【0078】
図10の例で、ノードXに到達した学習用データの個数をm+nとする。これらのノードのうちノードYに分岐した学習用データの個数をmとし、ノードZに分岐した学習用データの個数をnとする。また、ノードX、Y、Zに到達した学習用データに含まれる目的変数値の平均値を、それぞれax、ay、azとする。
分岐評価部191は、式(4)に基づいて、ノードXからの分岐の評価値S’(X)を算出する。
【0079】
【数4】
【0080】
N(X)は、式(1)の場合と同様、ノードXに到達した学習用データの個数を示す。図10の例ではN(X)=m+nである。
IG’(X)は、分岐前と分岐後とでの目的変数値のばらつきの大きさの違いを示す指標値であり、式(5)のように示される。
【0081】
【数5】
【0082】
m+nは、上述したようにノードXに到達した学習用データの個数を示す。
H’(X)、H’(Y)、H’(Z)は、それぞれノードX、ノードY、ノードZにおける内平方和を示す。内平方和H’(W)は、式(6)のように示される。
【0083】
【数6】
【0084】
ここで、Wはノードを示す。図10の例の場合、WにX、Y、Zをそれぞれ代入する。
また、lは、ノードWに到達した学習用データの個数を示す。ノードX、Y、Zの場合、それぞれl=m+n、l=m、l=nとなる。
また、aは、ノードWに到達した学習用データに含まれる目的変数値を示す。aは、ノードWに到達した学習用データに含まれる目的変数値の平均値を示す。ノードX、Y、Zの場合、それぞれa=ax、a=ay、a=azとなる。
【0085】
予測装置100は、分岐の評価値S’(X)を用いることで、分岐の前後での目的変数値のばらつきの度合いの違いを評価することができる。また、式(1)の場合と同様、式(4)でも、分岐元のノードに到達した学習用データの個数が少ない場合の評価値を比較的小さくすることができる。
【0086】
予測結果評価部193が評価値を算出する際の重み付けに関して、回帰木の場合は決定木の場合と異なりマジョリティという概念が無い。そこで、予測結果評価部193は、最終的な平均値(葉ノードにおける目的変数値の平均)に近いノードほど高い重み付けを行う。具体的には、予測結果評価部193は、深さnのノードに対して式(7)に示される重みWEIGHT(n)で重み付けを行う。
【0087】
【数7】
【0088】
ここで、x(n)は、ノードにおける目的変数値の平均値と最終的な目的変数値の平均値との相違の計算値であり、例えば式(8)に基づいて算出する。
【0089】
【数8】
【0090】
ここで、AVは、最終的な平均値を示す。AVn+1は、深さn+1のノードにおける目的変数値の平均を示す。DEVは、初期ノード標準偏差を示す。ここでいう初期ノード標準偏差は、学習用データに含まれる全ての目的変数の標準偏差である。
なお、式(7)は、x(n)の絶対値が大きいほど小さい重みに設定するための式である。式(7)に代えて、x(n)の絶対値が大きいほど小さい重みになるいろいろな式を用いることができる。
【0091】
次に、図11図12を参照して、予測装置100の動作について説明する。
図11は、予測装置100が機械学習を行う処理手順の例を示すフローチャートである。
図11の処理で、データ取得部110は、学習用データを取得する(ステップS111)。
【0092】
制御部190は、データ取得部110が取得した学習用データを用いて機械学習を行い、木構造の予測モデルを複数生成する(ステップS112)。制御部190は、例えばランダムフォレストなど既存のアルゴリズムを用いて木構造の予測モデルを複数生成することができる。
また、分岐評価部191は、制御部190が生成した複数の木構造の予測モデルの各々について、根ノード及び各中間ノードのスコアを算出する(ステップS113)。分岐評価部191は、式(1)〜式(3)のように情報利得に基づいてスコアを算出する。回帰木の場合は、式(4)〜式(6)のように、説明変数値の内平方和の違いに基づいてスコアを算出する。
ステップS113の後、図11の処理を終了する。
【0093】
図12は、予測装置100が予測を行う処理手順の例を示すフローチャートである。
図12の処理で、データ取得部110は、予測対象データを取得する(ステップS211)。
そして、予測部192は、データ取得部110が用いた予測対象データに基づいて予測を行い、予測結果を取得する(ステップS212)。予測部192は、複数の木構造の予測モデルを辿って各々から予測結果を取得し、得られた予測結果を集計して多数決をとることで、アンサンブルモデル全体における予測結果を取得する。上述したように、予測部192が、複数の木構造の各々における予測結果に対する評価値に基づいて重み付け多数決をとるようにしてもよい。
【0094】
ステップS212の後、予測結果評価部193は、予測部192が取得した予測結果を評価するための評価用情報を生成する(ステップS213)。図5図8を参照して説明したように、予測結果評価部193は、ノードに対する重みを算出し、算出した重みに基づいて木構造のモデル毎の予測に関する評価用情報を生成する。回帰木の場合は、式(7)の例のように、最終的な平均値に近いほど高い重み付けを行う。
【0095】
そして、予測結果評価部193は、木構造のモデル毎の予測に関する評価用情報を集計して、図3図4の例のようにランダムフォレストモデルにおける予測に関する予測結果情報を生成する。
ステップS213の後、出力部120は、制御部190の制御に従って、予測結果と評価用情報とを出力する(ステップS214)。
ステップS214の後、図12の処理を終了する。
【0096】
以上のように、分岐評価部191は、予測対象データに基づく予測に用いられる木構造の予測モデルにおける個々の分岐の評価値を算出する。予測部192は、木構造の予測モデル用いて予測対象データに基づく予測を行い、予測結果を取得する。予測結果評価部193は、予測部192による予測における木構造の予測モデル上の経路に含まれるノードからの分岐の評価値に基づいて、予測部192による予測に関する評価値を算出する。
このように、予測結果評価部193が予測に関する評価値を算出することで、予測装置100のユーザは、予測結果の確度(予測装置100による判定結果の信頼度)の判断など予測結果の解析に評価値を用いることができる。このように、予測装置100によれば、木構造の予測モデルを用いた判定について、判定結果の信頼度を評価するための情報を提供することができる。
【0097】
また、予測結果評価部193は、予測部192による予測における木構造の予測モデル上の経路に含まれるノードからの分岐の評価値を説明変数毎に合計して、予測部192による予測における説明変数の評価値を算出する。
予測装置100のユーザは、この評価値を参照することで、予測結果に対する各説明変数の影響の度合いを把握することができ、分類の根拠の検討の参考とすることができる。
【0098】
また、予測結果評価部193は、予測部192による予測における木構造の予測モデル上の経路に含まれるノードからの分岐の評価値を合計して、予測結果に対する評価値を算出する。
この評価値は予測結果の確度に対する評価を示していると考えられ、予測装置100のユーザは、この評価値を参考にして予測結果の確度を判断することができる。
【0099】
また、予測部192は、複数の木構造の予測モデルの各々における予測結果の中から、複数の木構造の予測モデル全体における予測結果を選択する。予測結果評価部193は、複数の木構造のモデルの各々における予測部192の予測に関する評価値に基づいて、複数の木構造の予測モデル全体における予測部192の予測に関する評価値を算出する。
このように、予測結果評価部193が複数の木構造の予測モデル全体における予測に関する評価値を算出することで、予測装置100のユーザは、予測結果の確度の判断など予測結果の解析に評価値を用いることができる。
予測装置が単に予測結果だけを出力する場合、ユーザは、予測の根拠及び予測の確度を判断するためには個々の決定木を自ら解析する必要がある。しかしながら、木の構造が複雑になった場合や、木の数が多くなった場合、分岐条件が複雑に組み合わさって予測が行われており、ユーザが個々の木を解析して予測の根拠や予測の確度を知ることは現実的でない。
これに対し、予測装置100では、ユーザは、予測装置100が提供する情報を予測に関する解析に役立てることができる。
【0100】
また、予測部192は、複数の木構造の予測モデルの各々における予測結果に対する評価値に基づいて、複数の木構造の予測モデルの各々における予測結果の中から、複数の木構造の予測モデル全体における予測結果を選択する。
これにより、予測部192は、各決定木における分類への評価を加味して、評価の高い予測結果を選択することができる。
【0101】
また、分岐評価部191は、決定木における分岐の評価値を分岐の親ノードでの平均情報量と子ノードでの平均情報量との違いに基づいて算出する。
これにより、分岐評価部191は、決定木における分岐について、分岐による目的変数値の整理の度合いを評価することができる。
【0102】
また、分岐評価部191は、さらに、親ノードに到達した学習用データの数に基づいて、決定木における分岐の評価値を算出する。
これにより、分岐評価部191は、学習用データ数が少ない点で信頼度が低いと考えられる分岐に対する評価値を低くすることができる。
【0103】
また、分岐評価部191は、木構造のモデルのノード毎に、当該ノードに到達した学習用データに含まれる目的変数値を計数して最多数の目的変数値を検出する。そして、予測結果評価部193は、さらに、経路のうち親ノードと子ノードとで最多数の目的変数値が異なる位置に基づいて、予測部192の予測結果に対する評価値を算出する。
ここで、最多数の目的変数値(マジョリティ)が切り替わりよりも上側のノードは、予測結果に対する貢献が小さいと考えられる。予測結果評価部193は、この点を加味して予測結果を評価することができる。
【0104】
また、分岐評価部191は、回帰木における分岐の親ノードに到達した学習用データに含まれる目的変数値の内平方和と、子ノードに到達した学習用データに含まれる目的変数値の内平方和との違いに基づいて分岐の評価値を算出する。
これにより、分岐評価部191は、回帰木における分岐について、分岐による目的変数値の整理の度合いを評価することができる。
【0105】
<第2実施形態>
図13は、本発明の第2実施形態に係る分類装置の機能構成を示す概略ブロック図である。図13に示す構成では、図1に示す構成に加えて制御部190が説明変数選択部194を備える。それ以外は、図1の場合と同様である。
説明変数選択部194は、予測装置100が用いる因子(学習用データに含まれる説明変数)の最適化を行う。具体的には、説明変数選択部194は、予測装置100による分類の精度が向上するように、現在の因子のうちの一部を選択する。
【0106】
ここで、一般に機械学習では、ある特定の入力データに着目した際に偶然、目的変数をうまく説明する説明因子が存在する場合がある。この説明因子は、特定の入力データのみに対応する汎用性の無い説明因子であり、他の入力データに対しては誤差要因となる。予測精度の高いモデルを得るためには、このように誤差要因となる説明因子を除外する必要がある。そこで、説明変数選択部194は、現在の因子(モデルで用いられている全ての因子)のうち、誤差要因と考えられる因子を除いた因子を選択する。
【0107】
以下では、説明変数選択部194が因子の一部を選択する2つの方法について説明する。第1の方法では、説明変数選択部194は、因子数0から開始して因子を選択していく。第2の方法では、説明変数選択部194は、現在の因子から開始して、精度低下の要因となる因子を除去していく。説明変数選択部194がいずれの方法を用いるようにしてもよい。
【0108】
(第1の方法)
第1の方法では、説明変数選択部194は、固定因子数0の状態からスタートし、予測結果と学習用データに含まれる説明変数値との関係におけるκ係数値が最も高くなる因子を探し出して確定因子に加える。κ係数値は、予測結果の確度の目安となり、κ係数値が高いほど予測結果の確度が高いと評価出来る。
そして、説明変数選択部194は、確定因子+残りの1つの因子の全ての組み合わせを試す。説明変数選択部194は、残りの因子がなくなるか、あるいは、κ係数値が上がらなくなるまでこれを繰り返す。
【0109】
ここで、図14を参照してκ係数値を用いた予測結果の確度の算出について説明する。ここでいうκ係数は、見かけ上の一致率から偶然の一致率を除去するために用いられる一般的なκ係数である。
図14は、予測装置100による予測結果と正解との関係を示す説明図である。
例えば予測装置100は、学習用データのうち一部をモデル生成のための学習に用い、残りを検証用データとして用いる。予測装置100は、学習で生成したモデルに検証用データの説明変数値を適用して予測結果を求める。
以下では、モデル生成のためのデータをモデル生成用データと称する。また、モデルの検証用データをモデル精度検証用データとも称する。
【0110】
図14で、C〜Cの各々は目的変数値を示す。また、ここでいう正解とは、検証用データに含まれる目的変数値である。
また、p11〜pNNは、それぞれ正解と予測結果との組み合わせが生じた確率を示す。例えば、正解Cに対して予測結果がCであった回数を計数し、全数(検証用データの個数)で除算してpN1を算出する。また、p・1=p11+・・・+pN1であり、従って、p・1は、正解がCであった回数を示す。また、図14に示すように、p・1+・・・+p・N=1である。同様に、p1・+・・・+pN・=1である。
これらの値を式(9)の右辺に代入してκ係数値κを求める。
【0111】
【数9】
【0112】
なお、Pは、見かけの一致率を示し、Pは偶然による一致率を示す。したがって、κ係数値は、「見かけの一致率のうち、偶然によらない一致率」を「全体の一致率のうち、偶然に依らない一致率」で除算した値となっている。
κ係数の値が大きいほど、予測結果の正解率が高いと言え、このモデルを用いた予測結果は確度(信頼度)が高いと評価できる。このように、ここでのκ係数は、モデルを用いた予測結果の信頼度を示す指標として用いられている。
【0113】
図15は、因子数が3つの場合に説明変数選択部194が因子を選択する処理の例を示す説明図である。
図15の例で、説明変数選択部194は、固定因子数0の状態からスタートする。
試行回数1〜3で、説明変数選択部194は、因子A〜Cについてそれぞれ1つだけを用いることに決定し、制御部190がそれぞれについて学習を行う。説明変数選択部194は、それぞれの学習結果についてκ変数を求める。図15の例では因子Bを用いた場合のκ係数値が最も高く、説明変数選択部194は、因子Bを固定因子に加える。
【0114】
試行回数4〜5では、説明変数選択部194は、固定因子である因子Bと、残りの因子A、Cのうちの1つとの全ての組み合わせ(従って、B及びAと、B及びCと)を試す。図15の例では、B及びAの組み合わせの場合のκ係数値が最も大きく、かつ、Bのみの場合のκ係数値よりも大きい。そこで、説明変数選択部194は、因子Aを固定因子に加える。
試行回数6では、説明変数選択部194は、固定因子である因子B及びAと、残りの因子である因子Cとの組み合わせ、すなわち、A、B及びCを試す。この場合、κ係数値がA及びBの場合の値よりも小さいため、説明変数選択部194は、因子Cを固定因子に加えない。
【0115】
試行回数6の後、残りの因子が無くなったため、説明変数選択部194は処理を終了し、固定因子に加えられている因子B及びAを用いることに決定する。制御部190は、学習用データに含まれる因子のうち、説明変数選択部194が決定した因子を用いて学習を行い、モデルを生成する。
【0116】
図16は、説明変数選択部194が因子の最適化を行う第1の方法における処理手順の例を示すフローチャートである。
図16の処理で、説明変数選択部194は、確定因子無し、かつ設定因子数0に初期設定する(ステップS311)。
次に、説明変数選択部194は、設定因子数を1増やす(ステップS312)。
【0117】
そして、説明変数選択部194は、確定因子を全て含んで因子数が設定因子数となる全ての組み合わせを試すループL11を開始する(ステップS313)。すなわち、ループL11で説明変数選択部194は、確定因子全部にもう1つの因子を加えた全ての組み合わせを試す。因子数が多い場合は、ステップS312で設定因子数を2つ以上増やすようにしてもよい。
【0118】
ループL11では、制御部190が、選択された因子の組み合わせで学習を行ってモデルを生成する(ステップS314)。説明変数選択部194は、生成されたモデルを検証してκ係数値を算出する(ステップS315)。
確定因子を全て含んで因子数が設定因子数となる全ての組み合わせを試し終えるとループL11を終了する(ステップS316)。
【0119】
そして、説明変数選択部194は、ループL11で試した組み合わせのうち、κ係数値が前よりも大きくなる組み合わせが有ったか否かを判定する(ステップS317)。κ係数値が前よりも大きくなる組み合わせが無かったと判定した場合(ステップS317:NO)、図16の処理を終了する。
一方、κ係数値が前よりも大きくなる組み合わせが有ったと判定した場合(ステップS317:YES)、説明変数選択部194は、ループL11で試したうち、κ係数値が最大になった追加因子を確定因子に加える(ステップS318)。ここでいう追加因子は、試した因子の組み合わせのうち、確定因子以外だった因子である。
【0120】
そして、説明変数選択部194は、さらに残りの因子が有るか否かを判定する(ステップS319)ここでは、残りの因子とは確定因子以外の因子である。
残りの因子が有ると判定した場合(ステップS319:YES)、ステップS312へ戻る。一方、残りの因子が無いと判定した場合(ステップS319:NO)、図16の処理を終了する。
【0121】
(第2の手法)
第2の手法では、説明変数選択部194は、高確度であるにもかかわらず予測精度(予測結果の確度)を下げてしまう因子を除外する。この因子は、汎用性が無い因子と言える。説明変数選択部194は、予測結果評価部193が生成する因子毎の評価値を用いて因子の確度を判定する。また、説明変数選択部194は、κ係数を用いて予測精度を判定する。
以下では、高確度であるにもかかわらず予測精度を下げてしまう因子を誤回答因子と称する。誤回答因子を検出するために、制御部190は、因子毎の評価値を説明変数値とし、予測結果と正解との関係を示すラベルを目的変数値とした学習データを用いて決定木を生成する。
【0122】
第2の手法で制御部190が行う処理手順の概要は以下のとおりである。
(手順1)学習用のデータをモデル生成用データとモデル精度検証用データに分割する。
(手順2)モデル生成用データから分類モデルを作成する。
(手順3)分類モデルにモデル精度検証用データを入力し、予測結果を得る。
(手順4)予測の当たり外れを目的変数とし、各因子の信頼度を説明変数として、例えば決定木等のモデルを構築する。
(手順5)構築したモデルから、信頼度が高いのに予測が外れる因子(誤回答因子)を特定し、除外する。信頼度の評価指標として、例えばκ係数を用いることができるがこれに限らない。
(手順6)手順1〜5を、誤回答因子として除外する因子が存在しなくなるまで繰り返す。
【0123】
図17は、誤回答因子の除去に用いる学習用データの例を示す説明図である。図7のデータは、予測装置100が学習用データの入力を受けて学習及び検証を行い、図4の例のような因子毎の評価値を入力データ毎かつ決定木毎に算出した結果に基づいて、説明変数選択部194が生成する。1つの検証用データから、図17の1行分のデータが得られる。
図17の「データNo.」の項目は、使用した検証用データの識別番号を示す。
「予測結果」の項目は、検証における予測結果を示す。
「正解」の項目は、検証用データに含まれる目的変数値を示す。
「ラベル」の項目は、予測結果と正解との関係に対するラベルを示す。
【0124】
図18は、予測結果と正解との関係に対するラベルの例を示す説明図である。図8の「A」、「B」、・・・は、目的変数値を示す。「1」、「2」、・・・は、ラベルを示す。説明変数選択部194は、予測結果の目的変数値と正解の目的変数値との組み合わせ毎のラベルを用いる。目的変数値がn通りある場合、説明変数選択部194は、n通りのラベルを用いる。
図17の「A1」、「A2」、・・・の項目は、図4の「因子1」、「因子2」、・・・の項目のような因子毎の評価値を示す。
【0125】
図19は、誤回答因子の除去用に制御部190が生成する決定木の例を示す説明図である。制御部190は、図17に示されるデータ構造のデータのうち、「ラベル」の項目の値を目的変数値とし、「A1」、「A2」、・・・の項目の因子毎の評価値を説明変数値として用いる。
制御部190は、学習用データをモデル生成用データと検証用データとに分け、モデル生成用データを用いて決定木を生成する。
【0126】
図19は、制御部190が生成する決定木の例を示す説明図である。
図19の決定木の各ノードの1行目には、説明変数および分岐条件が示されている。従って、1行目には、因子と、因子毎の評価値の閾値とが示されている。
各ノードの2行目には、ノードに到達した検証用データ数が示されている。
各ノードの3行目及び4行目には、ノードに到達した検証用データ数が、ラベル毎に示されている。
【0127】
例えば、ノードN21の場合、分岐条件は、因子毎の評価値が0.12以下であれば、ノードN31への分岐である。従って、ノードN21の左側の子ノード(ノードN31)の方が、右側の子ノード(ノードN32)よりも因子毎の評価値が小さい。他のノードについても同様に、左側の子ノードの方が右側の子ノードよりも因子毎の評価値が小さくなっている。
【0128】
また、ノードN21に到達したデータの個数は737個であり、そのうち、ラベル「1」、「2」、「3」、「4」のものが、それぞれ253個、30個、432個、22個である。
図19の例では、目的変数値は「正常」と「故障」との2通りであり、ラベル「1」は、正解、予測結果共に「正常」を示す。ラベル「2」は、正解「故障」に対して予測結果「正常」を示す。ラベル「3」は、正解「正常」に対して予測結果「故障」を示す。ラベル「4」は、正解、予測結果共に「故障」を示す。
従って、ラベル「1」及び「4」は正解と予測結果とが一致していることを示し、「2」及び「3」は不一致を示す。
【0129】
説明変数選択部194は、図19の決定木を根ノード(ノードN11)から順に辿る。説明変数選択部194は、根ノードについては、誤回答因子の判定の対象外とする。根ノードの分岐は、予測が合っていたか否かの意味合いではなく、「正常」と予測したか「故障」と予測したかを分ける分岐だからである。
根ノードから出発した説明変数選択部194は、まず、ノードN21に進む。ノードN21では、右下の子ノード(ノードN32)の方が、左下の子ノード(ノードN31)よりもκ係数値が小さい。従って、確度が高い子ノードの方が、予測精度が低い。このことから、ノードN21の因子A9が予測精度を下げていると考えられる。そこで、説明変数選択部194は、ノードN21を誤回答因子として除外する。
説明変数選択部194は、誤回答因子と判定したノードから下については探索を行わない。
【0130】
説明変数選択部194は、ノードN21の後、ノードN22へ移動する。ノードN22では、右下の子ノード(ノードN34)の方が、左下の子ノード(ノードN33)よりもκ係数値が大きい。従って、説明変数選択部194は、ノードN22を除外せずに子ノードへ移動する。
ノードN33では、右下の子ノード(ノードN46)の方が、左下の子ノード(ノードN45)よりもκ係数値が大きい。従って、説明変数選択部194は、ノードN33を除外しない。ノードN45又はノードN46からさらに子ノードがあれば、説明変数選択部194は、子ノードのあるノードについて誤回答因子か否かの判定を行う。
【0131】
ノードN34では、右下の子ノード(ノードN48)の方が、左下の子ノード(ノードN47)よりもκ係数値が小さい。そこで、説明変数選択部194はノードN34を誤回答因子として除外する。説明変数選択部194は、誤回答因子とした除去したノードN34から下については、誤回答因子か否かの判定を行わない。
このように、説明変数選択部194は、根ノードから出発して各分岐について、誤回答因子と判定するか、あるいは分岐先のノードが無くなる(すなわち、葉ノードに到達する)まで判定を繰り返す。
説明変数選択部194が決定木の探索を終了すると、制御部190が、誤回答因子を除いた説明変数で学習をし直す。そして、説明変数選択部194は、得られたモデルを検証してモデルのκ係数を算出した後、誤回答因子の検出を再度行う。
【0132】
図20は、誤回答因子の検出の繰り返しの例を示す説明図である。
1回目の試行では、モデルのκ係数は0.1である。また、説明変数選択部194は、因子Dを誤回答因子として除去している。誤回答因子フラグの「1」が、誤回答因子としての除去を示している。
このように、説明変数選択部194は、誤回答因子として除去した因子をフラグで記憶しておき、全ての因子が無くなるか、或いは、誤回答因子を検出しなくなるまで処理を繰り返す。
全ての因子が無くなるか、誤回答因子を検出しなくなった場合、説明変数選択部194は、検出した因子の組み合わせのうち、モデルのκ係数が最も高い組み合わせに決定する。
【0133】
図21は、説明変数選択部194が因子の最適化を行う第2の方法における処理手順の例を示すフローチャートである。
図21の処理で、説明変数選択部194は、学習用データに含まれる全因子を使用することに初期設定する(ステップS411)。ステップS411は、上記の手順1に対応する。
次に、制御部190が、学習を行って決定木を生成する(ステップS412)。制御部190は、学習用データをモデル生成用データと検証用データとに分け、モデル生成用データを用いて学習を行って決定木を生成する。ステップS412は、上記の手順2に対応する。
【0134】
そして、説明変数選択部194は、検証用データを用いてモデルを検証し、モデルのκ係数を算出する(ステップS413)。また、予測結果評価部193が、ステップS413での検証結果に基づいて、誤回答因子検出用の決定木を生成するための学習用データを生成する。
さらに、説明変数選択部194は、図18を参照して説明したように、検証での予測結果と正解との関係(予測成否)をラベル付けする(ステップS414)。
ステップS413〜S414は、上記の手順3に対応する。
【0135】
次に、制御部190は、ステップS413での検証結果に基づいて予測結果評価部193が生成した学習用データを用いて学習を行い、誤回答因子検出用の決定木を生成する(ステップS415)。ここでも制御部190は、学習用データをモデル生成用データと検証用データとに分け、モデル生成用データを用いて学習し、決定木を生成する。
説明変数選択部194は、ステップS415で得られた決定木を検証し、各ノードのκ係数値を算出する(ステップS416)。ステップS415〜S416は、上記の手順4に対応する。
【0136】
そして、説明変数選択部194は、親ノードから順に決定木を探索して誤回答因子を検出する(ステップS417)。
説明変数選択部194は、誤回答因子の検出を完了すると、残り因子の有無、及び、誤回答因子検出の有無を判定する(ステップS418)。ここでいう残り因子とは、誤回答因子として除外されずに残っている因子である。
【0137】
残り因子があり、かつ、ステップS417で誤回答因子を検出したと判定した場合(ステップS418:NO)、説明変数選択部194は、誤回答因子を除去する(ステップS419)。図20を参照して説明したように、説明変数選択部194は、ステップS417で誤回答因子と判定した因子にフラグを立てることで、学習時の使用対象から除外する。ステップS417〜S419は、上記の手順5に対応する。
ステップS419の後、ステップS412へ戻る。ステップS419からステップS412へ戻ることによる処理の繰り返しは、上記の手順6に対応する。
【0138】
一方、ステップS418で、残り因子が無い、あるいは、誤回答因子を検出していないと判定した場合(ステップS418:NO)、図20を参照して説明したように、説明変数選択部194は、誤回答因子の検出を繰り返し行って得られた組み合わせのうち、モデルのκ係数値が最も大きい組み合わせを選択する(ステップS420)。
ステップS420の後、図21の処理を終了する。
【0139】
以上のように、説明変数選択部194は、木構造の分類モデルに学習用データを適用した学習結果と適用した学習用データに含まれる目的変数値との関係におけるκ係数を算出する。そして、説明変数選択部194は、得られたκ係数に基づいて木構造の分類モデルに用いる説明変数を選択する。
説明変数選択部194は、κ係数を用いることで予測精度を評価することができ、予測精度が高くなるように因子を選択することができる。
【0140】
なお、制御部190の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することで各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0141】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【0142】
100 予測装置
110 データ取得部
120 出力部
180 記憶部
190 制御部
191 分岐評価部
192 予測部
193 予測結果評価部
194 説明変数選択部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21