(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182481
(43)【公開日】2023-12-26
(54)【発明の名称】評価装置、評価方法、および、評価プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20231219BHJP
G06Q 30/02 20230101ALI20231219BHJP
【FI】
G06N20/00
G06Q30/02
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022096122
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(71)【出願人】
【識別番号】598121341
【氏名又は名称】慶應義塾
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】石井 方邦
(72)【発明者】
【氏名】中原 英里
(72)【発明者】
【氏名】倉沢 央
(72)【発明者】
【氏名】リ チョーホー
(72)【発明者】
【氏名】ブーアジジ モンデル
(72)【発明者】
【氏名】大槻 知明
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049BB01
(57)【要約】
【課題】機械的な観点だけでなく、人の観点も含めた機械学習の説明性の評価を行う。
【解決手段】人(例えば、スペシャリスト)は、機械学習モデルの適用分野のフレームワークに基づき、評価対象のデータセットを構成する特徴量を複数のグループに分ける。そして、スペシャリストは、各特徴量が取りうる値のカテゴリごとに、そのカテゴリが当該特徴量の属するグループの目的とどの程度一致しているかを示すヒト評価値を設定する。その後、評価装置は、様々な機械学習アルゴリズムで機械学習モデルを構築し、その機械学習モデルにおける各特徴量のカテゴリごとの重要度を算出する。そして、評価装置は、各特徴量のカテゴリの重要度に当該カテゴリのヒト評価値をかけた値を合計することにより、各機械学習アルゴリズムの説明性の評価値を算出する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザの主観評価に基づき、評価対象のデータセットを構成する特徴量を複数のグループにグルーピングするグルーピング部と、
前記特徴量が取りうる値のカテゴリごとに、前記カテゴリが当該特徴量の属する前記グループの目的とどの程度一致しているかをユーザが評価した結果であるユーザ評価値を取得し、前記カテゴリに設定する設定部と、
前記評価対象のデータセットを用いて、評価対象の機械学習アルゴリズムにより構築された機械学習モデルにおける前記特徴量が取りうる値のカテゴリごとの重要度を算出する重要度算出部と、
前記特徴量が取りうる値のカテゴリごとに、前記重要度と前記ユーザ評価値とをかけ合わせた値の合計値を算出し、前記合計値を用いて、前記評価対象のデータセットに対する、前記機械学習モデルの説明性の評価値を算出する説明性評価部と、
前記機械学習モデルの説明性の評価値を出力する出力処理部と、
を備えることを特徴する評価装置。
【請求項2】
前記説明性評価部は、さらに、
前記重要度と前記ユーザ評価値の正負の符号が同じであるカテゴリが所定の閾値以上存在するグループの数をカウントし、カウントしたグループの数の多さに応じて、前記説明性の評価値に大きな値を加算する
ことを特徴とする請求項1に記載の評価装置。
【請求項3】
前記説明性評価部は、さらに、
前記機械学習モデルが予測に用いる特徴量の数が少ないほど、前記説明性の評価値に大きな値を加算する
ことを特徴とする請求項1に記載の評価装置。
【請求項4】
前記評価装置は、さらに、
前記機械学習モデルの予測精度を測定する精度測定部を備え、
前記出力処理部は、さらに、
前記機械学習モデルの予測精度を出力する
ことを特徴とする請求項1に記載の評価装置。
【請求項5】
評価装置により実行される評価方法であって、
ユーザの主観評価に基づき、評価対象のデータセットを構成する特徴量を複数のグループにグルーピングする工程と、
前記特徴量が取りうる値のカテゴリごとに、前記カテゴリが当該特徴量の属する前記グループの目的とどの程度一致しているかをユーザが評価した結果であるユーザ評価値を取得し、前記カテゴリに設定する工程と、
前記評価対象のデータセットを用いて、評価対象の機械学習モデルにおける前記特徴量が取りうる値のカテゴリごとの重要度を算出する工程と、
前記特徴量が取りうる値のカテゴリごとに、前記重要度と前記ユーザ評価値とをかけ合わせた値の合計値を算出し、前記合計値を用いて、前記評価対象のデータセットに対する、前記機械学習モデルの説明性の評価値を算出する工程と、
を含むことを特徴する評価方法。
【請求項6】
請求項1から請求項4のいずれか1項に記載の評価装置としてコンピュータを機能させるための評価プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習アルゴリズムにより構築された機械学習モデルの説明性を評価するための、評価装置、評価方法、および、評価プログラムに関する。
【背景技術】
【0002】
機械学習アルゴリズムを利用してモデルを構築する場合、構築されたモデルがいかに説明しやすいかをビジネス上問われることがある。もし、説明性の悪い機械学習アルゴリズムにより構築されたモデルを用いて予測を行うと、そのモデル自体が利用者から利用されない可能性もある。そのため、どのような機械学習アルゴリズムを用いれば説明性の高いモデルを得ることができるかを評価することが重要である。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】C. Molnar,et al.,“Quantifying Model Complexity via Functional Decomposition for Better Post-Hoc Interpretability”, arXiv preprint arXiv:1904.03867, 2019.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、従来、機械学習アルゴリズムにより構築されたモデルの説明性を定量的に表す指標がないため、機械学習アルゴリズム間で説明性を比較することが困難であるという問題があった。なお、例えば、モデルが用いる特徴量同士の関係性を考えて説明性を定義する技術(非特許文献1参照)も提案されているが、その説明性は人の直感に合わないことが多い。そこで、本発明は、機械的な観点だけでなく、人の観点も含めて機械学習の説明性の評価を行うことを課題とする。
【課題を解決するための手段】
【0005】
前記した課題を解決するため、本発明は、ユーザの主観評価に基づき、評価対象のデータセットを構成する特徴量を複数のグループにグルーピングするグルーピング部と、前記特徴量が取りうる値のカテゴリごとに、前記カテゴリが当該特徴量の属する前記グループの目的とどの程度一致しているかをユーザが評価した結果であるユーザ評価値を取得し、前記カテゴリに設定する設定部と、前記評価対象のデータセットを用いて、評価対象の機械学習アルゴリズムにより構築された機械学習モデルにおける前記特徴量が取りうる値のカテゴリごとの重要度を算出する重要度算出部と、前記特徴量が取りうる値のカテゴリごとに、前記重要度と前記ユーザ評価値とを掛け合わせた値の合計値を算出し、前記合計値を用いて、前記評価対象のデータセットに対する、前記機械学習モデルの説明性の評価値を算出する説明性評価部と、前記機械学習モデルの説明性の評価値を出力する出力処理部と、を備えることを特徴する。
【発明の効果】
【0006】
本発明によれば、機械的な観点だけでなく、人の観点も含めて機械学習の説明性の評価を行うことができる。
【図面の簡単な説明】
【0007】
【
図1】
図1は、評価装置の概要を説明するための図である。
【
図2】
図2は、各特徴量のフレームワークへのマッピングを説明するための図である。
【
図3】
図3は、各特徴量のカテゴリへのヒト評価値の設定例を示す図である。
【
図5】
図5は、評価装置が実行する処理手順の例を示すフローチャートである。
【
図6】
図6は、評価装置の適用例を説明するための図である。
【
図7】
図7は、評価プログラムを実行するコンピュータの構成例を示す図である。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら、本発明を実施するための形態(実施形態)について説明する。本発明は、本実施形態に限定されない。
【0009】
[概要]
まず、
図1を用いて、本実施形態の評価装置の概要を説明する。評価装置は、評価対象のデータセットを用いて、評価対象の機械学習アルゴリズムによる機械学習の説明性の評価を行う。
【0010】
例えば、評価装置は、評価対象のデータセットの入力を受け付ける。ヒト(例えば、スペシャリスト)は、評価装置のドメインノレッジ取得部により、評価対象のデータセットの各特徴量をフレームワークにマッピングする。このフレームワークは、ヒト(例えば、スペシャリスト)により選択された、機械学習モデルの適用分野に関するフレームワークである。
【0011】
例えば、機械学習モデルによる予測結果をマーケティング等に適用する場合、スペシャリストは、
図2に示すように、評価対象のデータセットのカラム(特徴量)を、マーケティングに用いられるMADフレームワークに基づき、Money(お金)、Authority(権限)、Desire(購買意欲)、Others(その他)の4つのグループにグルーピングする。
【0012】
また、評価装置は、スペシャリストから、特徴量それぞれのカテゴリごとのヒト評価値の入力を受け付け、各特徴量のカテゴリに設定する(
図3参照)。このヒト評価値は、例えば、特徴量が取りうる値をいくつかのカテゴリに分け、そのカテゴリそれぞれについて当該特徴量の属するグループ(例えば、Money、Authority、Desire等)の目的に合致している度合いをスペシャリストが評価した値である。
【0013】
例えば、
図3に示す特徴量Ageが取りうる値は、「20‐30」、「30-50」および「50-70」に分けられるので、これらを特徴量Ageの取りうる値のカテゴリとする。また、特徴量Ageは
図2に例示したグループのうち、Authorityに属する。よって、スペシャリストは、特徴量Ageが取りうる値のカテゴリである、「20‐30」、「30-50」、「50-70」それぞれについて、Authorityという目的に合致している度合いを評価する。
【0014】
例えば、スペシャリストは、特徴量Ageのカテゴリである「20‐30」、「30-50」、「50-70」それぞれについて、Authorityという目的との相関の度合いを、-1、0、1等の値で評価する。例えば、スペシャリストが、特徴量Ageのカテゴリのうち、「30-50」、「50-70」について、Authorityという目的に対し正の相関があると評価した場合、これらのカテゴリのヒト評価値として「1」を設定する。また、スペシャリストは、特徴量Ageのカテゴリのうち、「20‐30」についてはAuthorityという目的に対し負の相関があると評価した場合、このカテゴリのヒト評価値として「-1」を設定する。
【0015】
また、ここでは説明を略すが、特徴量Ageのカテゴリのうち、Authorityという目的に関係しないと思われるカテゴリがあれば、スペシャリストは、そのカテゴリのヒト評価値として「0」を設定する。
【0016】
図1の説明に戻る。評価装置の評価部は、例えば、スペシャリストによる各特徴量のグルーピングの結果と、スペシャリストによる各特徴量のカテゴリのヒト評価値の設定結果とを用いて、評価対象のデータセットに対する機械学習アルゴリズムそれぞれの説明性の評価を行う。
【0017】
例えば、評価装置は、評価対象のデータセットを用いて、様々な機械学習アルゴリズムにより機械学習モデルを構築する。そして、評価部は、構築された機械学習モデルそれぞれについて説明性の評価を行う。ここで評価装置は、機械による説明性の評価結果に、ヒト(例えば、スペシャリスト)による説明性の評価結果を組み合わせて説明性の評価を行う。
【0018】
例えば、評価部は、機械学習アルゴリズムAにより構築した機械学習モデルについて以下のようにして説明性の評価を行う。
【0019】
例えば、評価部は、構築された機械学習モデルにおけるデータセットの特徴量iのカテゴリqの重要度に、ヒトが設定した、当該特徴量iのカテゴリqのヒト評価値をかけた値を算出し、その合計を算出することにより、特徴量iの説明性スコアを算出する。評価部は、上記の説明性スコアの算出を、各特徴量に対し実行することにより、当該機械学習モデルにおける説明性スコア(説明性の評価値)を算出する。評価部は、このような説明性スコアの算出処理を機械学習アルゴリズムB,C,D,…についても実行する。
【0020】
そして、評価装置の出力処理部は、評価部で算出された各機械学習アルゴリズムの説明性スコアを整形して出力する。例えば、出力処理部は、説明性スコアの値が最も高い機械学習アルゴリズム(例えば、機械学習アルゴリズムA)を出力する。
【0021】
これにより、評価装置は、評価対象のデータセットに対し、ヒトから見ても説明性の高い機械学習モデルを構築可能な機械学習アルゴリズムを出力することができる。
【0022】
[構成例]
次に、
図4を用いて評価装置10の構成例を説明する。評価装置10は、例えば、入出力部11、記憶部12、および、制御部13を備える。
【0023】
入出力部11は、各種データの入力および出力を司るインターフェースである。例えば、入出力部11は、説明性の評価対象のデータセット等の入力を受け付ける。また、入出力部11は、制御部13による機械学習アルゴリズムの説明性の評価結果(例えば、説明性スコアの高い機械学習アルゴリズム等)を出力する。
【0024】
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。
【0025】
記憶部12は、例えば、評価装置10の機能を実現するための処理プログラム、フレームワーク、機械学習モデルの構築に用いるプログラム等を記憶する。機械学習モデルの構築に用いるプログラムは、例えば、Random Forest(RDF)、AdaBoost(ADA)、Support Vector Classifier(SVC)、Neural Network(NN)、K-Nearest Neighbors(KNN)、Dummy Classifier(DM)等の機械学習アルゴリズムにより機械学習モデルを構築するプログラムである。
【0026】
また、制御部13により各特徴量がグルーピングされると、各特徴量のグルーピングの結果が記憶部12に記憶される。また、制御部13により各特徴量のカテゴリのヒト評価値が設定されると、各特徴量のカテゴリのヒト評価値の設定結果が記憶部12に記憶される。
【0027】
制御部13は、例えば、CPU(Central Processing Unit)によるプログラムの実行により実現される。制御部13は、例えば、記憶部12に記憶された処理プログラムを実行することにより、データ分割部131、モデル構築部132、ドメインノレッジ取得部133、評価部136、および、出力処理部137の機能を実現する。
【0028】
[データ分割部]
データ分割部131は、入力された評価対象のデータセットを、機械学習モデルの学習用のデータと検証用のデータとに分割する。
【0029】
[モデル構築部]
モデル構築部132は、上記の学習用のデータを用いて、評価対象の機械学習アルゴリズム(Aλ)により機械学習モデルを構築する。例えば、モデル構築部132は、機械学習アルゴリズムのリストに示される機械学習アルゴリズムにより機械学習モデルを構築する。この機械学習モデルは、例えば、入力データを受け付けると、その入力データに対する予測値を出力するモデルである。
【0030】
[ドメインノレッジ取得部]
ドメインノレッジ取得部133は、ヒト(例えば、スペシャリスト)から機械学習モデルに関するドメインノレッジ(機械学習モデルの適用分野において中心軸となりうる専門的な知識)を取得する。このドメインノレッジ取得部133は、グルーピング部134とヒト評価値設定部(設定部)135とを備える。
【0031】
[グルーピング部]
グルーピング部134は、ヒト(例えば、スペシャリスト)の主観評価に基づき、評価対象のデータセットを構成する特徴量を複数のグループにグルーピングする。例えば、グルーピング部134は、機械学習モデルの適用分野に合わせてスペシャリストから選択されたフレームワークと、評価対象のデーセットの各特徴量を画面上に表示し、スペシャリストがフレームワーク上に各特徴量をマッピングした結果を用いてグルーピングする(
図2参照)。
【0032】
グルーピングには、例えば、前記したMADフレームワーク等のフレームワークを用いる。対象のデータセットによっては、フレームワークとして、上記のMADフレームワークの他、3C(Customer,Competitor,Company)、4P(Product,Price,Place,Promotion)等も適用可能である。このフレームワークは、既存のフレームワークであってもよいし、ヒトが新たに作成したフレームワークでもよい。
【0033】
[ヒト評価値設定部]
ヒト評価値設定部135は、評価対象のデータセットを構成する特徴量が取りうる値のカテゴリごとに、当該カテゴリが当該特徴量の属するグループの目的とどの程度一致しているかをヒトが評価した結果であるヒト評価値(ユーザ評価値)を取得し、当該カテゴリに設定する。
【0034】
例えば、ヒト評価値設定部135は、評価対象のデータセットを構成する特徴量が取りうる値のカテゴリごとに、当該カテゴリが当該特徴量の属するグループの目的とどの程度相関しているかをヒトが評価した値をヒト評価値として取得し、当該カテゴリに設定する。
【0035】
例えば、ヒト評価値設定部135は、ヒトから、ある特徴量が取りうる値のカテゴリごとのヒト評価値の値の入力を受け付けると、その値を当該特徴量の各カテゴリに設定する。設定したヒト評価値の値は、記憶部12に記憶される。
【0036】
例えば、ヒト評価値設定部135は、ヒトから、i番目の特徴量のj番目のカテゴリのヒト評価値Cij=(-1or0or1)の入力を受け付けると、入力されたヒト評価値Cij=(-1or0or1)をi番目の特徴量のj番目のカテゴリに設定する。
【0037】
一例を挙げる。例えば、特徴量AgeがAuthorityというグループに属する場合を考える。この場合において、ヒトが、特徴量Ageのカテゴリ「20-30」は、Authorityという目的に対し負の相関があると評価したとき、これらのカテゴリのヒト評価値として「-1」を入力する。そして、ヒト評価値設定部135は、当該入力に基づき、
図3に示すように特徴量Ageのカテゴリ「20-30」にヒト評価値「-1」を設定する。
【0038】
また、ヒトが、特徴量Ageのカテゴリ「30-50」および「50-70」は、Authorityという目的に対し正の相関があると評価したとき、これらのカテゴリのヒト評価値として「1」を入力する。そして、ヒト評価値設定部135は、当該入力に基づき、
図3に示すように特徴量Ageのカテゴリ「30-50」および「50-70」にヒト評価値「1」を設定する。
【0039】
なお、
図3は説明を簡単にするため、ヒト評価値C
ij=(-1or0or1)で表現しているが、強さを任意の値(例えば、-5,-1,0,2,7のような5つの値等)で表現してもよいし、強弱をつけるために他の値(例えば、小数)や連続値で表現してもよい。
【0040】
[評価部]
図4に戻る。評価部136は、ドメインノレッジ取得部133により得られた情報(例えば、各特徴量のグルーピングの結果、各特徴量のカテゴリのヒト評価値の設定結果等)を用いて、評価対象の機械学習アルゴリズムの説明性の評価を行う。
【0041】
評価部136は、重要度算出部136aと、説明性評価部136bとを備える。破線で示す精度評価部136cは、装備される場合と、装備されない場合とがあり、装備される場合については後記する。
【0042】
[重要度算出部]
重要度算出部136aは、検証用のデータセットを用いて、評価対象の機械学習モデルにおける、各特徴量が取りうる値のカテゴリごとの重要度を算出する。例えば、重要度算出部136aは、既存技術であるSHAPを適用することにより、評価対象の機械学習モデルにおける各特徴量が取りうる値のカテゴリごとの重要度を算出する。この重要度算出部136aの詳細は具体例を交えて後記する。
【0043】
[説明性評価部]
説明性評価部136bは、評価対象のデータセットに対する、機械学習アルゴリズムの説明性の評価値を算出する。例えば、説明性評価部136bは、評価対象のデータセットを構成する特徴量が取りうる値のカテゴリごとに、重要度算出部136aにより算出された重要度と、ヒト評価値設定部135により設定されたヒト評価値とをかけ合わせた値を算出する。そして、説明性評価部136bは、算出した値の合計値を用いて、評価対象のデータセットに対する、機械学習アルゴリズムの説明性スコアを算出する。
【0044】
また、説明性評価部136bは、上記の特徴量のカテゴリそれぞれについて機械とヒトの説明性の評価値の一致度に応じて、上記の説明性スコアの値を加算してもよい。
【0045】
例えば、説明性評価部136bは、上記の重要度とヒト評価値の正負の符号が同じであるカテゴリが所定の閾値以上存在するグループ(
図2のフレームワーク参照)の数をカウントする。そして、カウントしたグループの数が多いほど、説明性評価部136bは、上記の説明性スコアに大きな値を加算する。
【0046】
また、説明性評価部136bは、評価対象の機械学習モデルが予測に用いる特徴量の数が少ないほど、説明性スコアに大きな値を加算してもよい。この説明性評価部136bの詳細は具体例を交えて後記する。
【0047】
[出力処理部]
出力処理部137は、説明性評価部136bによる評価結果を出力する。例えば、出力処理部137は、説明性評価部136bから、各機械学習アルゴリズム(Aλ)の説明性スコアを受け取ると、その説明性スコアの一覧を出力する。また、出力処理部137は、説明性評価部136bから出力された説明性スコアが最も高い機械学習アルゴリズムを出力してもよい。また、出力処理部137は、説明性スコアの値が高いものから順に上位所定順位(例えば、上位3位)までの機械学習アルゴリズムを出力してもよい。
【0048】
[処理手順の例]
次に、評価装置10の処理手順の例を説明する。まず、
図5を用いて評価装置10の処理手順の概要を説明する。なお、評価装置10は、評価対象のデータセット(D
test)の各特徴量のグルーピング(
図2参照)と、各特徴量のカテゴリそれぞれのヒト評価値の設定(
図3参照)を既に終えているものとする。
【0049】
評価装置10は、評価対象のデータセット(Dtest)の入力を受け付けると、データ分割部131は、評価対象のデータセットを学習用のデータと検証用のデータとに分割する。また、モデル構築部132は、学習用データに機械学習アルゴリズム(Aλ)を適用し、機械学習モデルを構築する(S1:データの分割・機械学習モデルの構築)。
【0050】
次に、評価部136の重要度算出部136aは、機械による説明性の評価値の算出を行う(S2)。例えば、重要度算出部136aは、検証用のデータセットを用いて、S1で構築した機械学習モデルにおける、各特徴量が取りうる値のカテゴリごとの重要度(特徴量重要度ベクトル)を算出する。
【0051】
また、任意であるが、重要度算出部136aは、機械による説明性の評価値を、精度や確信度(その予測がどれだけ確からしいとモデルが判断した値)を用いて補正することも可能である。例えば、重要度算出部136aは、ある予測に対して、機械学習アルゴリズムAλで構築した機械学習モデルが予測した際の確信度と、Dtestに対して予測精度が高い任意の機械学習アルゴリズム(例えば、予測精度が最も高い機械学習アルゴリズム)で構築した機械学習モデルで予測した際の確信度との差を、上記の補正として利用することもできる。
【0052】
次に、説明性評価部136bは、ヒトと機械の評価を組み合わせた説明性の評価値の算出を行う(S3)。例えば、説明性評価部136bは、各特徴量が取りうる値のカテゴリごとに、重要度算出部136aにより算出された重要度と、ヒト評価値設定部135により設定されたヒト評価値の値とをかけ合わせた値を算出する。説明性評価部136bは、上記の算出処理を全特徴量およびカテゴリについて行う。
【0053】
次に、説明性評価部136bは、ヒトと機械の評価を組み合わせた説明性の評価値の合計の算出を行う(S4)。例えば、説明性評価部136bは、S3で計算された値の合計値を算出する。
【0054】
次に、説明性評価部136bは、ヒトと機械の評価の説明性の一致度の高さを反映した補正値の算出を行う(S5)。また、説明性評価部136bは、ヒトから見た説明の簡単さを反映した補正値の算出を行う(S6)。
【0055】
次に、説明性評価部136bは、S4で算出したヒトと機械の評価を組み合わせた説明性の評価値の合計に、S5、S6で算出した補正値を加算する(S7:説明性スコアを算出)。そして、説明性評価部136bは、S7で算出した値を出力する(S8:説明性スコアを出力)。
【0056】
その後、出力処理部137は、S8で出力された値(説明性スコア)を用いて、説明性の評価結果を出力する。例えば、出力処理部137は、説明性スコアが最も高い機械学習アルゴリズムを出力する。
【0057】
[処理の具体例1(手法1)]
次に、
図5で説明した処理の具体例(手法1)を説明する。手法1において、評価装置10は、例えば、以下のようにして、評価対象のデータセットD
testに対する、機械学習アルゴリズムA
λの説明性スコアE(A
λ、D
test)を算出する。
【0058】
[S1:データの分割・機械学習モデルの構築]
例えば、評価装置10のデータ分割部131は、S1において、評価対象のデータセットを学習用のデータと検証用のデータの2つに分割する。このときの分割方法は任意であり、例えば、ランダムに分割する。そして、モデル構築部132は、学習用のデータを利用して機械学習アルゴリズムAλにて機械学習モデルを構築する。
【0059】
[S2:機械による説明性の評価値の算出]
例えば、重要度算出部136aは、S2において、機械による各特徴量のカテゴリの説明性の評価値を算出するために、評価対象のデータセットのi番目の特徴量のq番目のカテゴリに対する特徴量重要度ベクトルViqを生成する。
【0060】
例えば、重要度算出部136aは、S1で構築された機械学習モデルを検証用のデータ内の全レコードに適用し、SHAP等の既存の特徴量の重要度の測定手法により各レコードに対する特徴量の重要度を算出する。
【0061】
そして、重要度算出部136aは、算出された各レコードに対する特徴量の重要度をベクトルの要素として並べることにより、特徴量重要度ベクトルViqを生成する。また、上記の各要素の値の平均値をavg(Viq)で表す。平均値は、加重平均を用いてもよいし、別の統計値を用いることも可能である。
【0062】
例えば、重要度算出部136aが、検証用のデータ100レコードにSHAPを適用し、特徴量Ageのカテゴリ「20-30」の100次元の特徴量重要度ベクトル[0.2,-0.1,…,0.5]を生成した場合を考える。この場合、avg(Viq)は、上記の0.2,-0.1,…,0.5の平均値である。
【0063】
[S3:ヒトと機械の評価を組み合わせた説明性の評価値の算出]
例えば、説明性評価部136bは、S3において、S2で算出された、特徴量iのカテゴリqのavg(Viq)に、ヒトが設定した特徴量iのカテゴリqのヒト評価値Ciqをかけ合わせる(avg(Viq)×Ciq)。
【0064】
[S4:ヒトと機械の評価を組み合わせた説明性の評価値の合計の算出]
例えば、説明性評価部136bは、S4において、以下の式(1)に基づき、S3で算出したavg(Viq)×Ciqを、検証用のデータ内の特徴量数Nf、i番目の特徴量が持つカテゴリ数Miで足し合わせる。
【0065】
【0066】
[S5:ヒトと機械の評価の説明性の一致度の高さを反映した補正値の算出]
例えば、説明性評価部136bは、S5において、Ωgを任意の定数とし、Ngをフレームワーク内のグループ数とし、Nguをヒトと機械の評価の説明性が一致したグループ数とし、ΩgNgu/Ng(式(2))により、ヒトと機械の説明性の一致度の高さを反映した補正値を算出する。
【0067】
【0068】
ここで、ヒトと機械の評価の説明性が一致するグループとは、例えば、少なくとも閾値(例えば、1)以上の個数、ViqとCiqの正/負の符号が同じであるグループである。説明性評価部136bは、ViqとCiqの正/負の符号が同じ場合、ヒトと機械が同じように考えたとみなす。
【0069】
[S6:ヒトから見た説明の簡単さを反映した補正値の算出]
例えば、説明性評価部136bは、S6において、Ωfを任意の定数とし、Nfuを予測に利用する特徴量数とすると、その逆数のΩf/Nfu(式(3))により、ヒトから見た説明の簡単さを反映した補正値Sを算出する。つまり、ヒトは説明に用いる特徴量が多ければ多いほど複雑さを感じるため、その逆数を利用することで、ヒトから見た説明の簡単さを表す。また、説明性評価部136bは、上記以外にもNfuの増加に対して、べき乗等の非線形な関係による補正値等を用いることもできる。
【0070】
【0071】
[S7:説明性スコアの算出]
例えば、説明性評価部136bは、S7において、以下の式(4)に基づき、評価対象のデータセットDtestに対する、機械学習アルゴリズムAλの説明性スコアE(Aλ、Dtest)を算出する。つまり、説明性評価部136bは、S4で算出したヒトと機械の評価を組み合わせた説明性の評価値の合計に、S5、S6で算出した補正値を加算することにより説明性スコアを算出する。
【0072】
【0073】
なお、説明性評価部136bは、S5、S6で算出した補正値の項を利用しない、または任意の補正値の項を追加してもよい。さらに、説明性評価部136bは、各補正値の項及びそれ以外の項に関わらず、それぞれの項に対して重み付けをした加算を行うことも考えられる。
【0074】
[処理の具体例2(手法2)]
次に、
図5で説明した処理の別の具体例(手法2)を説明する。手法2において、評価装置10は、機械学習アルゴリズムA
λで構築した機械学習モデルのj番目の予測に対する説明性スコアE
jを算出し、説明性スコアEを求める。S1の処理は手法1と同様であるので、説明を省略し、S2から説明する。
【0075】
[S2:機械による説明性の評価値の算出]
例えば、重要度算出部136aは、S2において、機械による各特徴量が取りうる値の説明性の評価値を算出するために、評価対象のデータセットにおけるi番目の特徴量のj番目の予測に対する特徴量重要度Wijを算出する。例えば、重要度算出部136aは、SHAP等の既存の特徴量重要度の測定手法を適用して特徴量重要度Wijを算出する。
【0076】
[S3:ヒトと機械の評価を組み合わせた説明性の評価値の算出]
例えば、説明性評価部136bは、S3において、S2で算出された特徴量重要度Wijに、ヒトが設定した特徴量iのj番目の予測に対するヒト評価値Cijをかけ合わせる(Wij×Cij)。
【0077】
[S4:ヒトと機械の評価を組み合わせた説明性の評価値の合計の算出]
例えば、説明性評価部136bは、S4において、特徴量数をNfuとし、全ての特徴量に対してS3で算出したWij×Cijを足し合わせる(式(5))。
【0078】
【0079】
S5およびS6は、手法1と同様の方法を用いればよいので説明を省略し、S7を説明する。
【0080】
[S7:説明性スコアの算出]
例えば、説明性評価部136bは、S7において、以下の式(6)に基づき、機械学習モデルのj番目の予測に対する説明性スコアEjを算出する。つまり、説明性評価部136bは、S4で算出したヒトと機械の評価を組み合わせた説明性の評価値の合計(式(5)参照)に、S5、S6で算出した補正値を加算することにより説明性スコアEjを算出する。
【0081】
【0082】
また、説明性評価部136bは、例えば、S3で算出したWijCijの値を正/負で分けて、Nfuにわたる正/負それぞれの合計値を求め、その差(正の合計値-負の合計値)、その割合(正の合計値÷負の合計)等を補正項として使ってもよい。
【0083】
また、説明性評価部136bは、上記の値を、式(6)における補正項(第2項、第3項)の係数として使ってもよいし、式(6)における第1項に置き換えて使ってもよい。
【0084】
なお、説明性評価部136bは、手法1と同様に、説明性スコアEjの算出に、S5、S6で算出した補正値の項を利用しない、または任意の補正値の項の追加してもよい。
【0085】
また、説明性評価部136bは、S7において、以下の式(7)により、評価対象のデータセットDtestに対する機械学習アルゴリズムAλの説明性スコアE(Aλ、Dtest)を算出してもよい。式(7)におけるωは任意の定数であり、STDはすべての説明性スコアEjの標準偏差である。
【0086】
【0087】
このようにすることで、説明性評価部136bは、説明性スコアEjの値のばらつきを考慮して、説明性スコアEを算出することができる。
【0088】
[その他の実施形態]
なお、評価装置10は、
図4に示す精度評価部136cをさらに備えていてもよい。この精度評価部136cは、評価対象のデータセットD
testを利用して、機械学習アルゴリズムA
λにより構築した機械学習モデルの精度(例えば、予測精度)を評価する。例えば、精度評価部136cは、機械学習アルゴリズムA
λにより構築した機械学習モデルの精度を、評価対象のデータセットD
testから取り出した検証用のデータを用いて評価する。
【0089】
機械学習モデルの精度の評価方法は、例えば、交差検証、ホールアウト検証等が利用可能である。また、精度の評価値として、例えば、正解率、AUC、F1値等の評価値を利用可能である。
【0090】
また、評価装置10が上記の精度評価部136cを備える場合、出力処理部137は、機械学習アルゴリズムの説明性スコアに加え、当該機械学習アルゴリズムにより構築された機械学習モデルの精度の評価結果も出力してもよい。
【0091】
これにより、評価装置10のユーザは、各機械学習アルゴリズムについて説明性と精度の両方の評価結果を確認することができる。
【0092】
また、出力処理部137は、精度が所定の閾値以上の機械学習アルゴリズムの中から、説明性スコアが最も高い機械学習アルゴリズムを出力したり、説明性スコアの値が高いものから順に上位所定順位(例えば、上位3位)までの機械学習アルゴリズムを出力したりしてもよい。
【0093】
また、出力処理部137は、機械学習アルゴリズムの説明性スコアの値と精度の値に所定の重み付けや正規化を行った上で足し合わせた値を、当該機械学習アルゴリズムの総合評価値として出力してもよい。また、出力処理部137が、上記の総合評価値を用いて、最も総合評価値が高い機械学習アルゴリズムを出力したり、ベスト3の機械学習アルゴリズムを出力したりしてもよい。
【0094】
これにより、評価装置10のユーザは、各機械学習アルゴリズムについて説明性と精度の両方を総合的に評価した結果を確認することができる。
【0095】
[適用例]
図6を用いて、評価装置10の適用例を説明する。ここでは、評価装置10は、評価対象のデータセットとして以下のURLに示されるデータセットを用いる。このデータセットは、
図6の特徴量リストに示される特徴量(カラム)を持つ。データセットにおける各特徴量の値は、例えば、符号601に示す値である。
【0096】
https://archive-beta.ics.uci.edu/ml/datasets/bank+marketing
【0097】
ここで、評価装置10のドメインノレッジ取得部133は、ヒト(例えば、テレマーケティングのスペシャリスト)から、MADフレームワーク上に各特徴量をマッピングした結果を取得する。そして、ドメインノレッジ取得部133は、そのマッピングの結果に基づき、各特徴量をグルーピングする(符号602参照)。また、ドメインノレッジ取得部133は、ヒトから、各特徴量の取りうる値ごとのヒト評価値を取得し、取得した値を用いてヒト評価値の設定を行う。
【0098】
その後、評価装置10の評価部136は、ドメインノレッジ取得部133による各特徴量のグルーピングの結果と、ヒト評価値の設定結果とを用いて、アルゴリズムリスト603に記載される各機械学習アルゴリズムの説明性スコアを算出する。また、評価部136は、各機械学習アルゴリズムにより構築した機械学習モデルの精度も算出する(符号604参照)。
【0099】
その後、出力処理部137は、評価部136の評価結果を出力する。例えば、出力処理部137は、説明性を優先する場合、説明性スコアが最も高い機械学習アルゴリズム(例えば、NN)を出力する。
【0100】
このようにすることで評価装置10は、機械の観点だけでなく、テレマーケティングのスペシャリストの観点も含めて、機械学習の説明性を評価することができる。
【0101】
[システム構成等]
また、図示した各部の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0102】
また、前記した実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0103】
[プログラム]
前記した評価装置10は、パッケージソフトウェアやオンラインソフトウェアとしてプログラム(評価プログラム)を所望のコンピュータにインストールさせることによって実装できる。例えば、上記のプログラムを情報処理装置に実行させることにより、情報処理装置を評価装置10として機能させることができる。ここで言う情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等の端末等がその範疇に含まれる。
【0104】
図7は、評価プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインターフェース1030、ディスクドライブインターフェース1040、シリアルポートインターフェース1050、ビデオアダプタ1060、ネットワークインターフェース1070を有する。これらの各部は、バス1080によって接続される。
【0105】
メモリ1010は、ROM(Read Only Memory)1011及びRAM(Random Access Memory)1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインターフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインターフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインターフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
【0106】
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、上記の評価装置10が実行する各処理を規定するプログラムは、コンピュータにより実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、評価装置10における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
【0107】
また、上述した実施形態の処理で用いられるデータは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
【0108】
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続される他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインターフェース1070を介してCPU1020によって読み出されてもよい。
【符号の説明】
【0109】
10 評価装置
11 入出力部
12 記憶部
13 制御部
131 データ分割部
132 モデル構築部
133 ドメインノレッジ取得部
134 グルーピング部
135 ヒト評価値設定部
136 評価部
136a 重要度算出部
136b 説明性評価部
136c 精度評価部
137 出力処理部