(57)【特許請求の範囲】
【請求項１】
分析対象のデータに対する前処理と学習処理とを含み、前記前処理と前記学習処理との内の少なくとも一方に係るパラメータであるパイプラインパラメータの値が適用された分析パイプラインを用いて、前記前処理と前記学習処理により学習された学習済みモデルとを含む分析パイプラインモデルを生成する情報処理システムであって、
入力された前記分析パイプラインを用いて前記分析パイプラインモデルの生成、及び、生成した前記分析パイプラインモデルの評価値の算出を、自バリデーションモジュールに応じた所定のバリデーション方法に従って行い、生成した前記分析パイプラインモデル、及び、算出した前記評価値を出力するバリデーションモジュールの入力を受け付ける、初期化手段と、
入力された前記バリデーションモジュールに、入力されたパラメータセットに含まれるパイプラインパラメータの値が適用された前記分析パイプラインを入力して実行し、当該バリデーションモジュールから得られた前記分析パイプラインモデル、及び、前記評価値を出力する、関数を生成し、前記パラメータセットの探索範囲内で、自探索モジュールに応じた所定の探索方法に従って、入力された関数を実行し、当該関数より得られた前記評価値が最適化される前記パラメータセットの値を探索し、最適化されたときの前記分析パイプラインモデルを出力する探索モジュールに、前記生成した関数を入力して実行し、当該探索モジュールより得られた前記分析パイプラインモデルを出力する、調整手段と、
を備えた情報処理システム。
【請求項２】
さらに、前記初期化手段は、前記探索モジュールの入力を受け付け、
前記調整手段は、入力された前記探索モジュールに、前記生成した関数を入力して実行し、当該探索モジュールより得られた前記分析パイプラインモデルを出力する、
請求項１に記載の情報処理システム。
【請求項３】
前記パラメータセットは、さらに、前記分析パイプラインの識別子を含み、
前記バリデーションモジュールを実行する場合、前記パラメータセットに含まれる前記パイプラインパラメータの値が適用された、前記分析パイプラインの識別子で示される前記分析パイプラインが入力される、
請求項１または２に記載の情報処理システム。
【請求項４】
前記パラメータセットは、さらに、前記所定のバリデーション方法に係るパラメータを含み、
前記バリデーションモジュールは、入力された前記所定のバリデーション方法に係るパラメータの値に応じた前記所定のバリデーション方法に従って前記分析パイプラインモデルの生成、及び、当該分析パイプラインモデルの前記評価値の算出を行い、
前記バリデーションモジュールを実行する場合、前記パラメータセットに含まれる前記パイプラインパラメータの値が適用された前記分析パイプラインに加えて、前記所定のバリデーション方法に係るパラメータの値が入力される、
請求項１乃至３のいずれかに記載の情報処理システム。
【請求項５】
前記所定のバリデーション方法に係るパラメータは、学習用データの絞り込み割合を指定するパラメータであり、
前記バリデーションモジュールは、前記分析対象のデータを、前記分析パイプラインモデルを生成するための学習用データと前記分析パイプラインモデルの前記評価値を算出するためのテスト用データとに分割したときに、さらに、前記学習用データの絞り込み割合を指定するパラメータの値に従って、前記学習用データとして分割されたデータの絞り込みを行う、
請求項４に記載の情報処理システム。
【請求項６】
前記所定のバリデーション方法に係るパラメータは、再学習を指定するパラメータであり、
前記バリデーションモジュールは、前記分析対象のデータの内、学習用データを用いた前記学習処理により前記分析パイプラインモデルを生成し、テスト用データを用いて前記分析パイプラインモデルの前記評価値を算出した後で、さらに、前記再学習を指定するパラメータの値に従って、前記学習用データと前記テスト用データとを用いた前記学習処理を再度行うことで、前記分析パイプラインモデルを更新する、
請求項４に記載の情報処理システム。
【請求項７】
分析対象のデータに対する前処理と学習処理とを含み、前記前処理と前記学習処理との内の少なくとも一方に係るパラメータであるパイプラインパラメータの値が適用された分析パイプラインを用いて、前記前処理と前記学習処理により学習された学習済みモデルとを含む分析パイプラインモデルを生成する情報処理方法であって、
入力された前記分析パイプラインを用いて前記分析パイプラインモデルの生成、及び、生成した前記分析パイプラインモデルの評価値の算出を、自バリデーションモジュールに応じた所定のバリデーション方法に従って行い、生成した前記分析パイプラインモデル、及び、算出した前記評価値を出力するバリデーションモジュールの入力を受け付け、
入力された前記バリデーションモジュールに、入力されたパラメータセットに含まれるパイプラインパラメータの値が適用された前記分析パイプラインを入力して実行し、当該バリデーションモジュールから得られた前記分析パイプラインモデル、及び、前記評価値を出力する、関数を生成し、
前記パラメータセットの探索範囲内で、自探索モジュールに応じた所定の探索方法に従って、入力された関数を実行し、当該関数より得られた前記評価値が最適化される前記パラメータセットの値を探索し、最適化されたときの前記分析パイプラインモデルを出力する探索モジュールに、前記生成した関数を入力して実行し、当該探索モジュールより得られた前記分析パイプラインモデルを出力する、
情報処理方法。
【請求項８】
さらに、前記探索モジュールの入力を受け付け、
前記分析パイプラインモデルを出力する場合、入力された前記探索モジュールに、前記生成した関数を入力して実行し、当該探索モジュールより得られた前記分析パイプラインモデルを出力する、
請求項７に記載の情報処理方法。
【請求項９】
分析対象のデータに対する前処理と学習処理とを含み、前記前処理と前記学習処理との内の少なくとも一方に係るパラメータであるパイプラインパラメータの値が適用された分析パイプラインを用いて、前記前処理と前記学習処理により学習された学習済みモデルとを含む分析パイプラインモデルを生成するプログラムであって、
コンピュータに、
入力された前記分析パイプラインを用いて前記分析パイプラインモデルの生成、及び、生成した前記分析パイプラインモデルの評価値の算出を、自バリデーションモジュールに応じた所定のバリデーション方法に従って行い、生成した前記分析パイプラインモデル、及び、算出した前記評価値を出力するバリデーションモジュールの入力を受け付け、
入力された前記バリデーションモジュールに、入力されたパラメータセットに含まれるパイプラインパラメータの値が適用された前記分析パイプラインを入力して実行し、当該バリデーションモジュールから得られた前記分析パイプラインモデル、及び、前記評価値を出力する、関数を生成し、
前記パラメータセットの探索範囲内で、自探索モジュールに応じた所定の探索方法に従って、入力された関数を実行し、当該関数より得られた前記評価値が最適化される前記パラメータセットの値を探索し、最適化されたときの前記分析パイプラインモデルを出力する探索モジュールに、前記生成した関数を入力して実行し、当該探索モジュールより得られた前記分析パイプラインモデルを出力する、
処理を実行させるプログラム。
【請求項１０】
さらに、前記探索モジュールの入力を受け付け、
前記分析パイプラインモデルを出力する場合、入力された前記探索モジュールに、前記生成した関数を入力して実行し、当該探索モジュールより得られた前記分析パイプラインモデルを出力する、
処理を実行させる、請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、及び、プログラムに関し、特に、分析パイプラインを生成する情報処理システム、情報処理方法、及び、記録媒体に関する。
【背景技術】
【０００２】
機械学習やデータマイニングにおけるデータ分析の手順は、大まかに、分析対象のデータの前処理、及び、前処理されたデータを分析用のエンジンに入力することで行われる学習処理により構成される。前処理では、データ中の異常値や欠損値の除去、標準化や規格化等のスケール変換、必要な属性の生成等が行われる。エンジンでは、学習処理として、目的に応じて、回帰分析、判別分析、クラスタリング等が行われる。【０００３】
このようなデータ分析の一連の処理は、例えば、欠損値の除去→標準化→回帰分析のような処理の列、つまり、パイプラインとして表現できる。以降、このようなデータ分析の一連の処理を分析パイプラインと呼ぶ。【０００４】
分析パイプライン中の処理には、人が調整できるパラメータを持つ処理がある。例えば、異常値除去の処理には、異常とみなすべき値がパラメータとして設定される。また、判別分析の処理には、判別分析で決定木が用いられる場合、学習する木の最大の高さが、パラメータとして設定される。以降、これら分析パイプラインの前処理、及び、学習処理に係るパラメータをパイプラインパラメータとも呼ぶ。【０００５】
パイプラインパラメータに適切な値に設定することは、分析の精度を向上させるために重要である。例えば、決定木の高さを高く過ぎると、学習により生成されたモデルが、データにオーバーフィットしてしまい、一方で低くし過ぎると、学習により生成されたモデルが、データにアンダーフィットしてしまう。したがって、分析対象のデータに対して適切な値が設定されるように、パラメータを調整する必要がある。【０００６】
一般に、このような、パイプラインパラメータの人による調整は手間がかかる。このため、適切なパラメータの値を探索し、調整するシステムが用いられている。パラメータの値の探索方法の内、最も単純、かつ、一般的な方法としてGrid Searchが知られている。Grid Searchでは、各パラメータの候補値で格子が生成され、全ての格子点について探索が行われ、最適なパラメータの値の組が求められる。例えば、２つのパラメータa、bが、それぞれa=[1, 10, 100]、b=[1, 0.1, 0.01]のような候補値を持つ場合、９通り（３×３通り）の値の組み合わせについて探索が行われる。Grid Searchは、単純でわかりやすい一方、探索する格子点が膨大になりやすく、時間がかかる。Grid Searchのこうした問題を解決した方法として、Random Searchや、ベイズ最適化を応用した方法等も提案されている。【０００７】
また、パイプラインパラメータの調整では、パラメータの値の探索とともに、生成されたモデルのバリデーションも併せて行う必要がある。機械学習の一般的なバリデーション方法としては、分析対象のデータを学習データとテストデータの２つに分割し、学習データでモデルを生成し、テストデータで評価値を算出する方法が知られている。この方法では、テストデータで、生成されたモデルを用いた予測が行われ、その予測精度がモデルの評価値として算出される。以下、この方法をSingle Validationと記載する。さらに、同じ分析対象のデータにおいて、学習データ、テストデータとして用いられるデータを変えながら、同様のモデル生成、評価値の算出を繰り返す、Cross Validation（交差検定）も知られている。【０００８】
これらの探索方法、及び、バリデーション方法を用いてパラメータの調整を行うシステムは、以下のような文献に記載されている。例えば、非特許文献１には、探索方法とバリデーション方法に、Grid SearchとCross Validationを用いたGridSearchCV、Random SearchとCross Validationを用いたRandomSearchCVが記載されている。非特許文献２には、探索方法とバリデーション方法に、Grid SearchとCross Validationを用いたCrossValidatorが記載されている。【０００９】
また、非特許文献３には、探索方法として、上述のRandom Searchが記載されている。非特許文献４には、探索方法として、ベイズ最適化を応用した方法が記載されている。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】"scikit-learn: machine learning in Python"、［online］、［2016年5月26日検索］、インターネット〈URL：http://scikit-learn.org/stable/〉
【非特許文献２】"Overview: estimators, transformers and pipelines - spark.ml"、［online］、［2016年5月26日検索］、インターネット〈URL：http://spark.apache.org/docs/latest/ml-guide.html〉
【非特許文献３】James Bergstra、Yoshua Bengio、"Random Search for Hyper-Parameter Optimization"、Journal of Machine Learning Research 13、pages 281-305、2012
【非特許文献４】Jasper Snoek、Hugo Larochelle、Ryan P. Adams、"Practical Bayesian Optimization of Machine Learning Algorithms"、Advances in Neural Information Processing Systems 25 (NIPS 2012)、2012
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、非特許文献１に記載されているGridSearchCVやRandomSearchCV、非特許文献２に記載されているCrossValidatorには、以下の問題がある。すなわち、これらのシステムでは、探索方法やバリデーション方法が固定であるため、例えば、様々なバリデーション方法でパイプラインパラメータを調整する場合、バリデーション方法ごとにシステムを使い分ける必要がある。バリデーション方法としては、上述のSingle ValidationやCross Validationだけでなく、分析ビジネスの現場では、より実際の利用シーンに合わせた、独自のバリデーション方法が用いられている。例えば、時系列データの予測では、バリデーション方法として、３か月おきに、再学習されたモデルを用いて１年間の予測を行い、そのモデルの年間平均精度を求める方法等が用いられる。したがって、バリデーション方法ごとにパラメータを調整するシステムを用意することは現実的ではない。【００１２】
本発明の目的は、上述の課題を解決し、様々なバリデーション方法に対して、分析パイプラインに係るパラメータの調整ができる情報処理システム、情報処理方法、及び、記録媒体を提供することにある。
【課題を解決するための手段】
【００１３】
本発明の一態様における情報処理システムは、分析対象のデータに対する前処理と学習処理とを含み、前記前処理と前記学習処理との内の少なくとも一方に係るパラメータであるパイプラインパラメータの値が適用された分析パイプラインを用いて、前記前処理と前記学習処理により学習された学習済みモデルとを含む分析パイプラインモデルを生成する情報処理システムであって、入力された前記分析パイプラインを用いて前記分析パイプラインモデルの生成、及び、生成した前記分析パイプラインモデルの評価値の算出を、所定のバリデーション方法に従って行い、生成した前記分析パイプラインモデル、及び、算出した前記評価値を出力するバリデーションモジュールの入力を受け付ける、初期化手段と、前記パイプラインパラメータを含むパラメータセットの探索範囲内で、所定の探索方法に従って、前記パイプラインパラメータの値が適用された前記分析パイプラインを前記バリデーションモジュールに入力して実行することにより、前記評価値が最適化される前記パラメータセットの値を探索し、最適化されたときの前記分析パイプラインモデルを出力する、調整手段と、を備える。【００１４】
本発明の一態様における情報処理方法は、分析対象のデータに対する前処理と学習処理とを含み、前記前処理と前記学習処理との内の少なくとも一方に係るパラメータであるパイプラインパラメータの値が適用された分析パイプラインを用いて、前記前処理と前記学習処理により学習された学習済みモデルとを含む分析パイプラインモデルを生成する情報処理方法であって、入力された前記分析パイプラインを用いて前記分析パイプラインモデルの生成、及び、生成した前記分析パイプラインモデルの評価値の算出を、所定のバリデーション方法に従って行い、生成した前記分析パイプラインモデル、及び、算出した前記評価値を出力するバリデーションモジュールの入力を受け付け、前記パイプラインパラメータを含むパラメータセットの探索範囲内で、所定の探索方法に従って、前記パイプラインパラメータの値が適用された前記分析パイプラインを前記バリデーションモジュールに入力して実行することにより、前記評価値が最適化される前記パラメータセットの値を探索し、最適化されたときの前記分析パイプラインモデルを出力する。【００１５】
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、分析対象のデータに対する前処理と学習処理とを含み、前記前処理と前記学習処理との内の少なくとも一方に係るパラメータであるパイプラインパラメータの値が適用された分析パイプラインを用いて、前記前処理と前記学習処理により学習された学習済みモデルとを含む分析パイプラインモデルを生成するプログラムを格納する記録媒体であって、コンピュータに、入力された前記分析パイプラインを用いて前記分析パイプラインモデルの生成、及び、生成した前記分析パイプラインモデルの評価値の算出を、所定のバリデーション方法に従って行い、生成した前記分析パイプラインモデル、及び、算出した前記評価値を出力するバリデーションモジュールの入力を受け付け、前記パイプラインパラメータを含むパラメータセットの探索範囲内で、所定の探索方法に従って、前記パイプラインパラメータの値が適用された前記分析パイプラインを前記バリデーションモジュールに入力して実行することにより、前記評価値が最適化される前記パラメータセットの値を探索し、最適化されたときの前記分析パイプラインモデルを出力する、処理を実行させるプログラムを格納する。
【発明の効果】
【００１６】
本発明の効果は、様々なバリデーション方法に対して、分析パイプラインに係るパラメータの調整ができることである。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、分析パイプライン調整システム１００の構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、コンピュータにより実現された分析パイプライン調整システム１００の構成を示すブロック図である。
【図４】本発明の第１の実施の形態における、分析パイプラインの例を示す図である。
【図５】本発明の第１の実施の形態における、分析パイプラインの各ブロックの入出力データの例を示す図である。
【図６】本発明の第１の実施の形態における、分析パイプラインモデルの例を示す図である。
【図７】本発明の第１の実施の形態における、分析パイプラインモデルの出力データの例を示す図である。
【図８】本発明の第１の実施の形態における、分析パイプライン調整システム１００の動作を示すフローチャートである。
【図９】本発明の第１の実施の形態における、目的関数の処理を示すフローチャートである。
【図１０】本発明の第１の実施の形態における、探索範囲の例を示す図である。
【図１１】本発明の第１の実施の形態における、探索範囲の他の例を示す図である。
【図１２】本発明の第１の実施の形態における、目的関数の他の処理を示すフローチャートである。
【図１３】本発明の第１の実施の形態における、探索範囲の他の例を示す図である。
【図１４】本発明の第１の実施の形態における、探索範囲の他の例を示す図である。
【図１５】本発明の第２の実施の形態における、分析パイプラインの例を示す図である。
【図１６】本発明の第２の実施の形態における、分析パイプライン調整システム１００の動作を示すフローチャートである。
【図１７】本発明の第２の実施の形態における、目的関数の処理を示すフローチャートである。
【図１８】本発明の第２の実施の形態における、探索範囲の例を示す図である。
【発明を実施するための形態】
【００１８】
本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面、及び、明細書記載の各実施形態において、同様の構成要素には同一の符号を付与し、説明を適宜省略する。
【００１９】
（第１の実施の形態）
本発明の第１の実施の形態について説明する。
【００２０】
はじめに、本発明の実施の形態における、分析パイプライン、及び、分析パイプラインモデルについて説明する。
【００２１】
図４は、本発明の第１の実施の形態における、分析パイプラインの例を示す図である。分析パイプラインは、データの前処理を行うブロック、及び、前処理が行われたデータを用いて学習処理を行うブロックを含む。前処理では、異常値や欠損値の除去、スケール変換、属性の生成等が行われる。学習処理では回帰式や決定木等、予測や分類を行うためのモデル（学習済みモデル）の生成（回帰式における係数や、決定木の構造、判定条件等のモデルパラメータの算出）が行われる。図４の分析パイプライン「Pipeline1」は、人間の身長、体重から、LDL（Low Density Lipoprotein）コレステロールを予測するための分析パイプラインモデルを生成する分析パイプラインである。ここで、分析パイプライン「Pipeline1」には、データの前処理を行うブロックとして、BMI（Body Mass Index）を算出するブロック「BMI」、及び、体重のｄ乗を算出するブロック「Pow（体重）」が設定されている。また、学習処理を行うブロックとして、前処理が行われたデータから、LDLコレステロールを予測するためのリッジ回帰モデルを、正則化パラメータλで生成するブロック「リッジ回帰（LDL）」が設定されている。
【００２２】
図５は、本発明の第１の実施の形態における、分析パイプラインの各ブロックの入出力データの例を示す図である。例えば、図５のデータ「data1」が図４の分析パイプラインに入力されると、データ「data1」がブロック「BMI」に入力され、「data2」のようなデータが出力される。さらに、データ「data2」がブロック「Pow（体重）」に入力され、「data3」のような、データが出力される。そして、データ「data3」がブロック「リッジ回帰（LDL）」に入力され、LDLコレステロールを予測するための学習済みモデル「リッジ回帰モデル（LDL）」が生成される。
【００２３】
図６は、本発明の第１の実施の形態における、分析パイプラインモデルの例を示す図である。分析パイプラインモデルは、分析パイプラインと同様の、データの前処理を行うブロック、及び、分析パイプラインにより生成された、学習済みモデルの処理を行うブロックを含む。学習済みモデルでは、前処理が行われたデータを用いて予測や分類が行われる。図６の分析パイプラインモデル「PipelineModel1」は、図４の分析パイプライン「Pipeline1」により生成された分析パイプラインモデルである。分析パイプラインモデル「PipelineModel1」には、データの前処理を行うブロックとして、BMIを算出するブロック「BMI」、及び、体重のｄ乗を算出するブロック「Pow（体重＾ｄ）」が設定されている。
また、学習済みモデルの処理を行うブロックとして、ブロック「リッジ回帰モデル（LDL）」が設定されている。
【００２４】
図７は、本発明の第１の実施の形態における、分析パイプラインモデルの出力データの例を示す図である。例えば、図５のデータ「data1」が図６の分析パイプラインモデルに入力されると、前処理済みのデータ「data3」がブロック「リッジ回帰モデル（LDL）」に入力される。そして、図７のデータ「data4」のように、LDLコレステロールの予測値のカラムが追加されたデータが出力される。
【００２５】
分析パイプラインは、前処理、及び、学習処理の内の少なくとも一方に係るパイプラインパラメータを持つ。図４の分析パイプラインでは、前処理のブロック「Pow（体重）」における次数ｄと、学習処理のブロック「リッジ回帰（LDL）」における正則化パラメータλの値がパイプラインパラメータの値として設定される。
【００２６】
なお、分析パイプライン、及び、分析パイプラインモデルは、例えば、ＣＰＵ（Central Processing Unit）上で実行されるプログラムである。
【００２７】
次に、本発明の第１の実施の形態の構成を説明する。図２は、本発明の第１の実施の形態における、分析パイプライン調整システム１００の構成を示すブロック図である。分析パイプライン調整システム１００は、本発明の情報処理システムの一実施形態である。
【００２８】
図２を参照すると、分析パイプライン調整システム１００は、初期化部１１０、バリデーションモジュール記憶部１２０、探索モジュール記憶部１３０、分析パイプライン記憶部１４０、及び、調整部１５０を含む。
【００２９】
初期化部１１０は、ユーザ等から、分析対象のデータ、分析において利用する（利用対象の）分析パイプライン、バリデーションモジュール、及び、探索モジュールの入力を受け付ける。バリデーションモジュール、探索モジュール、及び、分析パイプラインは、例えば、ＣＰＵ上で実行されるプログラムである。なお、初期化部１１０は、記憶部（図示せず）等に記憶された複数の分析パイプラインや各モジュールの内、利用対象の分析パイプラインや各モジュールの識別子の入力を受け付けてもよい。
【００３０】
図２に示すように、探索モジュールは、調整部１５０により実行され、バリデーションモジュールは、目的関数を介して、探索モジュールにより実行される。これら、バリデーションモジュール、目的関数、及び、探索モジュールの入出力、及び、処理は、以下のように定義される。
【００３１】
＜バリデーションモジュール＞
バリデーションモジュールには、目的関数から、分析対象のデータと、１以上のパイプラインパラメータの値が設定（適用）された分析パイプラインと、が入力される。
【００３２】
バリデーションモジュールは、入力されたデータ、及び、分析パイプラインを用いて、当該バリデーションモジュールに対応する所定のバリデーション方法に従って、分析パイプラインモデルの生成、及び、生成した分析パイプラインモデルの評価値を算出する。
【００３３】
バリデーションモジュールは、生成した分析パイプラインモデル、及び、算出した評価値を、目的関数へ返却（出力）する。
【００３４】
ここで、所定のバリデーション方法としては、例えば、上述のSingle ValidationやCross Validation等が用いられる。また、評価値としては、例えば、生成した分析パイプラインモデルによる予測値と実際の値とから算出した平均二乗誤差（RMSE（Root Mean Squared Error））等が用いられる。
【００３５】
＜目的関数＞
目的関数には、探索モジュールから、引数ｘが指定（入力）される。引数ｘには、１以上のパラメータの集合（以下、パラメータセットとも記載する）の各パラメータの値（以下、パラメータセットの値とも記載する）が設定される。パラメータセットには、上述の、１以上のパイプラインパラメータが含まれる。
【００３６】
図９は、本発明の第１の実施の形態における、目的関数の処理を示すフローチャートである。目的関数は、引数ｘとして指定されたパラメータセットに含まれるパイプラインパラメータの値を、利用対象の分析パイプラインに設定（適用）する（ステップＳ２１０）。目的関数は、分析対象のデータと、パイプラインパラメータの値が設定（適用）された分析パイプラインと、を利用対象のバリデーションモジュールに入力し、当該バリデーションモジュールを実行する（ステップＳ２２０）。
【００３７】
目的関数は、バリデーションモジュールの実行の結果得られた、評価値、及び、分析パイプラインモデルを戻り値として、探索モジュールへ返却（出力）する（ステップＳ２３０）。
【００３８】
＜探索モジュール＞
探索モジュールには、調整部１５０から、目的関数が入力される。また、探索モジュールには、初期化部１１０により、目的関数の引数ｘ（パラメータセットの値）の探索範囲が設定される。探索範囲には、利用対象の探索モジュールの探索方法や、利用対象の分析パイプライン、バリデーションモジュールに対応した値の範囲が設定される。なお、探索範囲は、初期化部１１０の代わりに、調整部１５０により入力されてもよい。また、探索範囲は、ユーザ等から入力される探索モジュールに、予め、設定されていてもよい。
【００３９】
探索モジュールは、探索範囲内の値を引数ｘに指定して、入力された目的関数を実行する。探索モジュールは、当該探索モジュールに対応する所定の探索方法に従って、目的関数の戻り値に含まれる評価値が最適化される（最小、または、最大になる）引数ｘ（パラメータセットの値）を探索する。探索モジュールは、評価値が最適化されたときの目的関数の戻り値（評価値、及び、分析パイプラインモデル）を、調整部１５０へ返却（出力）する。
【００４０】
ここで、所定の探索方法としては、例えば、上述のGrid SearchやRandom Search等が用いられる。また、探索モジュールが目的関数を実行できれば、目的関数の入力は省略されてもよい。また、探索モジュールは、評価値が最適化されたときの引数ｘ（パラメータセットの値）も、目的関数からの戻り値とともに調整部１５０へ返却（出力）してもよい。
【００４１】
このようなバリデーションモジュール、目的関数、及び、探索モジュールの定義により、バリデーションモジュールは、探索モジュールに依存しないように実現できる。また、探索モジュールも、利用対象の分析パイプラインやバリデーションモジュールに依存しないように実現できる。
【００４２】
バリデーションモジュール記憶部１２０は、利用対象のバリデーションモジュールを記憶する。
【００４３】
探索モジュール記憶部１３０は、利用対象の探索モジュールを記憶する。
【００４４】
分析パイプライン記憶部１４０は、利用対象の分析パイプラインを記憶する。
【００４５】
調整部１５０は、分析対象のデータ、利用対象の分析パイプライン、及び、バリデーションモジュールに対応した、上述の目的関数を生成する。調整部１５０は、生成した目的関数を利用対象の探索モジュールに入力し、当該探索モジュールを実行する。調整部１５０は、探索モジュールの実行の結果得られた分析パイプラインモデルを、ユーザ等へ出力する。
【００４６】
なお、分析パイプライン調整システム１００は、ＣＰＵとプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。
【００４７】
図３は、本発明の第１の実施の形態における、コンピュータにより実現された分析パイプライン調整システム１００の構成を示すブロック図である。
【００４８】
この場合、分析パイプライン調整システム１００は、ＣＰＵ１０１、ハードディスクやメモリ等の記憶デバイス１０２（記憶媒体）、キーボード、ディスプレイ等の入出力デバイス１０３、及び、他の装置等と通信を行う通信デバイス１０４を含む。ＣＰＵ１０１は、初期化部１１０、及び、調整部１５０を実現するためのプログラムを実行する。記憶デバイス１０２は、バリデーションモジュール記憶部１２０、探索モジュール記憶部１３０、及び、分析パイプライン記憶部１４０の情報を記憶する。入出力デバイス１０３は、ユーザからの利用対象のバリデーションモジュール、探索モジュール、及び、分析パイプラインの入力の受け付け、及び、ユーザへの分析パイプラインモデルの出力を行う。また、通信デバイス１０４が、他の装置等から利用対象のバリデーションモジュール、探索モジュール、及び、分析パイプラインを受信する、或いは、他の装置等へ分析パイプラインモデルを送信してもよい。
【００４９】
また、図２における分析パイプライン調整システム１００の各構成要素の一部又は全部は、汎用または専用の回路（circuitry）やプロセッサ、これらの組み合わせによって実現されてもよい。これらの回路やプロセッサは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。また、分析パイプライン調整システム１００の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【００５０】
図２における分析パイプライン調整システム１００の各構成要素の一部又は全部が、複数の情報処理装置や回路等により実現される場合、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【００５１】
次に、本発明の第１の実施の形態の動作について説明する。
【００５２】
ここでは、分析対象のデータが、図５のデータ「data1」であると仮定する。また、利用対象の分析パイプラインが、図４の「Pipeline1」、バリデーションモジュールが、Single Validationを行う「SingleValidation1」、探索モジュールが、Grid Searchを行う「GridSearch1」であると仮定する。
【００５３】
さらに、バリデーションモジュール記憶部１２０、探索モジュール記憶部１３０、分析パイプライン記憶部１４０には、それぞれ、利用対象のバリデーションモジュール、探索モジュール、分析パイプラインが、予めユーザ等により保存されていると仮定する。
【００５４】
図８は、本発明の第１の実施の形態における、分析パイプライン調整システム１００の動作を示すフローチャートである。
【００５５】
はじめに、初期化部１１０は、ユーザ等から、分析対象のデータ、利用対象のバリデーションモジュール、探索モジュール、及び、分析パイプラインの入力を受け付ける（ステップＳ１１０）。
【００５６】
例えば、初期化部１１０は、分析対象のデータ「data1」、利用対象のバリデーションモジュール「SingleValidation1」、探索モジュール「GridSearch1」、及び、分析パイプライン「Pipeline1」の入力を受け付ける。
【００５７】
初期化部１１０は、バリデーションモジュール、探索モジュール、分析パイプラインを、バリデーションモジュール記憶部１２０、探索モジュール記憶部１３０、分析パイプライン記憶部１４０に保存する（ステップＳ１２０）。ここで、初期化部１１０は、バリデーションモジュール、探索モジュールに必要な設定を行ってもよい。
【００５８】
例えば、初期化部１１０はバリデーションモジュール「SingleValidation1」を、評価値としてRMSEを算出し、データの分割比率として学習用データ８割、テスト用データ２割を用いるように設定する。
【００５９】
図１０は、本発明の第１の実施の形態における、探索範囲の例を示す図である。また、初期化部１１０は、例えば、探索モジュール「GridSearch1」の探索範囲として、利用対象の分析パイプライン「Pipeline1」に対応した、図１０のような「grid1」を設定する。
【００６０】
図１０において、「“Pow.d”: [2, 3]」は、分析パイプラインのブロック「Pow」に設定される次数ｄの値の候補として、2と3があることを示している。また、「“リッジ回帰.λ”:[10^-6, 10^-7, 10^-8]」は、ブロック「リッジ回帰」の正則化パラメータλの値の候補として、10^-6、10^-7、10^-8（^はべき乗を示す）があることを示している。この場合、パラメータセット（次数ｄ、正則化パラメータλ）の値の探索範囲として、６通りの値の組み合わせが存在する。
【００６１】
次に、調整部１５０は、分析パイプライン記憶部１４０、及び、バリデーションモジュール記憶部１２０から、利用対象の分析パイプライン、及び、バリデーションモジュールを取得する。調整部１５０は、分析対象のデータ、利用対象の分析パイプライン、及び、バリデーションモジュールに対して、目的関数を生成する（ステップＳ１３０）。
【００６２】
例えば、調整部１５０は、データ「data1」、分析パイプライン「Pipeline1」、及び、バリデーションモジュール「SingleValidation1」に対して、図９のような処理を行う目的関数f1(x)を生成する。
【００６３】
次に、調整部１５０は、探索モジュール記憶部１３０から、利用対象の探索モジュールを取得する。調整部１５０は、生成した目的関数を利用対象の探索モジュールに入力し、当該探索モジュールを実行する（ステップＳ１４０）。
【００６４】
例えば、調整部１５０は、目的関数f1(x)を探索モジュール「GridSearch1」に入力し、実行する。
【００６５】
探索モジュール「GridSearch1」は、探索範囲「grid1」で指定される６通りのパラメータセット（次数ｄ、正則化パラメータλ）の値の組み合わせの各々について、目的関数f1(x)を実行する。
【００６６】
例えば、探索モジュール「GridSearch1」は、探索範囲「grid1」に含まれる、パラメータセットの値「次数ｄ＝2、正則化パラメータλ＝10^-6」を引数ｘに設定し、入力された目的関数f1(x)を実行する。
【００６７】
目的関数f1(x)は、引数ｘとして指定されたパイプラインパラメータの値「次数ｄ＝2、正則化パラメータλ＝10^-6」を、分析パイプライン「Pipeline1」に設定する。そして、目的関数f1(x)は、データ「data1」と分析パイプライン「Pipeline1」を、バリデーションモジュール「SingleValidation1」に入力し、実行する。
【００６８】
バリデーションモジュール「SingleValidation1」は、データ「data1」、及び、分析パイプライン「Pipeline1」を用いて、分析パイプラインモデル「PipelineModel1」を生成する。ここで、バリデーションモジュール「SingleValidation1」は、データ「data1」の８割を学習用データとして用いて、分析パイプラインモデル「PipelineModel1」を生成する。そして、バリデーションモジュール「SingleValidation1」は、データ「data1」の残りの２割をテスト用データとして用いて、評価値（RMSE）を算出する。バリデーションモジュール「SingleValidation1」は、分析パイプラインモデル「PipelineModel1」、及び、評価値（RMSE）を返却する。
【００６９】
目的関数f1(x)は、バリデーションモジュール「SingleValidation1」の実行の結果得られた、評価値（RMSE）、及び、分析パイプラインモデル「PipelineModel1」を、戻り値として返却する。
【００７０】
探索モジュール「GridSearch1」は、探索範囲「grid1」で指定される６通りのパラメータセットの値の組み合わせの内、戻り値に含まれる評価値（RMSE）が最小となる組み合わせに対する分析パイプラインモデルを調整部１５０へ返却する。
【００７１】
次に、調整部１５０は、探索モジュールから返却された分析パイプラインモデルを、ユーザ等へ出力する（ステップＳ１５０）。
【００７２】
例えば、調整部１５０は、探索モジュールから返却された分析パイプラインモデル「PipelineModel1」を出力する。
【００７３】
以後、ユーザ等は、生成された分析パイプラインモデル「PipelineModel1」を用いて、新たなデータに対して、予測や分析を行うことができる。
【００７４】
以上により、本発明の第１の実施の形態の動作が完了する。
【００７５】
なお、ここでは、バリデーションモジュール、及び、探索モジュールとして、Single Validationを行うバリデーションモジュール、及び、Grid Searchを行う探索モジュールが用いられる場合を例に説明した。しかしながら、これに限らず、バリデーションモジュールや探索モジュールの入出力、及び、処理が、上述の定義に従っていれば、他のバリデーションモジュールや探索モジュールが用いられてもよい。
【００７６】
例えば、バリデーションモジュールとして、Cross Validationを行う「CrossValidation1」、探索モジュールとして、Random Searchを行う「RandomSearch1」が用いられてもよい。
【００７７】
この場合、バリデーションモジュール「CrossValidation1」は、例えば、データ「data1」を１０分割して交差検定を行い、評価値（RMSE）の平均と、評価値（RMSE）が最小となる分析パイプラインモデル「PipelineModel1」を返却する。
【００７８】
図１１は、本発明の第１の実施の形態における、探索範囲の他の例を示す図である。また、探索モジュール「RandomSearch1」には、初期化部１１０により、例えば、図１１のような探索範囲「dist1」が設定される。図１１において、「“Pow.d”: discrete([2, 3], [0.40, 0.6])」は、４０％の確率で２、６０％の確率で３となる多項分布を表し、「Norm(10^-7, 10^-8)」は、平均が10^-7、標準偏差が10^-8の正規分布を表す。探索モジュール「RandomSearch1」は、探索範囲「dist1」で表される分布に従って、パラメータセットの値の所定数（例えば１００通り）の組み合わせをサンプリングして、各組み合わせについて、目的関数f1(x)を実行する。そして、探索モジュール「RandomSearch1」は、パラメータセットの値の所定数の組み合わせの内、戻り値に含まれる評価値（RMSE）が最小となる組み合わせに対する分析パイプラインモデル「PipelineModel1」を、調整部１５０へ返却する。
【００７９】
また、ここでは、パラメータセットが、分析パイプラインにおける前処理や学習処理に係るパラメータ（パイプラインパラメータ）であることを例に説明した。しかしながら、これに限らず、パラメータセットは、バリデーションモジュールにおけるバリデーション処理に係るパラメータを含んでいてもよい。
【００８０】
図１２は、本発明の第１の実施の形態における、目的関数の他の処理を示すフローチャートである。この場合、目的関数は、引数ｘとして指定されたパラメータセットの値の組み合わせに含まれる、パイプラインパラメータの値を、分析パイプライン設定（適用）する（ステップＳ３１０）。また、目的関数は、パラメータセットの値の組み合わせに含まれる、バリデーション処理に係るパラメータの値を、利用対象のバリデーションモジュールに設定（適用）する（ステップＳ３２０）。目的関数は、分析対象のデータと、パイプラインパラメータの値が設定（適用）された分析パイプラインとを、利用対象のバリデーションモジュールに入力し、当該バリデーションモジュールを実行する（ステップＳ３３０）。目的関数は、バリデーションモジュールの実行の結果得られた、評価値、及び、分析パイプラインモデルを戻り値として、探索モジュールへ返却（出力）する（ステップＳ３４０）。
【００８１】
なお、目的関数は、例えば、パラメータセットの値の組み合わせをkey、valueのリストとして、バリデーションモジュールに入力してもよい。この場合、バリデーションモジュールは、リストの中から自バリデーションモジュールに設定（適用）可能なパラメータのkeyがあれば、対応するvalueの値を設定（適用）する。これにより、異なるバリデーションモジュールであっても、同一のインターフェースで、バリデーション処理の挙動を変更できる。
【００８２】
バリデーション処理に係るパラメータの値としては、例えば、学習用データの絞り込み割合を指定するパラメータ値が用いられる。
【００８３】
図１３は、本発明の第１の実施の形態における、探索範囲の他の例を示す図である。例えば、Grid Searchを行う探索モジュール「GridSearch2」に、初期化部１１０により、図１３のような探索範囲「grid2」が設定されていると仮定する。
【００８４】
図１３において、「“SV.num_train_ratio”: [1.0, 0.8]」は、SingleValidationを行うバリデーションモジュールに設定（適用）される、学習用データの絞り込み割合num_train_ratioの値の候補として、1.0と0.8があることを示している。バリデーションモジュールは、絞り込み割合num_train_ratioが1.0であれば、学習用データの全てを用いて学習を行う。また、バリデーションモジュールは、絞り込み割合num_train_ratioが0.8であれば、学習用データの８割を選んで（絞り込んで）学習を行う。絞り込みの対象としては、例えば、データを時系列順に学習用データとテスト用データに分割する場合、テスト用データに近い時刻の８割のデータが選ばれる。
【００８５】
この場合、パラメータセット（次数ｄ、正則化パラメータλ、及び、絞り込み割合num_train_ratio）の値の探索範囲として、８通りの値の組み合わせが存在する。
【００８６】
調整部１５０は、データ「data1」、分析パイプライン「Pipeline1」、及び、バリデーションモジュール「SingleValidation1」に対して、図１２のような処理を行う目的関数f2(x)を生成する。
【００８７】
探索モジュール「GridSearch2」は、探索範囲「grid2」で指定される８通りのパラメータセットの値の組み合わせの各々について、目的関数f2(x)を通して、バリデーションモジュール「SingleValidation1」を実行し、分析パイプラインモデルを求める。
【００８８】
また、バリデーション処理に係るパラメータ値として、全データによる再学習（Refit処理）を指定するパラメータ（Refitフラグ）の値が用いられてもよい。
【００８９】
図１４は、本発明の第１の実施の形態における、探索範囲の他の例を示す図である。例えば、Grid Searchを行う探索モジュール「GridSearch3」に、初期化部１１０により、図１４のような探索範囲「grid3」が設定されていると仮定する。
【００９０】
図１４において、「“SV.refit”: [true, false]」は、SingleValidationを行うバリデーションモジュールに設定（適用）されるRefitフラグ「refit」の値の候補として、trueとfalseがあることを示している。バリデーションモジュールは、Refitフラグがfalseであれば、学習用データを用いた学習、及び、テスト用データを用いた評価値の算出を行い、得られた分析パイプラインモデルをを返却する。一方、バリデーションモジュールは、Refitフラグがtrueであれば、学習用データを用いた学習、テスト用データを用いた評価値の算出を行った後で、全データ（学習用データ、及び、テスト用データ）を用いた学習を再度行い、分析パイプラインモデルを更新する。バリデーションモジュールは、再学習により更新された分析パイプラインモデルをを返却する。
【００９１】
この場合、パラメータセット（次数ｄ、正則化パラメータλ、及び、Refitフラグ）の値の探索範囲として、８通りの値の組み合わせが存在する。
【００９２】
探索モジュール「GridSearch3」は、探索範囲「grid3」で指定される８通りのパラメータセットの値の組み合わせの各々について、目的関数f2(x)を通して、バリデーションモジュール「SingleValidation1」を実行し、分析パイプラインモデルを求める。
【００９３】
このように、パラメータセットにバリデーションモジュールにおけるバリデーション処理に係るパラメータを含めることで、学習データに係る条件や再学習に係る条件も含めてパラメータを調整でき、より精度の高い分析パイプラインモデルを得ることができる。
【００９４】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。分析パイプライン調整システム１００（情報処理システム）は、初期化部１１０、及び、調整部１５０を含む。
【００９５】
初期化部１１０は、入力された分析パイプラインを用いて分析パイプラインモデルの生成、及び、評価値の算出を、所定のバリデーション方法に従って行い、出力する、バリデーションモジュールの入力を受け付ける。
【００９６】
調整部１５０は、パラメータセットの探索範囲内で、所定の探索方法に従って、パイプラインパラメータの値が適用された分析パイプラインをバリデーションモジュールに入力して実行し、評価値が最適化されるパラメータセットの値を探索する。調整部１５０は、最適化されたときの分析パイプラインモデルを出力する。
【００９７】
次に、本発明の第１の実施の形態の効果を説明する。
【００９８】
本発明の第１の実施によれば、様々なバリデーション方法に対して、分析パイプラインに係るパラメータの調整ができる。その理由は、以下による。すなわち、初期化部１１０が、入力された分析パイプラインを用いて分析パイプラインモデルの生成、及び、評価値の算出を、所定のバリデーション方法に従って行い、出力する、バリデーションモジュールの入力を受け付ける。そして、調整部１５０が、パラメータセットの探索範囲内で、所定の探索方法に従って、パイプラインパラメータの値が適用された分析パイプラインをバリデーションモジュールに入力、実行し、評価値が最適化されるパラメータセットの値を探索するためである。
【００９９】
また、本発明の第１の実施によれば、様々なバリデーション方法、及び、探索方法の組み合わせに対して、分析パイプラインに係るパラメータの調整ができる。その理由は、以下による。すなわち、初期化部１１０が、パラメータセットの探索範囲内で、所定の探索方法に従って、パラメータセットの値を目的関数に入力して実行し、評価値が最適化されるパラメータセットの値を探索する探索モジュールの入力を受け付ける。ここで、目的関数は、入力されたパラメータセットに含まれるパイプラインパラメータの値が適用された分析パイプラインをバリデーションモジュールに入力して実行することにより得られた評価値、及び、分析パイプラインモデルを出力する関数である。そして、調整部１５０が、目的関数を生成して、探索モジュールを実行するためである。
【０１００】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【０１０１】
本発明の第２の実施の形態においては、利用対象の分析パイプラインもパラメータとして指定する点において、本発明の第１の実施の形態と異なる。
【０１０２】
はじめに、本発明の第２の実施の形態の構成について説明する。
【０１０３】
本発明の第２の実施の形態における分析パイプライン調整システム１００の構成を示すブロック図は、本発明の第１の実施の形態（図２）と同様となる。
【０１０４】
本発明の第２の実施の形態では、分析パイプライン記憶部１４０が、複数の分析パイプラインを記憶する。また、本発明の第２の実施の形態では、パラメータセットが、利用対象の分析パイプラインの識別子を含む。
【０１０５】
図１７は、本発明の第２の実施の形態における、目的関数の処理を示すフローチャートである。目的関数は、引数ｘとして指定されたパラメータセットに含まれる識別子の分析パイプラインを分析パイプライン記憶部１４０から取得する（ステップＳ５１０）。目的関数は、パラメータセットに含まれるパイプラインパラメータの値を、取得した分析パイプラインに設定（適用）する（ステップＳ５２０）。目的関数は、分析対象のデータと、パイプラインパラメータの値が設定（適用）された分析パイプラインとを、利用対象のバリデーションモジュールに入力し、当該バリデーションモジュールを実行する（ステップＳ５３０）。目的関数は、バリデーションモジュールの実行の結果得られた、評価値、及び、分析パイプラインモデルを戻り値として、探索モジュールへ返却（出力）する（ステップＳ５４０）。
【０１０６】
なお、分析パイプライン記憶部１４０が複数の分析パイプラインを記憶する代わりに、目的関数が、パラメータセットに含まれる識別子の分析パイプラインを、当該分析パイプラインに係る情報をもとに生成してもよい。
【０１０７】
次に、本発明の第２の実施の形態の動作について説明する。
【０１０８】
図１５は、本発明の第２の実施の形態における、分析パイプラインの例を示す図である。図１５の分析パイプライン「Pipeline2」は、図４の分析パイプライン「Pipeline1」と同様に、人間の身長、体重から、LDL（Low Density Lipoprotein）コレステロールを予測するための分析パイプラインモデルを生成する分析パイプラインである。ここで、分析パイプライン「Pipeline2」には、データの前処理を行うブロックとして、BMIを算出するブロック「BMI」、及び、身長のｄ乗を算出するブロック「Pow（身長）」が設定されている。また、学習処理を行うブロックとして、前処理が行われたデータから、LDLコレステロールを判定するための決定木モデルを、木の高さｈで生成するブロック「決定木（LDL）」が設定されている。
【０１０９】
ここでは、分析対象のデータが、図５のデータ「data1」であると仮定する。また、分析パイプラインが、図４の「Pipeline1」、または、図１５の「Pipeline2」、バリデーションモジュールが、Single Validationを行う「SingleValidation1」、探索モジュールが、Grid Searchを行う「GridSearch4」であると仮定する。また、利用対象の分析パイプライン「Pipeline1」、「Pipeline2」は、例えば、予め、ユーザ等により指定されていると仮定する。。
【０１１０】
図１６は、本発明の第２の実施の形態における、分析パイプライン調整システム１００の動作を示すフローチャートである。
【０１１１】
はじめに、初期化部１１０は、ユーザ等から、分析対象のデータ、利用対象のバリデーションモジュール、及び、探索モジュールの入力を受け付ける（ステップＳ４１０）。
【０１１２】
例えば、初期化部１１０は、分析対象のデータ「data1」、利用対象のバリデーションモジュール「SingleValidation1」、及び、探索モジュール「GridSearch4」の入力を受け付ける。
【０１１３】
初期化部１１０は、バリデーションモジュール、及び、探索モジュールを、それぞれ、バリデーションモジュール記憶部１２０、及び、探索モジュール記憶部１３０に保存する（ステップＳ４２０）。ここで、初期化部１１０は、バリデーションモジュール、探索モジュールに必要な設定を行ってもよい。
【０１１４】
図１８は、本発明の第２の実施の形態における、探索範囲の例を示す図である。初期化部１１０は、例えば、探索モジュール「GridSearch4」の探索範囲として、利用対象の分析パイプライン「Pipeline1」、「Pipeline2」に対応した、図１８のような「grid4」を設定する。
【０１１５】
図１８において、「“pipeline”: [“Pipeline1”]」、「“pipeline”: [“Pipeline2”]」は、それぞれ、図４、図１５の分析パイプラインの識別子を示す。なお、分析パイプラインの識別子の代わりに、分析パイプラインが格納されたファイルパスが設定されていてもよい。
【０１１６】
この場合、分析パイプライン「Pipeline1」について、パラメータセット（次数ｄ、正則化パラメータλ）の値の探索範囲として、４通りの値の組み合わせが存在する。また、分析パイプライン「Pipeline2」について、パラメータセット（次数ｄ、決定木の高さｈ）の値の探索範囲として、４通りの組み合わせが存在する。すなわちパラメータセットの値の探索範囲として、８通りの組み合わせが存在する。
【０１１７】
次に、調整部１５０は、バリデーションモジュール記憶部１２０から、利用対象のバリデーションモジュールを取得する。調整部１５０は、分析対象のデータ、利用対象のバリデーションモジュールに対して、目的関数を生成する（ステップＳ４３０）。
【０１１８】
例えば、調整部１５０は、データ「data1」、バリデーションモジュール「SingleValidation1」に対して、図１７のような処理を行う目的関数f3(x)を生成する。
【０１１９】
次に、調整部１５０は、探索モジュール記憶部１３０から、利用対象の探索モジュールを取得する。調整部１５０は、生成した目的関数を利用対象の探索モジュールに入力し、当該探索モジュールを実行する（ステップＳ４４０）。
【０１２０】
例えば、調整部１５０は、目的関数f3(x)を探索モジュール「GridSearch4」に入力し、実行する。
【０１２１】
探索モジュール「GridSearch4」は、探索範囲「grid4」で指定される８通りのパラメータセットの値の組み合わせの各々について、目的関数f3(x)を実行する。
【０１２２】
例えば、探索モジュール「GridSearch4」は、探索範囲「grid4」に含まれる、パラメータセットの値「分析パイプライン=「pipline2」、次数ｄ＝3、決定木の高さｈ＝10」を引数ｘに設定し、入力された目的関数f3(x)を実行する。
【０１２３】
目的関数f3(x)は、引数ｘとして指定された分析パイプライン「pipline2」を取得し、パイプラインパラメータの値「次数ｄ＝3、決定木の高さｈ＝10」を分析パイプライン「pipline2」に設定する。そして、目的関数f3(x)は、データ「data1」と分析パイプライン「pipline2」を、バリデーションモジュール「SingleValidation1」に入力し、実行する。
【０１２４】
バリデーションモジュール「SingleValidation1」は、データ「data1」、及び、分析パイプライン「Pipeline2」を用いて、分析パイプラインモデルを生成する。
【０１２５】
目的関数f3(x)は、バリデーションモジュール「SingleValidation2」の実行の結果得られた、評価値（RMSE）、及び、分析パイプラインモデルを、戻り値として返却する。
【０１２６】
探索モジュール「GridSearch4」は、探索範囲「grid4」で指定される８通りのパラメータセットの値の組み合わせの内、戻り値に含まれる評価値（RMSE）が最小となる組み合わせに対する分析パイプラインモデルを、調整部１５０へ返却する。
【０１２７】
次に、調整部１５０は、探索モジュールから返却された分析パイプラインモデルを、ユーザ等へ出力する（ステップＳ４５０）。
【０１２８】
以上により、本発明の第２の実施の形態の動作が完了する。
【０１２９】
なお、本発明の第２の実施の形態においても、本発明の第１の実施の形態と同様に、パラメータセットが、学習用データの絞り込み割合や、全データによる再学習を示すフラグ等、バリデーション処理に係るパラメータを含んでいてもよい。
【０１３０】
次に、本発明の第２の実施の形態の効果を説明する。
【０１３１】
本発明の第２の実施の形態によれば、本発明の第１の実施の形態に比べて、より精度の高い分析パイプラインを得ることができる。その理由は、パラメータセットが、さらに、分析パイプラインの識別子を含むためである。これにより、分析パイプラインに係る条件も含めてパラメータを調整でき、より精度の高い分析パイプラインモデルを得ることができる。
【０１３２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１３３】
１００    分析パイプライン調整システム
１０１    ＣＰＵ
１０２    記憶デバイス
１０３    入出力デバイス
１０４    通信デバイス
１１０    初期化部
１２０    バリデーションモジュール記憶部
１３０    探索モジュール記憶部
１４０    分析パイプライン記憶部
１５０    調整部
【図１】
0006648828.tif 000002
【図２】
0006648828.tif 000003
【図３】
0006648828.tif 000004
【図４】
0006648828.tif 000005
【図５】
0006648828.tif 000006
【図６】
0006648828.tif 000007
【図７】
0006648828.tif 000008
【図８】
0006648828.tif 000009
【図９】
0006648828.tif 000010
【図１０】
0006648828.tif 000011
【図１１】
0006648828.tif 000012
【図１２】
0006648828.tif 000013
【図１３】
0006648828.tif 000014
【図１４】
0006648828.tif 000015
【図１５】
0006648828.tif 000016
【図１６】
0006648828.tif 000017
【図１７】
0006648828.tif 000018
【図１８】
0006648828.tif 000019