(57)【要約】【課題】データ分析のためのシステムおよび技法を提供すること。【解決手段】予測データ分析論のためのシステムおよび技法が、説明される。予測問題のための予測モデルを選択するための方法では、予測問題のための予測モデル化プロシージャの好適性が、予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて判定され得る。予測モデル化プロシージャのサブセットが、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づいて選択され得る。選択されたモデル化プロシージャの実行のための計算リソースを割り付ける、リソース割付スケジュールが、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づいて生成され得る。リソース割付スケジュールに従った選択されたモデル化プロシージャの実行の結果が、取得され得る。予測問題のための予測モデルが、これらの結果に基づいて選択され得る。【選択図】なし【特許請求の範囲】
【請求項１】
システム、方法、装置など。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本願は、２０１４年５月２３日に出願され“Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｐｒｅｄｉｃｔｉｖｅ  Ｄａｔａ  Ａｎａｌｙｔｉｃｓ”と題された米国仮特許出願第６２／００２，４６９号（代理人管理番号ＤＲＢ−００１ＰＲ）の３５  Ｕ．Ｓ．Ｃ．  １１９（ｅ）のもとでの優先権および利益を主張するものであり、該米国仮特許出願は、適用法によって許容される最大の範囲まで参照により本明細書中に援用される。
【０００２】
本開示は、概して、データ分析のためのシステムおよび技法に関する。いくつかの実施形態は、具体的には、予測問題のための予測モデルを開発および／または選択するために統計的学習方法を使用するためのシステムならびに技法に関する。
【背景技術】
【０００３】
多くの団体および個人は、それらの運営を向上させるために、またはそれらの意思決定を補助するために、電子データを使用する。例えば、多くの企業は、取引を実行すること、入力および出力を追跡すること、または製品を市場に出すこと等の種々のビジネスプロセスの効率を増進するために、データ管理技術を使用する。別の実施例として、多くの事業は、ビジネスプロセスの業績を評価するため、プロセスを向上させる労力の有効性を測定するため、またはどのようにしてプロセスを調節するかを決定するために、運営データを使用する。
【０００４】
ある場合には、問題または機会を予測するために、電子データが使用されることができる。いくつかの団体は、過去に起こったことを表すデータを、予測モデルを構築するための業績測定基準の後続の値を表す評価と組み合わせる。予測モデルによって予測される成果に基づいて、団体は、決定を行い、プロセスを調節し、または他の措置を講じることができる。例えば、保険会社は、将来の請求をより正確に予想する予測モデル、または保険契約者が競合保険業者に切り替えることを考慮しているときを予測する予測モデルを構築しようとし得る。自動車製造業者は、新しい車のモデルの需要をより正確に予想する予測モデルを構築しようとし得る。消防署は、火事の危険性が高い日を予想する、またはどの構造が火事の危険に曝されているかを予想する、予測モデルを構築しようとし得る。
【０００５】
機械学習技法（例えば、監視下の統計的学習技法）が、少なくとも２つの変数の前もって記録された観察を含むデータセットから、予測モデルを生成するために使用されてもよい。予測される変数は、「標的」、「応答」、または「従属変数」と称され得る。予測を行うために使用されることができる、残りの変数は、「特徴」、「予測因子」、または「独立変数」と称され得る。観察は、概して、少なくとも１つの「訓練」データセットおよび少なくとも１つの「試験」データセットに分割される。次いで、データ分析者は、統計的学習プロシージャを選択し、予測モデルを生成するように、そのプロシージャを訓練データセット上で行う。次いで、分析者は、標的の実際の観察に対して、モデルがどれだけ良好に標的の値を予測するかを判定するように、試験データセット上で生成されたモデルを試験する。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明のいくつかの実施形態の動機
データ分析者は、運営および評価データを含む、電子データから予測モデルを構築するために、分析技法および計算インフラストラクチャを使用することができる。データ分析者は、概して、予測モデルを構築するために、２つのアプローチのうちの１つを使用する。第１のアプローチを用いると、予測問題を取り扱う団体は、単純に、同一予測問題または類似予測問題のためにすでに開発されている、パッケージ化された予測モデル化ソリューションを使用する。本「大量生産」アプローチは、安価であるが、概して、比較的多数の団体に共通する少数の予測問題（例えば、不正検出、回転売買管理、市場応答等）のためのみに実行可能である。第２のアプローチを用いると、データ分析者のチームが、予測問題のためのカスタマイズされた予測モデル化ソリューションを構築する。本「専門家」アプローチは、概して、高価で時間がかかり、したがって、少数の高額予測問題に使用される傾向がある。
【０００７】
予測問題のための潜在的予測モデル化ソリューションの空間は、概して、大きくて複雑である。統計的学習技法は、多くの学問的伝統（例えば、数学、統計学、物理学、工学、経済学、社会学、生物学、医学、人工知能、データマイニング等）による、および多くの商業分野における用途（例えば、財政、保険、小売、製造、医療等）による影響を受ける。その結果として、多くの変異形および／または調整パラメータを有し得る、多くの異なる予測モデル化アルゴリズム、ならびに独自の変異形および／またはパラメータを用いた異なる前処理ならびに後処理ステップがある。潜在的予測モデル化ソリューションの量（例えば、前処理ステップ、モデル化アルゴリズム、および後処理ステップの組み合わせ）は、すでに極めて大きく、研究者が新しい技法を開発するにつれて急速に増加している。
【０００８】
予測モデル化技法のこの広大な空間を考慮すると、予測モデルを生成することへの専門家アプローチは、時間がかかり、モデル化検索空間の大部分を未探索のままにする傾向がある。分析者は、自分の直感または以前の経験、および広範な試行錯誤試験に基づいて、その場限りの様式でモデル化空間を探索する傾向がある。彼らは、いくつかの潜在的に有用な探索手段を追求しない、または最初の労力の結果に応答して適切に検索を調節しない場合がある。さらに、試行錯誤試験の範囲は、専門家アプローチが、概して、モデル化検索空間のわずかな部分のみを探索するように、分析者の時間に対する制約によって制限される傾向がある。
【０００９】
専門家アプローチはまた、非常に高価であり得る。専門家アプローチを介して予測モデルを開発することは、多くの場合、計算リソースおよび高賃金のデータ分析者への多額の投資を伴う。これらの多額の費用を考慮すると、団体は、多くの場合、安価であり得るが、本広大な予測モデル化空間のわずかな部分のみ（例えば、規定予測問題への容認可能な解決策を含有することが先験的に予期される、モデル化空間の一部）を探索する傾向がある、大量生産アプローチを支持して、専門家アプローチを控える。大量生産アプローチは、未探索オプションに対して不完全に機能する予測モデルを生成し得る。
【００１０】
予測問題のための潜在的予測モデル化技法の空間を系統的かつ費用効果的に評価する、ツールの必要性がある。多くの方法で、予測モデルを生成することへの従来のアプローチは、貴重な資源（例えば、石油、金、鉱物、宝石等）を探査することに類似する。探査は、いくつかの貴重な発見につながり得るが、以前の結果の広範なライブラリに基づく、慎重に計画された探索的採掘または掘削と組み合わせた地質調査よりはるかに効率が低い。本発明者らは、予測問題のための潜在的予測モデル化ソリューションの空間を統計的かつ費用効果的に評価するために、統計的学習技法が使用され得ることを認識および理解している。
【００１１】
概要
本開示の側面によると、予測問題のための予測モデルを選択するための方法が提供され、本方法は、少なくとも部分的に、予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップと、少なくとも部分的に、予測問題の選択されたモデル化プロシージャの判定された好適性に基づいて、予測モデル化プロシージャの少なくともサブセットを選択するステップと、命令を複数の処理ノードに伝送するステップであって、命令は、選択されたモデル化プロシージャの実行のために処理ノードのリソースを割り付ける、リソース割付スケジュールを備え、リソース割付スケジュールは、少なくとも部分的に、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づく、ステップと、リソース割付スケジュールに従った複数の処理ノードによる選択されたモデル化プロシージャの実行の結果を受信するステップであって、結果は、選択されたモデル化プロシージャによって生成される予測モデル、および／または予測問題と関連付けられるデータのモデルのスコアを含む、ステップと、生成された予測モデルから、少なくとも部分的に予測モデルのスコアに基づいて、予測問題のための予測モデルを選択するステップとを含む。
【００１２】
いくつかの実施形態では、少なくとも部分的に予測問題の特性に基づいて、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップは、少なくとも部分的に、予測問題と関連付けられるデータの１つまたはそれを上回る特性、予測問題と関連付けられるデータ内の１つまたはそれを上回る変数の間の１つまたはそれを上回る関係、および／もしくは予測問題の主題に基づいて、複数の予測モデル化プロシージャのうちの少なくとも１つの好適性を判定するステップを含む。
【００１３】
いくつかの実施形態では、予測問題と関連付けられるデータの１つまたはそれを上回る特性は、データの幅、データの高さ、データの疎性、データの密度、データのソース、データ内の標的の数、および／またはデータ内の特徴の数を備える。
【００１４】
いくつかの実施形態では、予測問題と関連付けられるデータの１つまたはそれを上回る特性は、１つまたはそれを上回る分布、データタイプ、および／もしくはデータ内の１つまたはそれを上回る変数の範囲を備える。
【００１５】
いくつかの実施形態では、データ内の１つまたはそれを上回る変数の間の１つまたはそれを上回る関係は、データ内の１つまたはそれを上回る標的に対する１つまたはそれを上回る特徴の可変重要性、および／もしくはデータ内の２つまたはそれを上回る特徴の間の統計的関係を備える。
【００１６】
いくつかの実施形態では、少なくとも部分的にそれぞれのモデル化プロシージャの属性に基づいて、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップは、少なくとも部分的に、予測モデル化プロシージャによって行われる１つまたはそれを上回るデータ処理技法、および／もしくは予測モデル化プロシージャによって課される１つまたはそれを上回るデータ処理制約に基づいて、複数の予測モデル化プロシージャのうちの少なくとも１つの好適性を判定するステップを含む。
【００１７】
いくつかの実施形態では、予測モデル化プロシージャによって行われる１つまたはそれを上回るデータ処理技法は、テキストマイニング、特徴正規化、および／もしくは次元縮小を含む。
【００１８】
いくつかの実施形態では、予測モデル化プロシージャによって課される１つまたはそれを上回るデータ処理制約は、次元、標的の特性、および／または予測問題と関連付けられるデータの特徴の特性に対する制約を含む。
【００１９】
いくつかの実施形態では、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップは、予測問題の特性と排除されたプロシージャの属性との間の１つまたはそれを上回る関係に基づいて、考慮から少なくとも１つの予測モデル化プロシージャを排除するステップを含む。
【００２０】
いくつかの実施形態では、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップは、予測問題の特性と少なくとも１つの予測モデル化プロシージャの属性との間の１つまたはそれを上回る関係に基づいて、好適性値を少なくとも１つの予測モデル化プロシージャに割り当てるステップを含む。
【００２１】
いくつかの実施形態では、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップは、少なくとも部分的に、予測問題の特性と１つまたはそれを上回る予測問題の特性との間の類似性に基づいて、１つまたはそれを上回る予測問題を選択するステップと、少なくとも部分的に、第１の予測モデル化プロシージャと１つまたはそれを上回る予測モデル化プロシージャとの間の類似性に基づいて、１つまたはそれを上回る予測モデル化プロシージャを選択するステップと、１つまたはそれを上回る予測モデル化プロシージャを１つまたはそれを上回る予測問題に適用することの結果を示す、データを処理するステップとを含む、予測問題のための複数の予測モデル化プロシージャのうちの第１のものの好適性を判定するステップを含む。
【００２２】
いくつかの実施形態では、少なくとも部分的に、予測問題の特性と１つまたはそれを上回る予測問題の特性との間の類似性に基づいて、１つまたはそれを上回る予測問題を選択するステップは、少なくとも部分的に、予測問題と関連付けられるデータの特性と１つまたはそれを上回る予測問題と関連付けられるデータの特性との間の類似性に基づいて、１つまたはそれを上回る予測問題を選択するステップを含む。
【００２３】
いくつかの実施形態では、予測問題のための第１の予測モデル化プロシージャの好適性を判定するステップはさらに、少なくとも部分的に、第１のモデル化プロシージャおよび１つまたはそれを上回るモデル化プロシージャによって行われる処理ステップに基づいて、第１のモデル化プロシージャと１つまたはそれを上回るモデル化プロシージャとの間の類似性を判定するステップを含む。
【００２４】
いくつかの実施形態では、第１のモデル化プロシージャは、モデル化プロシージャ群の構成要素であり、第１のモデル化プロシージャと１つまたはそれを上回るモデル化プロシージャとの間の類似性に基づいて、１つまたはそれを上回る予測モデル化プロシージャを選択するステップは、少なくとも部分的に、同一のモデル化プロシージャ群の構成要素である、１つまたはそれを上回るモデル化プロシージャに基づいて、１つまたはそれを上回るモデル化プロシージャを選択するステップを含む。
【００２５】
いくつかの実施形態では、１つまたはそれを上回るモデル化プロシージャを１つまたはそれを上回る予測問題に適用することの結果を示すデータは、１つまたはそれを上回る予測問題のための１つまたはそれを上回る予測モデル化プロシージャの好適性値を含む。
【００２６】
いくつかの実施形態では、１つまたはそれを上回る予測モデル化プロシージャは、第１の予測モデル化プロシージャから成る。
【００２７】
いくつかの実施形態では、１つまたはそれを上回るモデル化プロシージャを１つまたはそれを上回る予測問題に適用することの結果を示す、データを処理するステップは、１つまたはそれを上回るモデル化プロシージャを１つまたはそれを上回る予測問題に適用することの結果を示すデータに、第２の予測モデル化プロシージャを適用することによって、予測問題のための第１の予測モデル化プロシージャの好適性を予測するステップを含む。
【００２８】
いくつかの実施形態では、本方法はさらに、予測問題のインスタンスの成果を予測するために、選択された予測モデルを使用するステップであって、選択された予測モデルは、予測モデル化プロシージャのうちの第１のものによって生成される、ステップと、少なくとも部分的に、予測された成果と予測問題のインスタンスの実際の成果との間の関係に基づいて、第１の予測モデル化プロシージャを予測問題に適用することの結果を示すデータを更新するステップとを含む。
【００２９】
いくつかの実施形態では、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップはさらに、少なくとも部分的にユーザ入力に基づく。
【００３０】
いくつかの実施形態では、複数の予測モデル化プロシージャの好適性を判定するステップは、好適性スコアをそれぞれのモデル化プロシージャに割り当てるステップを含み、予測モデル化プロシージャの少なくともサブセットを選択するステップは、閾値好適性スコアを超える好適性スコアを有する、１つまたはそれを上回る予測モデル化プロシージャを選択するステップを含む。
【００３１】
いくつかの実施形態では、本方法はさらに、少なくとも部分的に、選択されたモデル化プロシージャの実行のために利用可能な処理リソースの量に基づいて、閾値好適性スコアを判定するステップを含む。
【００３２】
いくつかの実施形態では、複数の予測モデル化プロシージャの好適性を判定するステップは、好適性スコアをそれぞれのモデル化プロシージャに割り当てるステップを含み、予測モデル化プロシージャの少なくともサブセットを選択するステップは、予測問題のための予測モデル化プロシージャのうちのいずれかに割り当てられる、最高好適性スコアの規定範囲内の好適性スコアを有する、１つまたはそれを上回る予測モデル化プロシージャを選択するステップを含む。
【００３３】
いくつかの実施形態では、本方法はさらに、少なくとも部分的に、選択されたモデル化プロシージャの実行のために利用可能な処理リソースの量に基づいて、規定範囲を判定するステップを含む。
【００３４】
いくつかの実施形態では、予測モデル化プロシージャの少なくともサブセットを選択するステップは、最高好適性スコアを有する、予測モデル化プロシージャのほぼ規定部分を選択するステップを含む。
【００３５】
いくつかの実施形態では、本方法はさらに、少なくとも部分的に、選択されたモデル化プロシージャの実行のために利用可能な処理リソースの量に基づいて、規定部分を判定するステップを含む。
【００３６】
いくつかの実施形態では、予測モデル化プロシージャの少なくともサブセットを選択するステップは、少なくとも部分的にユーザ入力に基づいて、少なくとも１つの予測モデルを選択するステップを含む。
【００３７】
いくつかの実施形態では、処理ノードの割り付けられたリソースは、処理ノードの実行サイクル、処理ノードの実行時間、および／または処理ノードのコンピュータ可読記憶装置を備える。
【００３８】
いくつかの実施形態では、処理ノードは、１つまたはそれを上回るクラウドベースの処理ノードを備える。
【００３９】
いくつかの実施形態では、選択されたモデル化プロシージャは、それぞれ、予測された問題の第１および第２の好適性を有すると判定される、第１および第２のモデル化プロシージャを備え、第１のモデル化プロシージャの第１の好適性は、第２のモデル化プロシージャの第２の好適性より大きく、リソース割付スケジュールは、少なくとも部分的に第１および第２の好適性に基づいて、処理ノードのリソースを第１および第２のモデル化プロシージャに割り付ける。
【００４０】
いくつかの実施形態では、リソース割付スケジュールは、少なくとも部分的に、第２のモデルの第２の好適性より優れた第１のモデルの第１の好適性に基づいて、処理ノードリソースの一部を第１のモデル化プロシージャに、処理ノードリソースのより小さい部分を第２のモデル化プロシージャに割り付ける。
【００４１】
いくつかの実施形態では、リソース割付スケジュールは、それぞれ、第１および第２の時間において、処理ノード上の第１および第２のモデル化プロシージャの実行をスケジュールに入れ、第２の時間は、少なくとも部分的に、第２のモデル化プロシージャの第２の好適性より優れた第１のモデル化プロシージャの第１の好適性に基づいて、第１の時間の後にある。
【００４２】
いくつかの実施形態では、リソース割付スケジュールは、第１のデータセット上で第１のモデル化プロシージャを実行するために十分な処理ノードリソースの第１の部分を第１のモデル化プロシージャに割り付け、第２のデータセット上で第２のモデル化プロシージャを実行するために十分な処理ノードリソースの第２の部分を第２のモデル化プロシージャに割り付け、第２のデータセットは、第１のデータセットより小さい。
【００４３】
いくつかの実施形態では、本方法はさらに、少なくとも部分的に、第１のモデル化プロシージャと関連付けられるメタデータであって、第１のモデル化プロシージャの処理リソース利用特性および／または並列性特性を示す、メタデータに基づいて、第１のデータセット上で第１のモデル化プロシージャを実行するために十分な処理リソースの量を判定するステップを含む。
【００４４】
いくつかの実施形態では、本方法はさらに、選択されたモデル化プロシージャを実行するための時間的および／またはリソース予算を示す、予算データを受信するステップを含み、リソース割付スケジュールは、時間的および／またはリソース予算に従って処理ノードのリソースを割り付ける。
【００４５】
いくつかの実施形態では、選択された予測モデル化プロシージャの実行の結果は、生成されたモデルを予測問題と関連付けられるデータの第１の部分に適合させ、予測問題と関連付けられるデータの第２の部分で適合モデルを試験することの結果を含む。
【００４６】
いくつかの実施形態では、選択された予測モデル化プロシージャによって生成されるモデルをデータの第１の部分に適合させるステップは、選択されたモデル化プロシージャの１つまたはそれを上回るパラメータ、および／もしくは生成されたモデルの１つまたはそれを上回るパラメータを調整するステップを含む。
【００４７】
いくつかの実施形態では、選択された予測モデル化技法の実行の結果はさらに、予測問題と関連付けられるデータの異なる層を使用して、生成されたモデルを交差検証することの結果を含む。
【００４８】
いくつかの実施形態では、少なくとも部分的に選択されたモデルのスコアに基づいて、予測問題のため選択された予測モデル化プロシージャによって生成される予測モデルを選択するステップは、閾値スコアを超えるスコアを有するモデルを選択するステップを含む。
【００４９】
いくつかの実施形態では、少なくとも部分的に選択されたモデルのスコアに基づいて、予測問題のための選択された予測モデル化プロシージャによって生成される予測モデルを選択するステップは、生成されたモデルのうちのいずれかの最高スコアの規定範囲内のスコアを有する、モデルを選択するステップを含む。
【００５０】
いくつかの実施形態では、本方法はさらに、選択された予測モデル化プロシージャによって生成されるモデルのうちの２つまたはそれを上回るものを組み合わせることによって、混合予測モデルを生成するステップと、混合予測モデルを評価するステップとを含む。
【００５１】
いくつかの実施形態では、本方法はさらに、選択された予測モデル化プロシージャによって生成されるモデルのスコアを反復して受信するステップと、時間的および／またはリソース予算が使用される、もしくは生成されたモデルのスコアが閾値スコアを超えるまで、少なくとも部分的にスコアに基づいて、予測問題のための選択された予測モデル化プロシージャの好適性を再判定するステップとを含む。
【００５２】
本開示の別の側面によると、プロセッサ実行可能命令を記憶するように構成されるメモリと、プロセッサ実行可能命令を実行するように構成されるプロセッサとを備える、予測モデル化装置が提供され、プロセッサ実行可能命令を実行するステップは、装置に、少なくとも部分的に、予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップと、少なくとも部分的に、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づいて、予測モデル化プロシージャの少なくともサブセットを選択するステップと、命令を複数の処理ノードに伝送するステップであって、命令は、選択されたモデル化プロシージャの実行のために処理ノードのリソースを割り付ける、リソース割付スケジュールを備え、リソース割付スケジュールは、少なくとも部分的に、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づく、ステップと、リソース割付スケジュールに従った複数の処理ノードによる選択されたモデル化プロシージャの実行の結果を受信するステップであって、結果は、選択されたモデル化プロシージャによって生成される予測モデル、および／または予測問題と関連付けられるデータのためのモデルのスコアを含む、ステップと、生成された予測モデルから、少なくとも部分的に予測モデルのスコアに基づいて、予測問題のための予測モデルを選択するステップとを含む、方法を行わせる。
【００５３】
本開示の別の側面によると、製造品が提供され、製造品は、少なくとも部分的に、予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて、予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップと、少なくとも部分的に、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づいて、予測モデル化プロシージャの少なくともサブセットを選択するステップと、命令を複数の処理ノードに伝送するステップであって、命令は、選択されたモデル化プロシージャの実行のために処理ノードのリソースを割り付ける、リソース割付スケジュールを備え、リソース割付スケジュールは、少なくとも部分的に、予測問題のための選択されたモデル化プロシージャの判定された好適性に基づく、ステップと、リソース割付スケジュールに従った複数の処理ノードによる選択されたモデル化プロシージャの実行の結果を受信するステップであって、結果は、選択されたモデル化プロシージャによって生成される予測モデル、および／または予測問題と関連付けられるデータのためのモデルのスコアを含む、ステップと、生成された予測モデルから、少なくとも部分的に予測モデルのスコアに基づいて、予測問題のための予測モデルを選択するステップとのために、その上に記憶されたコンピュータ可読命令を有する。
【００５４】
本発明の他の側面および利点は、全て一例のみとして本発明の原理を例証する、以下の図面、発明を実施するための形態、ならびに特許請求の範囲から明白となるであろう。
本発明は、例えば、以下を提供する。
（項目１）
予測問題のための予測モデルを選択するための方法であって、前記方法は、
少なくとも部分的に、前記予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて、前記予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップと、
少なくとも部分的に、前記予測問題の前記選択されたモデル化プロシージャの前記判定された好適性に基づいて、前記予測モデル化プロシージャの少なくともサブセットを選択するステップと、
命令を複数の処理ノードに伝送するステップであって、前記命令は、前記選択されたモデル化プロシージャの実行のために前記処理ノードのリソースを割り付ける、リソース割付スケジュールを備え、前記リソース割付スケジュールは、少なくとも部分的に、前記予測問題のための前記選択されたモデル化プロシージャの前記判定された好適性に基づく、ステップと、
前記リソース割付スケジュールに従った前記複数の処理ノードによる前記選択されたモデル化プロシージャの前記実行の結果を受信するステップであって、前記結果は、前記選択されたモデル化プロシージャによって生成される予測モデル、および／または前記予測問題と関連付けられるデータの前記モデルのスコアを含む、ステップと、
前記生成された予測モデルから、少なくとも部分的に前記予測モデルの前記スコアに基づいて、前記予測問題のための予測モデルを選択するステップと、
を含む、方法。
（項目２）
前記予測問題のための前記複数の予測モデル化プロシージャの前記好適性を判定するステップは、前記予測問題の前記特性と排除されたプロシージャの前記属性との間の１つまたはそれを上回る関係に基づいて、考慮から少なくとも１つの予測モデル化プロシージャを排除するステップを含む、項目１に記載の方法。
（項目３）
前記予測問題のための前記複数の予測モデル化プロシージャの前記好適性を判定するステップは、前記予測問題の前記特性と少なくとも１つの予測モデル化プロシージャの前記属性との間の１つまたはそれを上回る関係に基づいて、好適性値を前記少なくとも１つの予測モデル化プロシージャに割り当てるステップを含む、項目１に記載の方法。
（項目４）
前記予測問題のための前記複数の予測モデル化プロシージャの前記好適性を判定するステップは、
少なくとも部分的に、前記予測問題の特性と前記１つまたはそれを上回る予測問題の特性との間の類似性に基づいて、１つまたはそれを上回る予測問題を選択するステップと、
少なくとも部分的に、第１の予測モデル化プロシージャと前記１つまたはそれを上回る予測モデル化プロシージャとの間の類似性に基づいて、１つまたはそれを上回る予測モデル化プロシージャを選択するステップと、
前記１つまたはそれを上回る予測モデル化プロシージャを前記１つまたはそれを上回る予測問題に適用することの結果を示す、データを処理するステップと、
を含む、
前記予測問題のための前記複数の予測モデル化プロシージャのうちの前記第１のものの好適性を判定するステップを含む、項目１に記載の方法。
（項目５）
少なくとも部分的に、前記予測問題の特性と前記１つまたはそれを上回る予測問題の特性との間の類似性に基づいて、前記１つまたはそれを上回る予測問題を選択するステップは、少なくとも部分的に、前記予測問題と関連付けられるデータの特性と前記１つまたはそれを上回る予測問題と関連付けられるデータの特性との間の類似性に基づいて、前記１つまたはそれを上回る予測問題を選択するステップを含む、項目４に記載の方法。
（項目６）
前記予測問題のための前記第１の予測モデル化プロシージャの前記好適性を判定するステップはさらに、少なくとも部分的に、前記第１のモデル化プロシージャおよび前記１つまたはそれを上回るモデル化プロシージャによって行われる処理ステップに基づいて、前記第１のモデル化プロシージャと前記１つまたはそれを上回るモデル化プロシージャとの間の前記類似性を判定するステップを含む、項目４に記載の方法。
（項目７）
前記１つまたはそれを上回るモデル化プロシージャを前記１つまたはそれを上回る予測問題に適用することの結果を示す、前記データを処理するステップは、前記１つまたはそれを上回るモデル化プロシージャを前記１つまたはそれを上回る予測問題に適用することの結果を示す前記データに、第２の予測モデル化プロシージャを適用することによって、前記予測問題のための前記第１の予測モデル化プロシージャの前記好適性を予測するステップを含む、項目４に記載の方法。
（項目８）
前記予測問題のインスタンスの成果を予測するために、前記選択された予測モデルを使用するステップであって、前記選択された予測モデルは、前記予測モデル化プロシージャのうちの第１のものによって生成される、ステップと、
少なくとも部分的に、前記予測された成果と前記予測問題の前記インスタンスの実際の成果との間の関係に基づいて、前記第１の予測モデル化プロシージャを前記予測問題に適用することの結果を示すデータを更新するステップと、
をさらに含む、項目７に記載の方法。
（項目９）
前記複数の予測モデル化プロシージャの前記好適性を判定するステップは、好適性スコアをそれぞれのモデル化プロシージャに割り当てるステップを含み、前記予測モデル化プロシージャの少なくともサブセットを選択するステップは、閾値好適性スコアを超える好適性スコアを有する、１つまたはそれを上回る予測モデル化プロシージャを選択するステップを含む、項目１に記載の方法。
（項目１０）
少なくとも部分的に、前記選択されたモデル化プロシージャの実行のために利用可能な処理リソースの量に基づいて、前記閾値好適性スコアを判定するステップをさらに含む、項目９に記載の方法。
（項目１１）
前記複数の予測モデル化プロシージャの前記好適性を判定するステップは、好適性スコアをそれぞれのモデル化プロシージャに割り当てるステップを含み、前記予測モデル化プロシージャの少なくともサブセットを選択するステップは、前記予測問題のための前記予測モデル化プロシージャのうちのいずれかに割り当てられる、最高好適性スコアの規定範囲内の好適性スコアを有する、１つまたはそれを上回る予測モデル化プロシージャを選択するステップを含む、項目１に記載の方法。
（項目１２）
前記予測モデル化プロシージャの少なくともサブセットを選択するステップは、最高好適性スコアを有する、前記予測モデル化プロシージャのほぼ規定部分を選択するステップを含む、項目１に記載の方法。
（項目１３）
前記予測モデル化プロシージャの少なくともサブセットを選択するステップは、少なくとも部分的にユーザ入力に基づいて、少なくとも１つの予測モデルを選択するステップを含む、項目１に記載の方法。
（項目１４）
前記処理ノードの前記割り付けられたリソースは、前記処理ノードの実行サイクル、前記処理ノードの実行時間、および／または前記処理ノードのコンピュータ可読記憶装置を備える、項目１に記載の方法。
（項目１５）
前記処理ノードは、１つまたはそれを上回るクラウドベースの処理ノードを備える、項目１に記載の方法。
（項目１６）
前記選択されたモデル化プロシージャは、それぞれ、予測された問題の第１および第２の好適性を有すると判定される、第１および第２のモデル化プロシージャを備え、前記第１のモデル化プロシージャの前記第１の好適性は、前記第２のモデル化プロシージャの前記第２の好適性より大きく、前記リソース割付スケジュールは、少なくとも部分的に前記第１および第２の好適性に基づいて、前記処理ノードのリソースを前記第１および第２のモデル化プロシージャに割り付ける、項目１に記載の方法。
（項目１７）
前記リソース割付スケジュールは、少なくとも部分的に、前記第２のモデルの前記第２の好適性より優れた前記第１のモデルの前記第１の好適性に基づいて、前記処理ノードリソースの一部を前記第１のモデル化プロシージャに、前記処理ノードリソースのより小さい部分を前記第２のモデル化プロシージャに割り付ける、項目１６に記載の方法。
（項目１８）
前記リソース割付スケジュールは、それぞれ、第１および第２の時間において、前記処理ノード上の前記第１および第２のモデル化プロシージャの実行をスケジュールに入れ、前記第２の時間は、少なくとも部分的に、前記第２のモデル化プロシージャの前記第２の好適性より優れた前記第１のモデル化プロシージャの前記第１の好適性に基づいて、前記第１の時間の後にある、項目１６に記載の方法。
（項目１９）
前記リソース割付スケジュールは、第１のデータセット上で前記第１のモデル化プロシージャを実行するために十分な前記処理ノードリソースの第１の部分を前記第１のモデル化プロシージャに割り付け、第２のデータセット上で前記第２のモデル化プロシージャを実行するために十分な前記処理ノードリソースの第２の部分を前記第２のモデル化プロシージャに割り付け、前記第２のデータセットは、前記第１のデータセットより小さい、項目１６に記載の方法。
（項目２０）
少なくとも部分的に、前記第１のモデル化プロシージャと関連付けられるメタデータに基づいて、前記第１のデータセット上で前記第１のモデル化プロシージャを実行するために十分な前記処理リソースの量を判定するステップをさらに含み、前記メタデータは、前記第１のモデル化プロシージャの処理リソース利用特性および／または並列性特性を示す、項目１９に記載の方法。
（項目２１）
前記選択されたモデル化プロシージャを実行するための時間的および／またはリソース予算を示す、予算データを受信するステップをさらに含み、前記リソース割付スケジュールは、前記時間的および／またはリソース予算に従って前記処理ノードのリソースを割り付ける、項目１に記載の方法。
（項目２２）
前記選択された予測モデル化プロシージャの実行の結果は、前記生成されたモデルを前記予測問題と関連付けられる前記データの第１の部分に適合させ、前記予測問題と関連付けられる前記データの第２の部分で前記適合モデルを試験することの結果を含む、項目１に記載の方法。
（項目２３）
前記選択された予測モデル化プロシージャによって生成される前記モデルを前記データの第１の部分に適合させるステップは、前記選択されたモデル化プロシージャの１つまたはそれを上回るパラメータ、および／もしくは前記生成されたモデルの１つまたはそれを上回るパラメータを調整するステップを含む、項目２２に記載の方法。
（項目２４）
前記選択された予測モデル化技法の実行の前記結果はさらに、前記予測問題と関連付けられる前記データの異なる層を使用して、前記生成されたモデルを交差検証することの結果を含む、項目２２に記載の方法。
（項目２５）
少なくとも部分的に前記選択されたモデルの前記スコアに基づいて、前記予測問題のための前記選択された予測モデル化プロシージャによって生成される予測モデルを選択するステップは、閾値スコアを超えるスコアを有するモデルを選択するステップを含む、項目１に記載の方法。
（項目２６）
少なくとも部分的に前記選択されたモデルの前記スコアに基づいて、前記予測問題のための前記選択された予測モデル化プロシージャによって生成される予測モデルを選択するステップは、前記生成されたモデルのうちのいずれかの最高スコアの規定範囲内のスコアを有する、モデルを選択するステップを含む、項目１に記載の方法。
（項目２７）
前記選択された予測モデル化プロシージャによって生成される前記モデルのうちの２つまたはそれを上回るものを組み合わせることによって、混合予測モデルを生成するステップと、前記混合予測モデルを評価するステップとをさらに含む、項目１に記載の方法。
（項目２８）
前記選択された予測モデル化プロシージャによって生成される前記モデルの前記スコアを反復して受信するステップと、時間的および／またはリソース予算が使用される、もしくは生成されたモデルのスコアが閾値スコアを超えるまで、少なくとも部分的に前記スコアに基づいて、前記予測問題のための前記選択された予測モデル化プロシージャの前記好適性を再判定するステップとをさらに含む、項目１に記載の方法。
（項目２９）
プロセッサ実行可能命令を記憶するように構成されるメモリと、
前記プロセッサ実行可能命令を実行するように構成されるプロセッサであって、前記プロセッサ実行可能命令を実行するステップは、前記装置に、
少なくとも部分的に、予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて、前記予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップと、
少なくとも部分的に、前記予測問題のための前記選択されたモデル化プロシージャの前記判定された好適性に基づいて、前記予測モデル化プロシージャの少なくともサブセットを選択するステップと、
命令を複数の処理ノードに伝送するステップであって、前記命令は、前記選択されたモデル化プロシージャの実行のために前記処理ノードのリソースを割り付ける、リソース割付スケジュールを備え、前記リソース割付スケジュールは、少なくとも部分的に、前記予測問題のための前記選択されたモデル化プロシージャの前記判定された好適性に基づく、ステップと、
前記リソース割付スケジュールに従った前記複数の処理ノードによる前記選択されたモデル化プロシージャの前記実行の結果を受信するステップであって、前記結果は、前記選択されたモデル化プロシージャによって生成される予測モデル、および／または前記予測問題と関連付けられるデータのための前記モデルのスコアを含む、ステップと、
前記生成された予測モデルから、少なくとも部分的に前記予測モデルの前記スコアに基づいて、前記予測問題のための予測モデルを選択するステップと、
を含む、方法を行わせる、プロセッサと、
を備える、予測モデル化装置。
（項目３０）
少なくとも部分的に、予測問題の特性および／またはそれぞれのモデル化プロシージャの属性に基づいて、前記予測問題のための複数の予測モデル化プロシージャの好適性を判定するステップと、
少なくとも部分的に、前記予測問題のための前記選択されたモデル化プロシージャの前記判定された好適性に基づいて、前記予測モデル化プロシージャの少なくともサブセットを選択するステップと、
命令を複数の処理ノードに伝送するステップであって、前記命令は、前記選択されたモデル化プロシージャの実行のために前記処理ノードのリソースを割り付ける、リソース割付スケジュールを備え、前記リソース割付スケジュールは、少なくとも部分的に、前記予測問題のための前記選択されたモデル化プロシージャの前記判定された好適性に基づく、ステップと、
前記リソース割付スケジュールに従った前記複数の処理ノードによる前記選択されたモデル化プロシージャの前記実行の結果を受信するステップであって、前記結果は、前記選択されたモデル化プロシージャによって生成される予測モデル、および／または前記予測問題と関連付けられるデータのための前記モデルのスコアを含む、ステップと、
前記生成された予測モデルから、少なくとも部分的に前記予測モデルの前記スコアに基づいて、前記予測問題のための予測モデルを選択するステップと、
のために、その上に記憶されたコンピュータ可読命令を有する、製造品。
【図面の簡単な説明】
【００５５】
いくつかの実施形態の利点は、添付図面と併せて解釈される以下の説明を参照することによって、理解され得る。図面では、類似参照文字は、概して、異なる図の全体を通して同一の部品を指す。また、図面は、必ずしも一定の縮尺ではなく、代わりに、概して、本発明のいくつかの原理を例証することが強調されている。
【図１】図１は、いくつかの実施形態による、予測モデル化システムのブロック図である。
【図２】図２は、いくつかの実施形態による、予測モデル化タスク、技法、および方法を符号化する、機械実行可能テンプレートを構築するためのモデル化ツールのブロック図である。
【図３】図３は、いくつかの実施形態による、予測問題のための予測モデルを選択するための方法のフローチャートである。
【図４】図４は、いくつかの実施形態による、予測問題のための予測モデルを選択するための方法の別のフローチャートである。
【図５】図５は、いくつかの実施形態による、予測モデル化システムの概略図である。
【図６】図６は、いくつかの実施形態による、予測モデル化システムの別のブロック図である。
【図７】図７は、いくつかの実施形態による、予測モデル化システムの構成要素の間の通信を図示する。
【図８】図８は、いくつかの実施形態による、予測モデル化システムの別の概略図である。
【発明を実施するための形態】
【００５６】
予測モデル化システムの概観
図１を参照すると、いくつかの実施形態では、予測モデル化システム１００は、予測モデル化探索エンジン１１０と、ユーザインターフェース１２０と、予測モデル化技法のライブラリ１３０と、予測モデル展開エンジン１４０とを含む。探索エンジン１１０は、規定予測問題に好適な予測モデル化ソリューションを生成するように、予測モデル化検索空間を効率的に探索する（例えば、前処理ステップ、モデル化アルゴリズム、および後処理ステップの潜在的組み合わせ）ための検索技法（または「モデル化方法」）を実装してもよい。検索技法は、どの予測モデル化技法が予測問題のための好適な解決策を提供する可能性が高いかという初期評価を含んでもよい。いくつかの実施形態では、検索技法は、（例えば、データセットの増加する部分を使用する）検索空間の漸進的評価と、（例えば、一貫した測定基準を使用する）予測問題のための異なるモデル化ソリューションの好適性の一貫した比較とを含む。いくつかの実施形態では、検索技法は、以前の検索の結果に基づいて適応し、経時的に検索技法の有効性を向上させることができる。
【００５７】
探索エンジン１１０は、検索空間内で潜在的モデル化ソリューションを評価するために、モデル化技法のライブラリ１３０を使用してもよい。いくつかの実施形態では、モデル化技法ライブラリ１３０は、完全なモデル化技法を符号化する、機械実行可能テンプレートを含む。機械実行可能テンプレートは、１つまたはそれを上回る予測モデル化アルゴリズムを含んでもよい。いくつかの実施形態では、テンプレートに含まれるモデル化アルゴリズムは、ある方法で関係付けられてもよい。例えば、モデル化アルゴリズムは、同一のモデル化アルゴリズムの変異形、またはモデル化アルゴリズム族の構成要素であってもよい。いくつかの実施形態では、機械実行可能テンプレートはさらに、テンプレートのアルゴリズムとともに使用するために好適な１つまたはそれを上回る前処理および／もしくは後処理ステップを含む。アルゴリズム、前処理ステップ、および／または後処理ステップは、パラメータ化されてもよい。機械実行可能テンプレートは、データセットによって表される予測問題のための潜在的予測モデル化ソリューションを生成するように、ユーザデータセットに適用されてもよい。
【００５８】
探索エンジン１１０は、検索空間またはその部分を探索するために、分散型コンピュータシステムの計算リソースを使用してもよい。いくつかの実施形態では、探索エンジン１１０は、分散型コンピュータシステムのリソースを使用して、検索を効率的に実行するための検索計画を生成し、分散型コンピュータシステムは、検索計画に従って検索を実行する。分散型コンピュータシステムは、限定ではないが、予測モデル化技法の待ち行列および監視のため、コンピュータシステムのリソースの仮想化のため、データベースにアクセスするため、検索計画を分割し、コンピュータシステムのリソースをモデル化技法の評価に割り付けるため、実行結果を収集して編成するため、ユーザ入力を受け入れるため等のインターフェースを含む、検索計画に従って予測モデル化ソリューションの実行を促進するインターフェースを提供してもよい。
【００５９】
ユーザインターフェース１２０は、予測モデル化空間の検索を監視および／または誘導するためのツールを提供する。これらのツールは、（例えば、データセットの中の問題のある変数を強調表示すること、データセットの中の変数の間の関係を識別すること等によって）予測問題のデータセットについての洞察、および／または検索の結果についての洞察を提供してもよい。いくつかの実施形態では、データ分析者は、例えば、モデル化ソリューションを評価して比較するために使用される測定基準を規定することによって、好適なモデル化ソリューションを認識するための基準を特定することによって等、検索を誘導するためにインターフェースを使用してもよい。したがって、ユーザインターフェースは、独自の生産性を向上させるために、および／または探索エンジン１１０の性能を向上させるために、分析者によって使用されてもよい。いくつかの実施形態では、ユーザインターフェース１２０は、リアルタイムで検索の結果を提示し、リアルタイムで（例えば、検索の範囲、または異なるモデル化ソリューションの評価の間のリソースの割付を調節するように）ユーザが検索を誘導することを可能にする。いくつかの実施形態では、ユーザインターフェース１２０は、同一の予測問題および／または関連予測問題に取り組む複数のデータ分析者の労力を調整するためのツールを提供する。
【００６０】
いくつかの実施形態では、ユーザインターフェース１２０は、モデル化技法のライブラリ１３０のための機械実行可能テンプレートを開発するためのツールを提供する。システムユーザは、既存のテンプレートを修正するため、新しいテンプレートを作成するため、またはライブラリ１３０からテンプレートを除去するために、これらのツールを使用してもよい。このようにして、システムユーザは、予測モデル化研究の進歩を反映するように、および／または専用予測モデル化技法を含むように、ライブラリ１３０を更新してもよい。
【００６１】
モデル展開エンジン１４０は、動作環境内で予測モデル（例えば、探索エンジン１１０によって生成される予測モデル）を展開するためのツールを提供する。いくつかの実施形態では、モデル展開エンジンはまた、予測モデルを監視および／または更新するためのツールも提供する。システムユーザは、探索エンジン１１０によって生成される予測モデルを展開するため、そのような予測モデルの性能を監視するため、および（例えば、新しいデータまたは予測モデル化技法の進歩に基づいて）そのようなモデルを更新するために、展開エンジン１４０を使用してもよい。いくつかの実施形態では、探索エンジン１１０は、（例えば、予測問題のための基礎的データセットの変更に応答して、予測モデルを再適合または調整するように）予測問題のための検索空間の探索を誘導するために、（例えば、展開された予測モデルの性能を監視することの結果に基づいて）展開エンジン１４０によって収集および／または生成されるデータを使用してもよい。
【００６２】
予測モデル化システム１００のこれらおよび他の側面が、以下でさらに詳細に説明される。
【００６３】
モデル化技法のライブラリ
予測モデル化技法のライブラリ１３０は、完全予測モデル化技法を符号化する機械実行可能テンプレートを含む。いくつかの実施形態では、機械実行可能テンプレートは、１つまたはそれを上回る予測モデル化アルゴリズムと、アルゴリズムとともに使用するために好適なゼロまたはそれを上回る前処理ステップと、アルゴリズムとともに使用するために好適なゼロまたはそれを上回る後処理ステップとを含む。アルゴリズム、前処理ステップ、および／または後処理ステップは、パラメータ化されてもよい。機械実行可能テンプレートは、データセットによって表される予測問題のための潜在的予測モデル化ソリューションを生成するように、データセットに適用されてもよい。
【００６４】
テンプレートは、機械実行のために、テンプレートの予測モデル化アルゴリズムとともに使用するために好適な前処理ステップ、モデル適合ステップ、および／または後処理ステップを符号化してもよい。前処理ステップの実施例は、限定ではないが、欠測値を入力すること、特徴工学（例えば、ワンホットエンコーディング、スプライン、テキストマイニング等）、特徴選択（例えば、情報を与えない特徴を棄却すること、高度相関特徴を棄却すること、元の特徴を最も主要な構成要素に置換すること等）を含む。モデル適合ステップの実施例は、限定ではないが、アルゴリズム選択、パラメータ推定、ハイパーパラメータ同調、スコア化、診断等を含む。後処理ステップの実施例は、限定ではないが、予測の較正、検閲、混合等を含む。
【００６５】
いくつかの実施形態では、機械実行可能テンプレートは、テンプレートによって符号化される予測モデル化技法の属性を表すメタデータを含む。メタデータは、（例えば、前処理ステップにおいて、後処理ステップにおいて、または予測モデル化アルゴリズムのステップにおいて）テンプレートが予測モデル化ソリューションの一部として行うことができる、１つまたはそれを上回るデータ処理技法を示してもよい。これらのデータ処理技法は、限定ではないが、テキストマイニング、特徴正規化、次元縮小、または他の好適なデータ処理技法を含んでもよい。代替として、または加えて、メタデータは、限定ではないが、データセットの次元、予測問題の標的の特性、および／または予測問題の特徴の特性に対する制約を含む、テンプレートによって符号化される予測モデル化技法によって課される、１つまたはそれを上回るデータ処理制約を示してもよい。
【００６６】
いくつかの実施形態では、テンプレートのメタデータは、対応するモデル化技法がどれだけ良好に所与のデータセットに役立つであろうかを推定することに関連する情報を含む。例えば、テンプレートのメタデータは、限定ではないが、幅広いデータセット、丈の高いデータセット、疎データセット、濃厚データセット、テキストを含む、または含まないデータセット、種々のデータタイプ（例えば、数値、順序、カテゴリ、解釈（例えば、日付、時間、テキスト）等）の変数を含むデータセット、種々の統計的性質（例えば、変数の欠測値、基数、分布等に関する統計的性質）を伴う変数を含むデータセット等を含む、特定の特性を有するデータセットに、対応するモデル化技法がどれだけ良好に機能することが予期されるかを示してもよい。別の実施例として、テンプレートのメタデータは、特定のタイプの標的変数を伴う予測問題について、対応するモデル化技法がどれだけ良好に機能することが予期されるかを示してもよい。いくつかの実施形態では、テンプレートのメタデータは、１つまたはそれを上回る性能測定基準（例えば、目的関数）に関して、対応するモデル化技法の予期される性能を示してもよい。
【００６７】
いくつかの実施形態では、テンプレートのメタデータは、限定ではないが、処理ステップの許可されたデータタイプ、構造、および／または次元を含む、対応するモデル化技法によって実装される処理ステップの特性化を含む。
【００６８】
いくつかの実施形態では、テンプレートのメタデータは、テンプレートによって表される予測モデル化技法を１つまたはそれを上回る予測問題および／もしくはデータセットに適用することの（実際または予期）結果を示すデータを含む。予測モデル化技法を予測問題またはデータセットに適用することの結果は、限定ではないが、予測モデル化技法によって生成される予測モデルが予測問題またはデータセットの標的を予測する精度、予測問題またはデータセットのための（他の予測モデル化技法に対する）予測モデル化技法によって生成される予測モデルの精度のランク、予測問題またはデータセットのための予測モデルを生成するために予測モデル化技法を使用することの有用性を表すスコア（例えば、目的関数のための予測モデルによって生成される値）等を含んでもよい。
【００６９】
予測モデル化技法を予測問題またはデータセットに適用することの結果を示すデータは、（例えば、予測問題またはデータセットのための予測モデル化技法を使用する前の試行の結果に基づいて）探索エンジン１１０によって提供され、（例えば、ユーザの専門知識に基づいて）ユーザによって提供され、および／または任意の他の好適なソースから取得されてもよい。いくつかの実施形態では、探索エンジン１１０は、少なくとも部分的に、予測問題のインスタンスの実際の成果と予測モデル化技法を介して生成される予測モデルによって予測される成果との間の関係に基づいて、そのようなデータを更新する。
【００７０】
いくつかの実施形態では、テンプレートのメタデータは、どれだけ効率的にモデル化技法が分散型コンピューティングインフラストラクチャ上で実行されるであろうかを推定することに関連する、対応するモデル化技法の特性を表す。例えば、テンプレートのメタデータは、所与のサイズのデータセット上のモデル化技法、交差検証層の数およびハイパーパラメータ空間内で検索される点の数のリソース消費への影響、モデル化技法によって行われる処理ステップの固有の並列化等を訓練および／または試験するために必要とされる、処理リソースを示してもよい。
【００７１】
いくつかの実施形態では、モデル化技法のライブラリ１３０は、予測モデル化技法の間の類似性（または差異）を査定するためのツールを含む。そのようなツールは、（例えば、所定の規模での）スコア、分類（例えば、「高度に類似する」、「若干類似する」、「若干異種である」、「高度に異種である」）、二元判定（例えば、「類似する」または「類似しない」）等として、２つの予測モデル化技法の間の類似性を表現してもよい。そのようなツールは、モデル化技法に共通している処理ステップに基づいて、２つの予測モデル化技法を同一または類似予測問題に適用することの結果を示すデータに基づいて等、２つの予測モデル化技法の間の類似性を判定してもよい。例えば、共通する多数（または高い割合）のそれらの処理ステップを有する、および／または類似予測問題に適用されたときに類似結果を生じる、２つの予測モデル化技法を考慮すると、ツールは、モデル化技法に高い類似性スコアを割り当て、またはモデル化技法を「高度に類似する」と分類してもよい。
【００７２】
いくつかの実施形態では、モデル化技法は、モデル化技法群に割り当てられてもよい。モデル化技法の群分類は、（例えば、直感および経験に基づいて）ユーザによって割り当てられ、（例えば、モデル化技法に共通する処理ステップ、異なるモデル化技法を同一または類似問題に適用することの結果を示すデータ等に基づいて）機械学習分類子によって割り当てられ、または別の好適なソースから取得されてもよい。予測モデル化技法の間の類似性を査定するためのツールは、２つのモデル化技法の間の類似性を査定するように、群分類に依拠してもよい。いくつかの実施形態では、ツールは、同一群内の全てのモデル化技法を「類似する」として扱い、異なる群内のいかなるモデル化技法も「類似しない」として扱ってもよい。いくつかの実施形態では、モデル化技法の群分類は、モデル化技法の間の類似性のツールの査定における１つの要因にすぎなくてもよい。
【００７３】
いくつかの実施形態では、予測モデル化システム１００は、予測問題のライブラリを含む（図１に示されていない）。予測問題のライブラリは、予測問題の特性を示すデータを含んでもよい。いくつかの実施形態では、予測問題の特性を示すデータは、予測問題を表すデータセットの特性を示すデータを含む。データセットの特性は、限定ではないが、データセットの幅、高さ、疎性、または密度、データセットの中の標的および／または特徴の数、データセットの変数のデータタイプ（例えば、数値、順序、カテゴリ、または解釈（例えば、日付、時間、テキスト等））、データセットの数値変数の範囲、データセットの順序およびカテゴリ変数の部類の数等を含んでもよい。
【００７４】
いくつかの実施形態では、データセットの特性は、限定ではないが、全観察の数、観察にわたる各変数の一意の値の数、観察にわたる各変数の欠測値の数、異常値および正常値の存在ならびに範囲、各変数の値または部類メンバーシップの分布の性質、変数の基数等を含む、データセットの変数の統計的性質を含む。いくつかの実施形態では、データセットの特性は、限定ではないが、変数のグループの同時分布、１つまたはそれを上回る標的にとっての１つまたはそれを上回る特徴の可変重要性（例えば、特徴および標的変数の間の相関の程度）、２つまたはそれを上回る特徴の間の統計的関係（例えば、２つの特徴の間の多重共線性の程度）等を含む、データセットの変数の間の関係（例えば、統計的関係）を含む。
【００７５】
いくつかの実施形態では、予測問題の特性を示すデータは、予測問題の主題を示すデータ（例えば、財政、保険、防衛、電子商取引、小売、インターネットベースの広告、インターネットベースの推奨エンジン等）、変数の起源（例えば、各変数が、自動計装から直接的に、自動計装の人間の記録から、人間の測定から、書面による人間の応答から、口頭による人間の応答から等、獲得されたかどうか）、予測問題のための公知の予測モデル化ソリューションの存在および性能等を含む。
【００７６】
いくつかの実施形態では、予測モデル化システム１００は、時系列予測問題（例えば、１次元または多次元時系列予測問題）をサポートしてもよい。時系列予測問題に関して、目的は、概して、標的自体を含む、全ての特徴の事前観察の関数として、標的の将来の値を予測することである。予測問題の特性を示すデータは、予測問題が時系列予測問題であるかどうかを示すことによって、および時系列予測問題に対応するデータセット内の時間測定変数を識別することによって、時系列予測問題に適応してもよい。
【００７７】
いくつかの実施形態では、予測問題のライブラリは、予測問題の間の類似性（または差異）を査定するためのツールを含む。そのようなツールは、（例えば、所定の規模での）スコア、分類（例えば、「高度に類似する」、「若干類似する」、「若干異種である」、「高度に異種である」）、二元判定（例えば、「類似する」または「類似しない」）等として、２つの予測問題の間の類似性を表現してもよい。そのようなツールは、予測問題の特性を示すデータに基づいて、同一または類似予測モデル化技法を予測問題に適用することの結果を示すデータに基づいて等、２つの予測問題の間の類似性を判定してもよい。例えば、共通する多数（または高い割合）の特性を有する、および／または同一もしくは類似予測モデル化技法の影響を受けやすい、データセットによって表される２つの予測問題を考慮すると、ツールは、予測問題に高い類似性スコアを割り当て、または予測問題を「高度に類似する」と分類してもよい。
【００７８】
図２は、いくつかの実施形態による、予測モデル化技法を符号化する機械実行可能テンプレートを構築するため、およびそのようなテンプレートを予測モデル化方法に組み込むために好適なモデル化ツール２００のブロック図を図示する。ユーザインターフェース１２０は、モデル化ツール２００へのインターフェースを提供してもよい。
【００７９】
図２の実施例では、モデル化方法ビルダ２１０は、モデル化技法のライブラリ１３０の上にモデル化方法のライブラリ２１２を構築する。モデル化技法ビルダ２２０は、モデル化タスクのライブラリ２３２の上にモデル化技法のライブラリ１３０を構築する。モデル化方法は、どのようなモデル化技法がどの状況で功を奏するかについての１人またはそれを上回る分析者の直感および経験に対応してもよく、ならびに／もしくは予測問題のためのモデル化検索空間の探索を誘導するように、前の予測問題へのモデル化技法の適用の結果を活用してもよい。モデル化技法は、具体的モデル化アルゴリズムを適用するための段階的なレシピに対応してもよい。モデル化タスクは、モデル化技法内の処理ステップに対応してもよい。
【００８０】
いくつかの実施形態では、モデル化技法は、タスクの階層を含んでもよい。例えば、最上位「テキストマイニング」タスクは、（ａ）ドキュメント項行列を作成し、（ｂ）項をランク付けし、重要ではない項を棄却するためのサブタスクを含んでもよい。順に、「項ランキングおよび棄却」サブタスクは、（ｂ．１）ランキングモデルを構築し、（ｂ．２）ドキュメント項行列から列を棄却するために項ランクを使用するためのサブタスクを含んでもよい。そのような階層は、恣意的な深度を有してもよい。
【００８１】
図２の実施例では、モデル化ツール２００は、モデル化タスクビルダ２３０と、モデル化技法ビルダ２２０と、モデル化方法ビルダ２１０とを含む。各ビルダは、機械実行可能形式でモデル化要素のうちの１つを符号化するためのツールまたはツールのセットを含んでもよい。各ビルダは、ユーザが既存のモデル化要素を修正する、または新しいモデル化要素を作成することを可能にしてもよい。図２に図示されるモデル化層を横断してモデル化要素の完全なライブラリを構築するために、開発者は、トップダウン、ボトムアップ、インサイドアウト、アウトサイドイン、または複合方略を採用してもよい。しかしながら、論理依存性の観点から、リーフレベルタスクが最小モデル化要素であるため、図２は、機械実行可能テンプレートを構築するプロセスにおける第１のステップとしてタスク作成を描写する。
【００８２】
各ビルダのユーザインターフェースは、限定ではないが、標準プログラミング言語における特殊ルーチンの集合、そのビルダの要素を符号化する目的で特異的に設計される形式文法、所望の実行フローを抽象的に規定するためのリッチユーザインターフェース等を使用して、実装されてもよい。しかしながら、各層において許可される動作の論理構造は、いかなる特定のインターフェースからも独立している。
【００８３】
階層内のリーフレベルにおいてモデル化タスクを作成するとき、モデル化ツール２００は、開発者が他のソースからソフトウェア構成要素を組み込むことを可能にし得る。本能力は、統計的学習に関係付けられるソフトウェアの設置基盤、およびそのようなソフトウェアを開発する方法の蓄積した知識を活用する。本設置基盤は、科学プログラミング言語（例えば、Ｆｏｒｔｒａｎ）、汎用プログラミング言語（例えば、Ｃ）で書かれた科学ルーチン、汎用プログラミング言語への科学計算拡張（例えば、Ｐｙｔｈｏｎ用のｓｃｉｋｉｔ−ｌｅａｒｎ）、商業統計環境（例えば、ＳＡＳ／ＳＴＡＴ）、およびオープンソース統計環境（例えば、Ｒ）を網羅する。そのようなソフトウェア構成要素の能力を組み込むために使用されるとき、モデル化タスクビルダ２３０は、ソフトウェア構成要素の入力ならびに出力の仕様、および／またはどのようなタイプの動作をソフトウェア構成要素が行うことができるかという特性化を必要とし得る。いくつかの実施形態では、モデル化タスクビルダ２３０は、ソフトウェア構成要素のソースコードシグネチャを点検すること、レポジトリからソフトウェア構成要素のインターフェースの定義を読み出すこと、一連の要求を用いてソフトウェア構成要素を精査すること、またはある他の形態の自動評価を行うことによって、本メタデータを生成する。いくつかの実施形態では、開発者は、本メタデータの一部または全てを手動で供給する。
【００８４】
いくつかの実施形態では、モデル化タスクビルダ２３０は、それが組み込まれたソフトウェアを実行することを可能にする「ラッパ」を作成するために、本メタデータを使用する。モデル化タスクビルダ２３０は、限定ではないが、構成要素のソースコードを内部実行ファイルにコンパイルすること、構成要素のオブジェクトコードを内部実行ファイルの中へリンクすること、構成要素の独立型実行ファイルによって予期されるコンピュータ環境のエミュレータを通して構成要素にアクセスすること、ローカルマシン上でソフトウェアサービスの一部として作動する構成要素の機能にアクセスすること、遠隔マシン上でソフトウェアサービスの一部として作動する構成要素の機能にアクセスすること、ローカルまたは遠隔マシン上で中間ソフトウェアサービスを通して作動する構成要素の機能にアクセスすること等を含む、ソフトウェア構成要素を統合するための任意の機構を利用して、そのようなラッパを実装してもよい。どの組み込み機構をモデル化タスクビルダ２３０が使用しても、ラッパが生成された後、モデル化ツール２００は、任意の他のルーチンで行うであろうように、構成要素へのソフトウェア呼び出しを行ってもよい。
【００８５】
いくつかの実施形態では、開発者は、リーフレベルモデル化タスクをより高いレベルのタスクに再帰的に組み立てるために、モデル化タスクビルダ２３０を使用してもよい。以前に示されたように、タスク階層の配列を規定するためにユーザインターフェースを実装する多くの異なる方法がある。しかし、論理的観点から、リーフレベルにないタスクは、サブタスクの有向グラフを含んでもよい。本階層の最上および中間レベルのそれぞれにおいて、入力が階層内の親タスク（または階層の最上レベルにおける親モデル化技法）からである、１つの開始サブタスクがあってもよい。また、出力が階層内の親タスク（または階層の最上レベルにおける親モデル化技法）に向かう、１つの終了サブタスクがあってもよい。所与のレベルにおける１つおきのサブタスクは、１つまたはそれを上回る前のサブタスクから入力を受信してもよく、出力を１つまたはそれを上回る後続のサブタスクに送信する。
【００８６】
リーフレベルタスクに恣意的なコードを組み込む能力と組み合わせて、有向グラフに従ってデータを伝搬することは、中間レベルタスク内の恣意的な制御フローの実装を促進する。いくつかの実施形態では、モデル化ツール２００は、付加的内蔵動作を提供してもよい。例えば、外部プログラミング言語でコード化されるリーフレベルタスクとして、任意の特定の条件付き論理を実装することが率直であろうが、モデル化タスクビルダ２３０は、一般的様式で条件付き評価を行う内蔵ノードまたはアークを提供し、これらの評価の結果に基づいて、ノードから異なる後続のノードにデータの一部または全てを指向してもよい。類似代替案が、後続のノードへの入力としてそれを伝搬する前に、規則または式に従って１つのノードからの出力をフィルタ処理する、後続のノードへの入力としてそれを伝搬する前に、１つのノードからの出力を変換する、各パーティションをそれぞれの後続のノードに伝搬する前に、規則または式に従って１つのノードからの出力を分割する、入力としてそれを受け入れる前に、規則または式に従って複数の前のノードの出力を組み合わせる、１つまたはそれを上回るループ変数を使用して、ノードの動作のサブグラフを反復して適用するため等に存在する。
【００８７】
いくつかの実施形態では、開発者は、モデル化タスクライブラリ２３２からのタスクをモデル化技法に組み立てるために、モデル化技法ビルダ２２０を使用してもよい。モデル化タスクライブラリ２３２の中のモデル化タスクのうちの少なくともいくつかは、１つまたはそれを上回るモデル化技法の前処理ステップ、モデル適合ステップ、および／もしくは後処理ステップに対応してもよい。タスクおよび技法の開発は、タスクライブラリ２３２がデータ投入された後に技法が組み立てられる、線形パターン、またはタスクおよび技法が同時に組み立てられる、より動的な円形パターンを辿ってもよい。開発者は、既存のタスクを新しい技法に組み込み、本技法が新しいタスクを必要とすることを認識し、新しい技法が完成するまで反復して精緻化する気にさせられ得る。代替として、開発者は、おそらく学術出版物からの新しい技法の概念から開始し、新しいタスクからそれを構築し始めるが、好適な機能性を提供するときに、モデル化タスクライブラリ２３２から既存のタスクを引き出してもよい。全ての場合において、参照データセットに、または現場試験においてモデル化技法を適用することからの結果は、開発者または分析者が技法の性能を評価することを可能にするであろう。本評価は、順に、リーフレベルモデル化タスクからモデル化技法への階層内のいずれかの場所の変化をもたらし得る。共通モデル化タスクおよびモデル化技法ライブラリ（２３２、１３０）、ならびに高生産性ビルダインターフェース（２１０、２２０、および２３０）を提供することによって、モデル化ツール２００は、開発者が急速かつ正確に変更を行うとともに、ライブラリ（２３２、１３０）へのアクセスを用いて、そのような増進を他の開発者およびユーザに伝搬することを可能にし得る。
【００８８】
モデル化技法は、現場での最良の実践に基づいて予期される全てのステップを用いて、開発者および分析者が予測モデル化プロシージャ全体を概念化するための焦点を提供してもよい。いくつかの実施形態では、モデル化技法は、統計的学習規律から最良の実践をカプセル化する。また、モデル化ツール２００は、例えば、開発者が考慮するためのステップのチェックリストを提供し、例えば、欠けているタスクを検出し、付加的ステップを検出し、および／またはステップの間の異常なフローを検出するように、新しい技法のためのタスクグラフを既存の技法のものと比較することによって、高品質技法の開発における誘導を提供してもよい。
【００８９】
いくつかの実施形態では、探索エンジン１１０が、モデル化技法ライブラリ１３０の中の技法を使用して、データセット２４０のための予測モデルを構築するために使用される。探索エンジン１１０は、モデル化方法ライブラリ２１２から選択されるモデル化方法によって符号化される優先順位決定方式に基づいて、モデル化技法ライブラリ１３０の中のモデル化技法の評価を優先してもよい。モデル化空間の探索のための好適な優先順位決定方式の実施例は、次の節で説明される。図２の実施例では、モデル化空間の探索の結果が、モデル化タスクおよび技法と関連づけられるメタデータを更新するために使用されてもよい。
いくつかの実施形態では、一意の識別子（ＩＤ）が、モデル化要素（例えば、技法、タスク、およびサブタスク）に割り当てられてもよい。モデル化要素のＩＤは、モデル化要素のテンプレートと関連付けられるメタデータとして記憶されてもよい。いくつかの実施形態では、これらのモデル化要素ＩＤは、１つまたはそれを上回るモデル化タスクもしくはサブタスクを共有するモデル化技法を効率的に実行するために使用されてもよい。モデル化技法を効率的に実行する方法は、以下でさらに詳細に説明される。
図２の実施例では、探索エンジン１１０によって生成されるモデル化結果は、モデル化タスクビルダ２３０、モデル化技法ビルダ２２０、およびモデル化方法ビルダ２１０にフィードバックされる。モデル化ビルダは、モデル化結果に基づいて、自動的に（例えば、統計的学習アルゴリズムを使用して）、または手動で（例えば、ユーザによって）適合されてもよい。例えば、モデル化方法ビルダ２１０は、モデル化結果において観察されるパターンに基づいて、および／またはデータ分析者の経験に基づいて、適合されてもよい。同様に、具体的モデル化技法を実行することからの結果は、これらの技法またはそれらの内側のタスクのデフォルト同調パラメータ値の自動もしくは手動調節を知らせてもよい。いくつかの実施形態では、モデル化ビルダの適合は、半自動であり得る。例えば、予測モデル化システム１００は、方法、技法、および／またはタスクへの潜在的改良にフラグを付けてもよく、ユーザは、これらの潜在的改良を実装するかどうかを決定してもよい。
【００９０】
モデル化空間探索エンジン
図３は、いくつかの実施形態による、予測問題のための予測モデルを選択するための方法３００のフローチャートである。いくつかの実施形態では、方法３００は、モデル化方法ライブラリ２１２の中のモデル化方法に対応してもよい。
【００９１】
方法３００のステップ３１０では、予測問題のための複数の予測モデル化プロシージャ（例えば、予測モデル化技法）の好適性が判定される。予測問題のための予測モデル化プロシージャの好適性は、予測問題の特性に基づいて、モデル化プロシージャの属性に基づいて、および／または他の好適な情報に基づいて、判定されてもよい。
【００９２】
予測問題のための予測モデル化プロシージャの「好適性」は、予測モデル化プロシージャを使用して生成される予測モデルの予測問題についての予期される性能を示す、データを含んでもよい。いくつかの実施形態では、予測問題についての予測モデルの予期される性能は、１つまたはそれを上回る予期されるスコア（例えば、１つまたはそれを上回る目的関数の予期される値）、および／もしくは（例えば、他の予測モデル化技法を使用して生成される他の予測モデルに対する）１つまたはそれを上回る予期されるランクを含む。
【００９３】
代替として、または加えて、予測問題のための予測モデル化プロシージャの「好適性」は、モデル化プロシージャが、予測問題のために十分な性能を提供する予測モデルを生成することが予期される、程度を示すデータを含んでもよい。いくつかの実施形態では、予測モデル化プロシージャの「好適性」データは、モデル化プロシージャの好適性の分類を含む。分類方式は、２つの部類（例えば、「好適」もしくは「好適ではない」）、または２つより多くの部類（例えば、「高度に好適」、「中程度に好適」、「中程度に不適切」、「高度に不適切」）を有してもよい。
【００９４】
いくつかの実施形態では、探索エンジン１１０は、少なくとも部分的に、本明細書に説明される特性を含む（但し、それに限定されない）、予測問題の１つまたはそれを上回る特性に基づいて、予測問題のための予測モデル化プロシージャの好適性を判定する。一実施例のみとして、予測問題のための予測モデル化プロシージャの好適性は、予測問題に対応するデータセットの特性、予測問題に対応するデータセットの中の変数の特性、データセットの中の変数の間の関係、および／または予測問題の主題に基づいて判定されてもよい。探索エンジン１１０は、予測問題、データセット、データセット変数等の特性を判定するように、予測問題と関連付けられるデータセットを分析するためのツール（例えば、統計分析ツール）を含んでもよい。
【００９５】
いくつかの実施形態では、探索エンジン１１０は、少なくとも部分的に、本明細書に説明される予測モデル化プロシージャの属性を含む（但し、それに限定されない）、予測モデル化プロシージャの１つまたはそれを上回る属性に基づいて、予測問題のための予測モデル化プロシージャの好適性を判定する。一実施例のみとして、予測問題のための予測モデル化プロシージャの好適性は、予測モデル化プロシージャによって行われるデータ処理技法および／または予測モデル化プロシージャによって課されるデータ処理制約に基づいて、判定されてもよい。
【００９６】
いくつかの実施形態では、予測問題のための予測モデル化プロシージャの好適性を判定するステップは、予測問題の考慮から少なくとも１つの予測モデル化プロシージャを排除するステップを含む。考慮から予測モデル化プロシージャを排除する決定は、本明細書では、排除されたモデル化プロシージャを「取り除くこと」および／または「検索空間を取り除くこと」と称され得る。いくつかの実施形態では、ユーザは、前もって取り除かれたモデル化プロシージャが、検索空間の探索中に、さらなる実行および／または評価のために適格なままであるように、検索エンジンのモデル化プロシージャを取り除く決定を無効にすることができる。
【００９７】
予測モデル化プロシージャは、１つまたはそれを上回る演繹的規則を予測モデル化プロシージャの属性および予測問題の特性に適用することの結果に基づいて、考慮から排除されてもよい。演繹的規則は、限定ではないが、以下、すなわち、（１）予測問題がカテゴリ標的変数を含む場合、実行のための分類技法のみを選択する、（２）データセットの数値特徴が非常に様々な規模範囲に及ぶ場合、正規化を提供する技法を選択または優先する、（３）データセットがテキスト特徴を有する場合、テキストマイニングを提供する技法を選択または優先する、（４）データセットが観察よりも多くの特徴を有する場合、観察の数が特徴の数を上回るまたはそれに等しくなることを要求する全ての技法を排除する、（５）データセットの幅が閾値幅を超える場合、次元縮小を提供する技法を選択または優先する、（６）データセットが大きく疎である（例えば、データセットのサイズが閾値サイズを超え、データセットの疎性が閾値疎性を超える）場合、疎データ構造上で効率的に実行される技法を選択または優先する、および／もしくは規則がｉｆ−ｔｈｅｎ文の形態で表現され得る、モデル化技法を選択、優先、または排除するための任意の規則を含んでもよい。いくつかの実施形態では、演繹的規則は、いくつかの規則の実行が順に結論を生じるように連鎖している。いくつかの実施形態では、演繹的規則は、履歴的性能に基づいて、更新、精緻化、または改良されてもよい。
【００９８】
いくつかの実施形態では、探索エンジン１１０は、類似予測問題についての類似予測モデル化プロシージャの性能（予期または実際）に基づいて、予測問題のための予測モデル化プロシージャの好適性を判定する。（特別な場合として、探索エンジン１１０は、類似予測問題についての同一の予測モデル化プロシージャの性能（予期または実際）に基づいて、予測問題のための予測モデル化プロシージャの好適性を判定してもよい。）
上記で説明されるように、モデル化技法１３０のライブラリは、予測モデル化技法の間の類似性を査定するためのツールを含んでもよく、予測問題のライブラリは、予測問題の間の類似性を査定するためのツールを含んでもよい。探索エンジン１１０は、問題になっている予測モデル化プロシージャおよび予測問題に類似する予測モデル化プロシージャおよび予測問題を識別するために、これらのツールを使用してもよい。予測問題のための予測モデル化プロシージャの好適性を判定する目的で、探索エンジン１１０は、問題になっているモデル化プロシージャに最も類似するＭ個のモデル化プロシージャを選択する、問題になっているモデル化プロシージャに関する閾値類似性値を超える全てのモデル化プロシージャを選択する等してもよい。同様に、予測問題のための予測モデル化プロシージャの好適性を判定する目的で、探索エンジン１１０は、問題になっている予測問題に最も類似するＮ個の予測問題を選択する、問題になっている予測問題に関する閾値類似性値を超える全ての予測問題を選択する等してもよい。
【００９９】
問題になっているモデル化プロシージャおよび予測問題に類似する、予測モデル化プロシージャのセットならびに予測問題のセットを考慮すると、探索エンジンは、問題になっている予測問題のための問題になっているモデル化プロシージャの予期される好適性を判定するように、類似予測問題についての類似モデル化プロシージャの性能を組み合わせてもよい。上記で説明されるように、モデル化プロシージャのテンプレートは、対応するモデル化プロシージャがどれだけ良好に所与のデータセットに機能するであろうかを推定することに関連する情報を含んでもよい。探索エンジン１１０は、類似予測問題についての類似モデル化プロシージャの性能値（予期または実際）を判定するために、モデル性能メタデータを使用してもよい。次いで、これらの性能値は、問題になっている予測問題のための問題になっているモデル化プロシージャの好適性の推定値を生成するように、組み合わせられることができる。例えば、探索エンジン１１０は、類似予測問題についての類似モデル化プロシージャの性能値の加重和として、問題になっているモデル化プロシージャの好適性を計算してもよい。
【０１００】
いくつかの実施形態では、探索エンジン１１０は、他の予測問題（例えば、問題になっている予測問題に類似する予測問題）のための種々のモデル化プロシージャ（例えば、問題になっているモデル化プロシージャに類似するモデル化プロシージャ）の結果に基づいて、予測問題のためのモデル化プロシージャの好適性を判定するように訓練され得る、「メタ」機械学習モデルの出力に少なくとも部分的に基づいて、予測問題のための予測モデル化プロシージャの好適性を判定する。予測問題のための予測モデル化プロシージャの好適性を推定するための機械学習モデルは、どの技法が問題になっている予測問題のために成功する可能性が最も高いかを予測するように、反復して機械学習を適用するため、「メタ」機械学習モデルと称され得る。したがって、探索エンジン１１０は、他の予測問題を解決することからの結果に向けられたメタ機械学習アルゴリズムを使用することによって、予測問題のためのモデル化技法の好適性のメタ予測を生成してもよい。
【０１０１】
いくつかの実施形態では、探索エンジン１１０は、少なくとも部分的にユーザ入力（例えば、予測モデル化プロシージャの好適性に関するデータ分析者の直感または経験を表すユーザ入力）に基づいて、予測問題のための予測モデル化プロシージャの好適性を判定してもよい。
【０１０２】
図３に戻って、方法３００のステップ３２０では、予測モデル化プロシージャの少なくともサブセットが、予測問題のためのモデル化プロシージャの好適性に基づいて選択されてもよい。モデル化プロシージャが好適性カテゴリ（例えば、「好適」または「好適ではない」、「高度に好適」、「中程度に好適」、「中程度に不適切」、もしくは「高度に不適切」等）に割り当てられている、実施形態では、モデル化プロシージャのサブセットを選択するステップは、１つまたはそれを上回る好適性カテゴリに割り当てられるモデル化プロシージャ（例えば、「好適なカテゴリ」に割り当てられる全てのモデル化プロシージャ、「高度に不適切な」カテゴリに割り当てられていない全てのモデル化プロシージャ等）を選択するステップを含んでもよい。
【０１０３】
モデル化プロシージャが好適性値を割り当てられている、実施形態では、探索エンジン１１０は、好適性値に基づいてモデル化プロシージャのサブセットを選択してもよい。いくつかの実施形態では、探索エンジン１１０は、閾値好適性スコアを上回る好適性スコアを伴うモデル化プロシージャを選択する。閾値好適性スコアは、ユーザによって提供され、または探索エンジン１１０によって判定されてもよい。いくつかの実施形態では、探索エンジン１１０は、モデル化プロシージャの実行のために利用可能な処理リソースの量に応じて、実行のために選択されるモデル化プロシージャの数を増加または減少させるように、閾値好適性スコアを調節してもよい。
【０１０４】
いくつかの実施形態では、探索エンジン１１０は、問題になっている予測問題のためのモデル化プロシージャのうちのいずれかに割り当てられる最高好適性スコアの規定範囲内の好適性スコアを伴うモデル化プロシージャを選択する。範囲は、絶対的（例えば、最高スコアのＳポイント以内のスコア）、または相対的（例えば、最高スコアのＰ％以内のスコア）であり得る。範囲は、ユーザによって提供され、または探索エンジン１１０によって判定されてもよい。いくつかの実施形態では、探索エンジン１１０は、モデル化プロシージャの実行のために利用可能な処理リソースの量に応じて、実行のために選択されるモデル化プロシージャの数を増加または減少させるように、範囲を調節してもよい。
【０１０５】
いくつかの実施形態では、探索エンジン１１０は、問題になっている予測問題のための最高好適性スコアを有する、モデル化プロシージャの一部を選択する。同等に、探索エンジン１１０は、（例えば、モデル化プロシージャのための好適性スコアが利用可能ではないが、モデル化プロシージャの好適性の順序付け（ランク付け）が利用可能である場合に）最高好適性ランクを有する、モデル化プロシージャの一部を選択してもよい。一部は、ユーザによって提供され、または探索エンジン１１０によって判定されてもよい。いくつかの実施形態では、探索エンジン１１０は、モデル化プロシージャの実行のために利用可能な処理リソースの量に応じて、実行のために選択されるモデル化プロシージャの数を増加または減少させるように、一部を調節してもよい。
【０１０６】
いくつかの実施形態では、ユーザは、実行される１つまたはそれを上回るモデル化プロシージャを選択してもよい。ユーザ選択されたプロシージャは、探索エンジン１１０によって選択される１つまたはそれを上回るモデル化プロシージャに加えて、もしくはその代わりに、実行されてもよい。ユーザが実行するためにモデル化プロシージャを選択することを可能にすることにより、特に、データ分析者の直感および経験が、モデル化システム１００が予測問題のためのモデル化プロシージャの好適性を正確に推定していないことを示す、シナリオにおいて、予測モデル化システム１００の性能を向上させてもよい。
【０１０７】
いくつかの実施形態では、探索エンジン１１０は、たとえモデル化プロシージャＰ０．．．ＰＮが全て、問題になっている予測問題のために好適であると判定されたとしても、モデル化プロシージャＰ０．．．ＰＮを選択するのではなく、１つまたはそれを上回る他のモデル化プロシージャＰ１．．．ＰＮを表す（例えば、類似する）モデル化プロシージャＰ０を選択することによって、検索空間評価の粒度を制御してもよい。加えて、探索エンジン１１０は、モデル化プロシージャＰ１．．．ＰＮを実行することの結果を表すものとして、選択されたモデル化プロシージャＰ０を実行することの結果を扱ってもよい。検索空間を評価することへの本アプローチは、特に、検索空間の評価の初期段階中に適用された場合、処理リソースを節約してもよい。探索エンジン１１０が後に、モデル化プロシージャＰ０が予測問題のための最も好適なモデル化プロシージャの間にあると判定する場合には、検索空間の関連部分の細かい粒度の評価が、類似モデル化プロシージャＰ１．．．ＰＮを実行して評価することによって行われることができる。
【０１０８】
図３に戻って、方法３００のステップ３３０では、リソース割付スケジュールが生成されてもよい。リソース割付スケジュールは、選択されたモデル化プロシージャの実行のために処理リソースを割り付けてもよい。いくつかの実施形態では、リソース割付スケジュールは、問題になっている予測問題のためのモデル化プロシージャの判定された好適性に基づいて、処理リソースをモデル化プロシージャに割り付ける。いくつかの実施形態では、探索エンジン１１０は、リソース割付スケジュールに従って選択されたモデル化プロシージャを実行するための命令を用いて、リソース割付スケジュールを１つまたはそれを上回る処理ノードに伝送する。
【０１０９】
割り付けられた処理リソースは、時間リソース（例えば、１つまたはそれを上回る処理ノードの実行サイクル、１つまたはそれを上回る処理ノード上の実行時間等）、物理リソース（例えば、処理ノードの数、機械可読記憶装置（例えば、メモリおよび／または二次記憶装置）の量等）、ならびに／もしくは他の割付可能処理リソースを含んでもよい。いくつかの実施形態では、割り付けられた処理リソースは、分散型コンピュータシステムおよび／またはクラウドベースのコンピュータシステムの処理リソースであってもよい。いくつかの実施形態では、処理リソースが割り付けられる、および／または使用されるときに、費用が負担されてもよい（例えば、料金が、データセンターのリソースを使用するために引き換えにデータセンターのオペレータによって収集されてもよい）。
【０１１０】
上記で示されるように、リソース割付スケジュールは、問題になっている予測問題のためのモデル化プロシージャの好適性に基づいて、処理リソースをモデル化プロシージャに割り付けてもよい。例えば、より有望なモデル化プロシージャが、限定された処理リソースのより多くの割合から利益を得るように、リソース割付スケジュールは、より多くの処理リソースを、予測問題のためのより高い予測好適性を伴うモデル化プロシージャに割り付け、より少ない処理リソースを、予測問題のためのより低い予測好適性を伴うモデル化プロシージャに割り付けてもよい。別の実施例として、リソース割付スケジュールは、より大きいデータセットを処理するために十分な処理リソースを、より高い予測好適性を伴うモデル化プロシージャに割り付け、より小さいデータセットを処理するために十分な処理リソースを、より低い予測好適性を伴うモデル化プロシージャに割り付けてもよい。
【０１１１】
別の実施例として、リソース割付スケジュールは、より低い予測好適性を伴うモデル化プロシージャの実行に先立って、より高い予測好適性を伴うモデル化プロシージャの実行をスケジュールに入れてもよく、これは、より多くの処理リソースをより有望なモデル化プロシージャに割り付けるという効果も有し得る。いくつかの実施形態では、モデル化プロシージャを実行することの結果は、結果が利用可能になるとユーザインターフェース１２０を介してユーザに提示されてもよい。そのような実施形態では、より低い予測好適性を伴うモデル化プロシージャの前に実行するように、より高い予測好適性を伴うモデル化プロシージャをスケジュールに入れることにより、評価の初期段階で、検索空間の評価についての付加的重要情報をユーザに提供し、それによって、検索計画への急速なユーザ駆動調節を促進してもよい。例えば、予備結果に基づいて、ユーザは、非常に良好に機能することが予期された１つまたはそれを上回るモデル化プロシージャが、実際には非常に不完全に機能していることを判定してもよい。ユーザは、不良な性能の原因を調査し、例えば、不良な性能がデータセットの調製のエラーによって引き起こされることを判定してもよい。次いで、ユーザは、エラーを修正し、エラーによる影響を受けたモデル化プロシージャの実行を再開することができる。
【０１１２】
いくつかの実施形態では、リソース割付スケジュールは、少なくとも部分的に、モデル化プロシージャのリソース利用特性および／または並列性特性に基づいて、処理リソースをモデル化プロシージャに割り付けてもよい。上記で説明されるように、モデル化プロシージャに対応するテンプレートは、どれだけ効率的にモデル化プロシージャが分散型コンピューティングインフラストラクチャ上で実行されるであろうかを推定することに関連するメタデータを含んでもよい。いくつかの実施形態では、本メタデータは、モデル化プロシージャのリソース利用特性（例えば、所与のサイズのデータセット上でモデル化プロシージャを訓練および／または試験するために必要とされる処理リソース）の指標を含む。いくつかの実施形態では、本メタデータは、モデル化プロシージャの並列性特性（例えば、モデル化プロシージャが複数の処理ノード上で並行して実行され得る程度）の指標を含む。リソース割付スケジュールを判定するために、モデル化プロシージャのリソース利用特性および／または並列性特性を使用することにより、モデル化プロシージャへの処理リソースの効率的な割付を促進してもよい。
【０１１３】
いくつかの実施形態では、リソース割付スケジュールは、モデル化プロシージャの実行のために規定量の処理リソースを割り付けてもよい。処理リソースの割付可能な量は、ユーザによって提供され、または別の好適なソースから取得され得る、処理リソース予算において規定されてもよい。処理リソース予算は、モデル化プロシージャを実行するために使用される処理リソース（例えば、使用される時間の量、使用される処理ノードの数、データセンターまたはクラウドベースの処理リソースを使用するために負担される費用等）に制限を課してもよい。いくつかの実施形態では、処理リソース予算は、規定予測問題のための予測モデルを生成するプロセスに使用される全処理リソースに制限を課してもよい。
【０１１４】
図３に戻って、方法３００のステップ３４０では、リソース割付スケジュールに従って選択されたモデル化プロシージャを実行することの結果が受信されてもよい。これらの結果は、実行されたモデル化プロシージャによって生成される、１つまたはそれを上回る予測モデルを含んでもよい。いくつかの実施形態では、モデル化プロシージャの実行が、予測問題と関連付けられる１つまたはそれを上回るデータセットへの予測モデルの適合を含み得るため、ステップ３４０で受信される予測モデルは、予測問題と関連付けられるデータセットに適合される。予測モデルを予測問題のデータセットに適合させるステップは、予測モデルを生成する予測モデル化プロシージャの１つまたはそれを上回るハイパーパラメータを調整するステップ、生成された予測モデルの１つまたはそれを上回るパラメータを調整するステップ、および／または他の好適なモデル適合ステップを含んでもよい。
【０１１５】
いくつかの実施形態では、ステップ３４０で受信される結果は、予測問題についてのモデルの性能の評価（例えば、スコア）を含む。これらの評価は、予測問題と関連付けられる試験データセット上で予測モデルを試験することによって取得されてもよい。いくつかの実施形態では、予測モデルを試験するステップは、予測問題と関連付けられる訓練データセットの異なる層を使用して、モデルを交差検証するステップを含む。いくつかの実施形態では、モデル化プロシージャの実行は、生成されたモデルの試験を含む。いくつかの実施形態では、生成されたモデルの試験は、モデル化プロシージャの実行と別個に行われる。
【０１１６】
モデルは、好適な試験技法に従って試験され、好適なスコア化測定基準（例えば、目的関数）に従ってスコア化されてもよい。異なるスコア化測定基準が、限定ではないが、モデルの精度（例えば、モデルが予測問題の成果を正しく予測する割合）、誤陽性率（例えば、モデルが「陽性」成果を誤って予測する割合）、誤陰性率（例えば、モデルが「陰性」成果を誤って予測する割合）、陽性予測値、陰性予測値、感受性、特異性等を含む、予測モデルの性能の異なる側面に異なる加重を置いてもよい。ユーザは、ユーザインターフェース１２０を介して提示されるオプションのセットから標準スコア化測定基準（例えば、適合度、Ｒ平方等）、またはユーザインターフェース１２０を介して具体的カスタムスコア化測定基準（例えば、カスタム目的関数）を選択してもよい。探索エンジン１１０は、予測モデルの性能をスコア化するために、ユーザ選択またはユーザ規定されたスコア化測定基準を使用してもよい。
【０１１７】
図３に戻って、方法３００のステップ３５０では、予測モデルが、生成された予測モデルの評価（例えば、スコア）に基づいて、予測問題のために選択されてもよい。空間検索エンジン１１０は、予測問題のための予測モデルを選択するために、任意の好適な基準を使用してもよい。いくつかの実施形態では、空間検索エンジン１１０は、最高スコアを伴うモデル、または閾値スコアを超えるスコアを有する任意のモデル、もしくは最高スコアの規定範囲内のスコアを有する任意のモデルを選択してもよい。いくつかの実施形態では、予測モデルのスコアは、予測問題のための予測モデルを選択する際に空間探索エンジン１１０によって考慮される１つの要因にすぎなくてもよい。空間探索エンジンによって考慮される他の要因は、限定ではないが、予測モデルの複雑性、予測モデルの計算需要等を含んでもよい。
【０１１８】
いくつかの実施形態では、予測問題のための予測モデルを選択するステップは、予測モデルのサブセットを反復して選択するステップと、データセットのより大きい、または異なる部分上で選択された予測モデルを訓練するステップとを含んでもよい。本反復プロセスは、予測モデルが予測問題のために選択されるまで、または予測モデルを生成するために予算を立てられる処理リソースが使い果たされるまで、継続してもよい。
【０１１９】
予測モデルのサブセットを選択するステップは、最高スコアを伴う予測モデルの一部を選択するステップ、閾値スコアを超えるスコアを有する、全てのモデルを選択するステップ、最高スコア化モデルのスコアの規定範囲内のスコアを有する、全てのモデルを選択するステップ、またはモデルの任意の他の好適なグループを選択するステップを含んでもよい。いくつかの実施形態では、予測モデルのサブセットを選択するステップは、方法３００のステップ３２０を参照して上記で説明されるように、予測モデル化プロシージャのサブセットを選択するステップに類似し得る。したがって、予測モデルのサブセットを選択するステップの詳細は、ここでは繰り返されない。
【０１２０】
選択された予測モデルを訓練するステップは、選択されたモデルの訓練のために処理ノードの処理リソースを割り付ける、リソース割付スケジュールを生成するステップを含んでもよい。処理リソースの割付は、少なくとも部分的に、選択されたモデルを生成するために使用されるモデル化技法の好適性、および／またはデータセットの他のサンプルのための選択されたモデルのスコアに基づいて、判定されてもよい。選択された予測モデルを訓練するステップはさらに、選択された予測モデルをデータセットの規定部分に適合させるように、命令を処理ノードに伝送するステップと、適合モデルおよび／または適合モデルのスコアを含む、訓練プロセスの結果を受信するステップとを含んでもよい。いくつかの実施形態では、選択された予測モデルを訓練するステップは、方法３００のステップ３２０−３３０を参照して上記に説明されるように、選択された予測モデル化プロシージャを実行するステップに類似し得る。したがって、選択された予測モデルを訓練するステップの詳細は、ここでは繰り返されない。
【０１２１】
いくつかの実施形態では、ステップ３３０および３４０は、予測モデルが予測問題のために選択されるまで、または予測モデルを生成するために予算を立てられる処理リソースが使い果たされるまで、反復して行われてもよい。各反復の終了時に、予測問題のための予測モデル化プロシージャの好適性が、少なくとも部分的に、モデル化プロシージャを実行することの結果に基づいて再判定されてもよく、予測モデル化プロシージャの新しいセットが、次の反復中に実行のために選択されてもよい。
【０１２２】
いくつかの実施形態では、ステップ３３０および３４０の反復において実行されるモデル化プロシージャの数は、反復の数が増加すると減少する傾向があってもよく、生成されたモデルを訓練および／または試験するために使用されるデータの量は、反復の数が増加すると増加する傾向があってもよい。したがって、初期の反復は、比較的小さいデータセット上で比較的多数のモデル化プロシージャを実行することによって、「広い範囲を探し」てもよく、以降の反復は、初期の反復中に識別される最も有望なモデル化プロシージャのより厳密な試験を行ってもよい。代替として、または加えて、初期の反復は、検索空間のより粗い粒度の評価を実装してもよく、以降の反復は、最も有望であると判定される検索空間の部分のより細かい粒度の評価を実装してもよい。
【０１２３】
いくつかの実施形態では、方法３００は、図３に図示されていない、１つまたはそれを上回るステップを含む。方法３００の付加的ステップは、限定ではないが、予測問題と関連付けられるデータセットを処理するステップ、混合予測モデルを形成するように２つまたはそれを上回る予測モデルを混合するステップ、および／または予測問題のために選択される予測モデルを調整するステップを含んでもよい。これらのステップのいくつかの実施形態は、以下でさらに詳細に説明される。
【０１２４】
方法３００は、予測問題と関連付けられるデータセットが処理されるステップを含んでもよい。いくつかの実施形態では、予測問題のデータセットを処理するステップは、データセットを特性化するステップを含む。データセットを特性化するステップは、データ漏出（例えば、データセットが、標的と強く相関する特徴を含むが、特徴の値が、予測問題によって課される条件下で予測モデルへの入力として利用可能とならないであろう、シナリオ）を識別するステップ、欠けている観察を検出するステップ、欠測変数値を検出するステップ、異常変数値を検出するステップ、および／または有意な予測値（「重要変数」）を有する可能性が高い変数を識別するステップを含むが、それらに限定されない、データセットに関連する潜在的問題を識別するステップを含んでもよい。
【０１２５】
いくつかの実施形態では、予測問題のデータセットを処理するステップは、特徴工学をデータセットに適用するステップを含む。特徴工学をデータセットに適用するステップは、２つまたはそれを上回る特徴を組み合わせて、構成特徴を組み合わせられた特徴と置換するステップ、日付／時間変数（例えば、時間および季節情報）の異なる側面を別個の変数に抽出するステップ、変数値を正規化するステップ、欠測変数値を埋めるステップ等を含んでもよい。
【０１２６】
方法３００は、２つまたはそれを上回る予測モデルが、混合予測モデルを形成するように混合させられる、ステップを含んでもよい。混合するステップは、予測モデル化技法を実行し、生成された予測モデルを評価するステップに関連して、反復して行われてもよい。いくつかの実施形態では、混合するステップは、（例えば、複数の有望な予測モデルが生成されたときに、以降の反復において）実行／評価反復のうちのいくつかにおいて行われてもよい。
【０１２７】
２つまたはそれを上回るモデルは、構成モデルの出力を組み合わせることによって混合させられてもよい。いくつかの実施形態では、混合モデルは、構成モデルの出力の加重線形結合を含んでもよい。混合予測モデルは、特に、異なる構成モデルが補完的である場合に、構成予測モデルより良好に機能してもよい。例えば、混合モデルは、構成モデルが予測問題のデータセットの異なる部分に良好に機能する傾向があるとき、モデルの混合が他の（例えば、類似）予測問題に良好に機能したとき、モデルを生成するために使用されるモデル化技法が異種である（例えば、一方のモデルが線形モデルであり、他方のモデルがツリーモデルである）とき等に、良好に機能することが予期されてもよい。いくつかの実施形態では、ともに混合させられる構成モデルは、（例えば、ユーザの直感および経験に基づいて）ユーザによって識別される。
【０１２８】
方法３００は、予測問題のために選択される予測モデルが調整されるステップを含んでもよい。ある場合には、展開エンジン１４０は、予測モデルを実装するソースコードをユーザに提供し、それによって、ユーザが予測モデルを調整することを可能にする。しかしながら、予測モデルのソースコードを開示することは、ある場合には（例えば、予測モデル化技法または予測モデルが専用能力もしくは情報を含有する場合に）望ましくない場合がある。ユーザがモデルのソースコードを暴露することなく予測モデルを調整することを可能にするために、展開エンジン１４０は、予測モデルの表現（例えば、数学的表現）に基づいてモデルのパラメータを調整するための人間が読み取れる規則を構築し、人間が読み取れる規則をユーザに提供してもよい。次いで、ユーザは、モデルのソースコードにアクセスすることなくモデルのパラメータを調整するために、人間が読み取れる規則を使用することができる。したがって、予測モデル化システム１００は、専用モデル化技法のためのソースコードをエンドユーザに暴露することなく、専用予測モデル化技法の評価および調整をサポートしてもよい。
【０１２９】
いくつかの実施形態では、予測モデル化プロシージャに対応する機械実行可能テンプレートは、冗長計算を削減するように、効率増進特徴を含んでもよい。これらの効率増進特徴は、比較的少量の処理リソースが、検索空間を探索し、予測モデルを生成するために予算を立てられる場合に、特に貴重であり得る。上記で説明されるように、機械実行可能テンプレートは、対応するモデル化要素（例えば、技法、タスク、またはサブタスク）の一意のＩＤを記憶してもよい。加えて、予測モデル化システム１００は、一意のＩＤをデータセットサンプルＳに割り当ててもよい。いくつかの実施形態では、機械実行可能テンプレートＴがデータセットサンプルＳ上で実行されるとき、テンプレートは、そのモデル化要素ＩＤ、データセット／サンプルＩＤ、およびデータサンプル上でテンプレートを実行することの結果を、他のテンプレートにアクセス可能な記憶構造（例えば、テーブル、キャッシュ、ハッシュ等）に記憶する。テンプレートＴがデータセットサンプルＳ上で呼び出されるとき、テンプレートは、そのデータセットサンプル上でそのテンプレートを実行することの結果がすでに記憶されているかどうかを判定するように、記憶構造をチェックする。そうであれば、同一の結果を取得するようにデータセットサンプルを再処理するのではなく、テンプレートは、単純に、記憶構造から対応する結果を読み出し、これらの結果を返し、終了する。記憶構造は、プロシージャ実行ループの複数の反復にわたって、または複数の検索空間探索にわたって、モデル化プロシージャが実行される、ループの個々の反復内で持続してもよい。多くのタスクおよびサブタスクが異なるモデル化技法によって共有され、方法３００が、多くの場合、同一のデータセット上で異なるモデル化技法を実行するステップを伴うため、本効率増進特徴を通して達成される計算節約は、相当量であり得る。
【０１３０】
図４は、いくつかの実施形態による、予測問題のための予測モデルを選択するための方法４００のフローチャートを示す。方法３００は、方法４００の実施例によって具現化されてもよい。
【０１３１】
図４の実施例では、空間検索エンジン１１０は、予測モデル化問題の解決策について利用可能なモデル化技法の空間を検索するために、モデル化方法ライブラリ２１２、モデル化技法ライブラリ１３０、およびモデル化タスクライブラリ２３２を使用する。最初に、ユーザが、ライブラリ２１２からモデル化方法を選択してもよく、または空間検索エンジン１１０が、デフォルトモデル化方法を自動的に選択してもよい。利用可能なモデル化方法は、限定ではないが、演繹的規則の適用に基づくモデル化技法の選択、類似予測問題についての類似モデル化技法の性能に基づくモデル化技法の選択、メタ機械学習モデルの出力に基づくモデル化技法の選択、前述のモデル化技法の任意の組み合わせ、または他の好適なモデル化技法を含んでもよい。
【０１３２】
方法４００のステップ４０２では、探索エンジン１１０は、予測モデル化問題が解決されるためにデータセットを選択するようにユーザを促す。ユーザは、前もってロードされたデータセットから選定し、またはファイルもしくは他の情報システムからデータを読み出すための命令のいずれか一方から、新しいデータセットを作成することができる。ファイルの場合、探索エンジン１１０は、限定ではないが、コンマで区切った値、タブで区切った拡張マークアップ言語（ＸＭＬ）、ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記、ネイティブデータベースファイル等を含む、１つまたはそれを上回る形式をサポートしてもよい。命令の場合、ユーザは、情報システムのタイプ、それらのネットワークアドレス、アクセス証明書、各システム内のデータのサブセットの参照、および標的データスキーマを所望のデータスキーマの中へマップするための規則を規定してもよい。そのような情報システムは、限定ではないが、データベース、データウェアハウス、データ統合サービス、分散型アプリケーション、ウェブサービス等を含んでもよい。
【０１３３】
方法４００のステップ４０４では、探索エンジン１１０は、（例えば、規定ファイルを読み取ること、または規定情報システムにアクセスすることによって）データをロードする。内部で、探索エンジン１１０は、一方の軸上の特徴および他方の軸上の観察を用いて２次元行列を構築してもよい。概念的に、行列の各列は、変数に対応してもよく、行列の各行は、観察に対応してもよい。探索エンジン１１０は、元のソースから取得されるメタデータ（例えば、明示的に規定されたデータタイプ）および／またはロードするプロセス中に生成されるメタデータ（例えば、変数の明白なデータタイプ、変数が数値、順序、基本的、または解釈タイプであると考えられるかどうか等）を含む、関連メタデータを変数にアタッチしてもよい。
【０１３４】
方法４００のステップ４０６では、探索エンジン１１０は、変数のうちのどれが標的であるか、および／またはどれが特徴であるかを識別するようにユーザを促す。いくつかの実施形態では、探索エンジン１１０はまた、モデルをスコア化するために使用されるモデル性能の測定基準（例えば、探索エンジン１１０によって実装される統計的学習アルゴリズムによる、統計的最適化技法という意味で、最適化されるモデル性能の測定基準）を識別するようにユーザを促す。
【０１３５】
方法４００のステップ４０８では、探索エンジン１１０は、データセットを評価する。本評価は、データセットの特性を計算するステップを含んでもよい。いくつかの実施形態では、本評価は、ユーザが予測問題をより理解することに役立ち得る、データセットの分析を行うステップを含む。そのような分析は、問題のある変数（例えば、異常値または正常値を伴うもの）を識別するように１つまたはそれを上回るアルゴリズムを適用するステップと、可変重要性を検出するステップと、可変影響を判定するステップと、影響ホットスポットを識別するステップとを含んでもよい。
【０１３６】
データセットの分析は、任意の好適な技法を使用して行われてもよい。各特徴が標的を予測する際に有する有意性の程度を測定する、可変重要性は、「勾配ブーストツリー」、ＢｒｅｉｍａｎおよびＣｕｔｌｅｒの「ランダムフォレスト」、「交互の条件付き期待値」、および／または他の好適な技法を使用して、分析されてもよい。特徴が標的に及ぼす影響の方向およびサイズを測定する、可変影響は、「正規化回帰」、「ロジスティック回帰」、および／または他の好適な技法を使用して、分析されてもよい。特徴が標的を予測する際に最も多くの情報を提供する範囲を識別する、影響ホットスポットは、「ＲｕｌｅＦｉｔ」アルゴリズムおよび／または他の好適な技法を使用して、分析されてもよい。
【０１３７】
いくつかの実施形態では、元のデータセットに含有される特徴の重要性を査定するステップに加えて、方法４００のステップ４０８で行われる評価は、特徴生成を含む。特徴生成技法は、データセットの変数の論理タイプを解釈し、種々の変換を変数に適用することによって、付加的特徴を生成するステップを含んでもよい。変換の実施例は、限定ではないが、数値特徴の多項式および対数変換を含む。解釈変数（例えば、日付、時間、通貨、測定単位、割合、および場所の座標）に関して、変換の実施例は、限定ではないが、予測力について日付の各側面を試験するように、日付文字列を連続時間変数、曜日、月、および季節に解析するステップを含む。
【０１３８】
潜在的予測モデル化技法を用いた、それらの系統的試験が後に続く、数値および／または解釈変数の系統的変換は、予測モデル化システム１００が、潜在的モデル空間のより多くを検索し、より精密な予測を達成することを可能にし得る。例えば、「日付／時間」の場合、時間および季節情報を別個の特徴に分離することは、これらの別個の特徴が、多くの場合、標的変数との非常に様々な関係を呈するため、非常に有益であり得る。
【０１３９】
元の特徴を解釈して変換することによって、導出された特徴を作成することは、元のデータセットの次元を増加させることができる。予測モデル化システム１００は、データセットの次元の増加に対抗し得る、次元縮小技法を適用してもよい。しかしながら、いくつかのモデル化技法は、他の技法よりも次元に対して感受性が高い。また、異なる次元縮小技法が、他の技法よりもいくつかのモデル化技法と良好に連動する傾向がある。いくつかの実施形態では、予測モデル化システム１００は、これらの相互作用を表すメタデータを維持する。システム１００は、次元縮小技法およびモデル化技法の種々の組み合わせを系統的に評価し、成功する可能性が最も高いとメタデータが示す組み合わせを優先してもよい。システム１００はさらに、経時的に組み合わせの経験的性能に基づいて本メタデータを更新し、新しい次元縮小技法が発見されると、それらを組み込んでもよい。
【０１４０】
方法４００のステップ４１０では、予測モデル化システム１００は、データセット評価の結果（例えば、データセット分析の結果、データセットの特性、および／またはデータセット変換の結果）をユーザに提示する。いくつかの実施形態では、データセット評価の結果は、（例えば、グラフおよび／または表を使用して）ユーザインターフェース１２０を介して提示されてもよい。
【０１４１】
方法４００のステップ４１２では、ユーザは、（例えば、データセット評価の結果に基づいて）データセットを精緻化してもよい。そのような精緻化は、１つまたはそれを上回る特徴の欠測値または異常値を取り扱う、解釈変数のタイプを変更する、検討中の変換を変更する、考慮から特徴を排除する、特定の値を直接編集する、関数を使用して特徴を変換する、式を使用して特徴の値を組み合わせる、完全に新しい特徴をデータセットに追加する等のための方法を選択するステップを含んでもよい。
【０１４２】
方法４００のステップ４０２−４１２は、方法３００のいくつかの実施形態に関連して上記で説明されるように、予測問題のデータセットを処理するステップの一実施形態を表してもよい。
【０１４３】
方法４００のステップ４１４では、検索空間エンジン１００は、モデル化技法ライブラリ１３０から利用可能なモデル化技法をロードしてもよい。どのモデル化技法が利用可能であるかという判定は、選択されたモデル化方法に依存し得る。いくつかの実施形態では、モデル化技法のローディングは、方法４００のステップ４０２−４１２のうちの１つまたはそれを上回るものと並行して起こってもよい。
【０１４４】
方法４００のステップ４１６では、ユーザは、手動モードまたは自動モードのいずれか一方でモデル化ソリューションの検索を開始するように探索エンジン１１０に命令する。自動モードでは、探索エンジン１１０は、デフォルトサンプリングアルゴリズムを使用してデータセットを分割し（ステップ４１８）、デフォルト優先順位決定アルゴリズムを使用してモデル化技法を優先する（ステップ４２０）。モデル化技法を優先するステップは、予測問題のためのモデル化技法の好適性を判定するステップと、それらの判定された好適性に基づいて、実行のためにモデル化技法の少なくともサブセットを選択するステップとを含んでもよい。
【０１４５】
手動モードでは、探索エンジン１１０は、データパーティションを提案し（ステップ４２２）、モデル化技法の優先順位決定を提案する（ステップ４２４）。ユーザは、提案されたデータパーティションを容認し、またはカスタムパーティションを規定してもよい（ステップ４２６）。同様に、ユーザは、モデル化技法の提案された優先順位決定を容認し、またはモデル化技法のカスタム優先順位決定を規定してもよい（ステップ４２８）。いくつかの実施形態では、ユーザは、探索エンジン１１０がモデル化技法を実行し始める前に、（例えば、モデル化技法ビルダ２２０および／またはモデル化タスクビルダ２３０を使用して）１つまたはそれを上回るモデル化技法を修正することができる（ステップ４３０）。
【０１４６】
交差検証を促進するために、予測モデル化システム１００は、データセットをＫ個の「層」に分割し（またはデータセットの分割を提案し）てもよい。交差検証は、各適合中に、異なる層が試験セットとしての機能を果たし、残りの層が訓練セットとしての機能を果たすように、予測モデルを分割されたデータセットにＫ回適合させるステップを含む。交差検証は、どのようにして予測モデルの精度が異なる訓練データとともに変動するかについての有用な情報を生成することができる。ステップ４１８および４２２では、予測モデル化システムは、データセットをＫ個の層に分割し、層の数Ｋは、デフォルトパラメータである。ステップ４２６では、ユーザは、層の数Ｋを変更し、または交差検証の使用を完全に中止してもよい。
【０１４７】
予測モデルの厳密な試験を促進するために、予測モデル化システム１００は、データセットを訓練セットおよび「ホールドアウト」試験セットに分割し（またはデータセットの分割を提案し）てもよい。いくつかの実施形態では、訓練セットはさらに、交差検証のためのＫ個の層に分割される。次いで、訓練セットは、予測モデルを訓練して評価するために使用されてもよいが、ホールドアウト試験セットは、予測モデルを試験するために厳密に留保されてもよい。いくつかの実施形態では、予測モデル化システム１００は、指定権限および／または証明書を伴うユーザがそれを解放するまで、ホールドアウト試験セットをアクセス不可能にすることによって、（訓練のためではなく）試験のためにホールドアウト試験セットの使用を強力に施行することができる。ステップ４１８および４２２では、予測モデル化システム１００は、データセットのデフォルト割合がホールドアウトセットのために留保されるように、データセットを分割してもよい。ステップ４２６では、ユーザは、ホールドアウトセットのために留保されるデータセットの割合を変更し、またはホールドアウトセットの使用を完全に中止してもよい。
【０１４８】
いくつかの実施形態では、予測モデル化システム１００は、モデル化検索空間の評価中に、計算リソースの効率的な使用を促進するようにデータセットを分割する。例えば、予測モデル化システム１００は、データセットの交差検証層をより小さいサンプルに分割してもよい。予測モデルが適合させられるデータサンプルのサイズを縮小することは、異なるモデル化技法の相対的性能を評価するために必要とされる計算リソースの量を削減してもよい。いくつかの実施形態では、より小さいサンプルは、層のデータのランダムなサンプルを採取することによって生成されてもよい。同様に、予測モデルが適合させられるデータサンプルのサイズを縮小することは、予測モデルのパラメータまたはモデル化技法のハイパーパラメータを調整するために必要とされる計算リソースの量を削減してもよい。ハイパーパラメータは、モデル適合プロセスの速度、効率、および／または精度に影響を及ぼし得る、モデル化技法のための可変設定を含む。ハイパーパラメータの実施例は、限定ではないが、弾性ネットモデルの罰則パラメータ、勾配ブーストツリーモデルの中のツリーの数、最近傍モデルの中の近傍の数等を含む。
【０１４９】
方法４００のステップ４３２−４５８では、選択されたモデル化技法は、検索空間を評価するように、分割されたデータを使用して実行されてもよい。これらのステップは、以下でさらに詳細に説明される。便宜上、データ分割に関する検索空間の評価のいくつかの側面は、以下の段落で説明される。
【０１５０】
交差検証層の試験セットを含むサンプルデータを使用して、ハイパーパラメータを調整することは、モデル過剰適合につながり、それによって、異なるモデルの性能の比較を信頼できなくし得る。「規定アプローチ」を使用することは、本問題を回避することに役立つことができ、いくつかの他の重要な利点を提供することができる。したがって、探索エンジン１１０のいくつかの実施形態は、ｋ層交差検証の２つのループが適用される技法である、「ネスト化交差検証」を実装する。外側ループは、所与のモデルを他のモデルと比較するとともに、将来のサンプル上で各モデルの予測を較正するための試験セットを提供する。内側ループは、所与のモデルのハイパーパラメータを調整するための試験セットおよび導出された特徴のための訓練セットの両方を提供する。
【０１５１】
また、内側ループにおいて生成される交差検証予測は、複数の異なるモデルを組み合わせる混合技法を促進してもよい。いくつかの実施形態では、ブレンダの中への入力は、サンプル外モデルからの予測である。サンプル内モデルからの予測を使用することは、いくつかの混合アルゴリズムとともに使用された場合に過剰適合をもたらし得る。ネスト化交差検証を一貫して適用するための明確に定義されたプロセスがないと、最も経験豊富なユーザでさえも、ステップを省略し、またはそれらを誤って実装し得る。したがって、ｋ層交差検証の二重ループの適用は、予測モデル化システム１００が、同時に５つの重要な目標、すなわち、（１）多くのハイパーパラメータを用いて複雑なモデルを調整すること、（２）情報を与える導出された特徴を作成すること、（３）２つまたはそれを上回るモデルの混合を調整すること、（４）単一および／または混合モデルの予測を較正すること、ならびに（５）異なるモデルの正確な比較を可能にする、純粋な手付かずの試験セットを維持することを達成することを可能にし得る。
【０１５２】
方法４００のステップ４３２では、探索エンジン１１０は、選択されたモデル化技法の初期セットの実行のためにリソース割付スケジュールを生成する。リソース割付スケジュールによって表されるリソースの割付は、モデル化技法の優先順位決定、分割されたデータサンプル、および利用可能な計算リソースに基づいて判定されてもよい。いくつかの実施形態では、探索エンジン１１０は、リソースを選択されたモデル化技法に貪欲に割り付ける（例えば、計算リソースを、順に、まだ実行されていない最高優先順位のモデル化技法に割り当てる）。
【０１５３】
方法４００のステップ４３４では、探索エンジン１１０は、リソース割付スケジュールに従ってモデル化技法の実行を開始する。いくつかの実施形態では、モデル化技法のセットの実行は、データセットから抽出される同一のデータサンプル上で１つまたはそれを上回るモデルを訓練するステップを含んでもよい。
【０１５４】
方法４００のステップ４３６では、探索エンジン１１０は、モデル化技法の実行の状態を監視する。モデル化技法が実行を終了されるとき、探索エンジン１１０は、適合モデルおよび／または対応するデータサンプルのためのモデル適合の測定基準を含み得る、結果を収取する（ステップ４３８）。そのような測定基準は、限定ではないが、ジニ係数、ｒ平方、残存平均平方誤差、それらの任意の変形例等を含む、適合を行う基礎的ソフトウェア構成要素から抽出され得る任意の測定基準を含んでもよい。
【０１５５】
方法４００のステップ４４０では、探索エンジン１１０は、（例えば、モデル適合測定基準に従って生成したモデルの性能に基づいて）考慮から性能が最も悪いモデル化技法を排除する。探索エンジン１１０は、限定ではないが、モデル適合測定基準の最小閾値を満たすモデルを生成しないものを排除するステップ、生成される全てのモデルの最上位部分の中に現在あるモデルを生成したものを除いて、全てのモデル化技法を排除するステップ、または最上位モデルのある範囲内にあるモデルを生成していない、いかなるモデル化技法も排除するステップを含む、好適な技法を使用して、どのモデル化技法を排除するかを判定してもよい。いくつかの実施形態では、異なるプロシージャが、評価の異なる段階でモデル化技法を排除するために使用されてもよい。いくつかの実施形態では、ユーザは、異なるモデル化問題のための異なる排除技法を規定することを許可されてもよい。いくつかの実施形態では、ユーザは、カスタム排除技法を構築して使用することを許可されてもよい。いくつかの実施形態では、メタ統計的学習技法が、排除技法の間で選定するため、および／またはこれらの技法のパラメータを調節するために使用されてもよい。
【０１５６】
探索エンジン１１０がモデル性能を計算し、考慮からモデル化技法を排除すると、予測モデル化システム１００は、ユーザインターフェース１２０を通して検索空間評価の進行をユーザに提示してもよい（ステップ４４２）。いくつかの実施形態では、ステップ４４４で、探索エンジン１１０は、検索空間評価の進行、ユーザの専門知識、および／または他の好適な情報に基づいて、ユーザが検索空間を評価するプロセスを修正することを可能にする。ユーザが検索空間評価プロセスへの修正を規定する場合、空間評価エンジン１１０は、それに応じて処理リソースを再び割り付ける（例えば、どのジョブが影響を受けるかを判定し、スケジューリング待ち行列内でそれらを移動させるか、または待ち行列からそれらを削除するかのいずれかである）。他のジョブは、以前の通りに処理を継続する。
【０１５７】
ユーザは、多くの異なる方法で検索空間評価プロセスを修正してもよい。例えば、ユーザは、たとえ選択された測定基準で生成したモデルの性能が良好であったとしても、いくつかのモデル化技法の優先順位を低減させ、または考慮からいくつかのモデル化技法を完全に排除してもよい。別の実施例として、ユーザは、たとえ生成したモデルの性能が不良であったとしても、いくつかのモデル化技法の優先順位を増加させ、または考慮からいくつかのモデル化技法を選択してもよい。別の実施例として、ユーザは、付加的データサンプルに対して規定モデルの評価または規定モデル化技法の実行を優先してもよい。別の実施例として、ユーザは、１つまたはそれを上回るモデル化技法を修正し、考慮から修正された技法を選択してもよい。別の実施例として、ユーザは、（例えば、特徴を追加すること、特徴を除去すること、もしくは異なる特徴を選択することによって）モデル化技法を訓練する、またはモデルを適合させるために使用される特徴を変更してもよい。そのような変更は、特徴規模が正規化を必要とする、または特徴のうちのいくつかが「データ漏出」であることを結果が示す場合に、有益であり得る。
【０１５８】
いくつかの実施形態では、ステップ４３２−４４４は、反復して行われてもよい。（例えば、ステップ４４０でシステムによって、またはステップ４４４でユーザによって）排除されないモデル化技法は、別の反復を乗り切る。前の反復（または複数の反復）で生成されたモデルの性能に基づいて、探索エンジン１１０は、対応するモデル化技法の優先順位を調節し、それに応じて処理リソースをモデル化技法に割り付ける。計算リソースが利用可能になると、エンジンは、更新された優先順位に基づいてモデル技法実行ジョブを立ち上げるために利用可能なリソースを使用する。
【０１５９】
いくつかの実施形態では、ステップ４３２で、探索エンジン１１０は、新しいモデルを作成するように、異なる数学的組み合わせを使用して（例えば、ブレンダに含むモデルの段階的選択を使用して）複数のモデルを「混合」してもよい。いくつかの実施形態では、予測モデル化システム１００は、ユーザが独自の自動混合技法を組み込むことを可能にする、モジュール式フレームワークを提供する。いくつかの実施形態では、予測モデル化システム１００は、ユーザが異なるモデルブレンダを手動で規定することを可能にする。
【０１６０】
いくつかの実施形態では、予測モデル化システム１００は、混合予測モデルを開発する際に１つまたはそれを上回る利点を提供してもよい。第１に、混合は、多種多様な候補モデルが混合するために利用可能であるときに、より良好に機能し得る。また、混合は、候補モデルの間の差異が、単純にアルゴリズムの軽微な変動に対応しないが、むしろ線形モデル、ツリーベースのモデル、サポートベクターマシン、および最近傍分類の間の差異等のアプローチの主要な差異に対応するときに、より良好に機能し得る。予測モデル化システム１００は、多種多様なモデルを自動的に生成し、どのように候補モデルが異なるかを表すメタデータを維持することによって、実質的な有利開始を実現してもよい。予測モデル化システム１００はまた、例えば、候補モデルにわたって変数の規模を自動的に正規化することによって、任意のモデルが混合モデルに組み込まれることを可能にする、フレームワークを提供してもよい。本フレームワークは、多様性をさらに増加させるように、ユーザが、独自のカスタマイズされた、または独立して生成されたモデルを、自動的に生成されたモデルに容易に追加することを可能にし得る。
【０１６１】
混合のために利用可能な候補モデルの多様性を増加させることに加えて、予測モデル化システム１００はまた、優れた混合をもたらし得る、いくつかのユーザインターフェース特徴および分析特徴も提供する。第１に、ユーザインターフェース１２０は、ユーザが混合する正確かつ補完的なモデルを容易に識別することができるように、二重リフトチャート等の候補モデル適合およびグラフィックのいくつかの異なる代替尺度を含む、双方向モデル比較を提供してもよい。第２に、モデル化システム１００は、具体的候補モデルおよび混合技法を選定する、または候補モデルのうちのいくつかもしくは全てを使用して、モデル化技法ライブラリの中の混合技法のうちのいくつかまたは全てを自動的に適合させるオプションをユーザに与える。次いで、ネスト化交差検証フレームワークは、各混合モデルをランク付けするために使用されるデータが、ブレンダ自体を調整する際に、またはその構成要素モデルのハイパーパラメータを調整する際に使用されないという条件を施行する。本規律は、代替ブレンダ性能のより正確な比較をユーザに提供してもよい。いくつかの実施形態では、モデル化システム１００は、混合モデルのための計算時間が、その最低速構成要素モデルの計算時間に接近するように、並行して混合モデルの処理を実装する。
【０１６２】
図４に戻って、方法４００のステップ４４６では、ユーザインターフェース１２０は、最終結果をユーザに提示する。本提示に基づいて、ユーザは、（例えば、ステップ４１２に戻ることによって）データセットを精緻化する、（例えば、ステップ４４４に戻ることによって）実行するモデル化技法へのリソースの割付を調節する、（例えば、ステップ４３０に戻ることによって）精度を向上させるようにモデル化技法のうちの１つまたはそれを上回るものを修正する、（例えば、ステップ４０２に戻ることによって）データセットを変更する等してもよい。
【０１６３】
方法４００のステップ４４８では、検索空間評価またはその一部を再開するのではなく、ユーザは、１つまたはそれを上回る最上位予測モデル候補を選択してもよい。ステップ４５０では、予測モデル化システム１００は、選択された予測モデル候補のためのホールドアウト試験の結果を提示してもよい。ホールドアウト試験結果は、どのようにしてこれらの候補を比較するかという最終測定尺度を提供してもよい。いくつかの実施形態では、十分な特権を伴うユーザのみが、ホールドアウト試験結果を発表してもよい。候補予測モデルが選択されるまでホールドアウト試験結果の発表を防止することは、性能の公平な評価を促進してもよい。しかしながら、探索エンジン１１０は、候補予測モデルが選択される後まで結果が隠されたままである限り、モデル化ジョブ実行プロセス（ステップ４３２−４４４）中にホールドアウト試験結果を実際に計算してもよい。
【０１６４】
ユーザインターフェース
図１に戻って、ユーザインターフェース１２０は、予測モデル化空間の検索を監視および／または誘導するためのツールを提供してもよい。これらのツールは、（例えば、データセットの中の問題のある変数を強調表示すること、データセットの中の変数の間の関係を識別すること等によって）予測問題のデータセットについての洞察、および／または検索の結果についての洞察を提供してもよい。いくつかの実施形態では、データ分析者は、例えば、モデル化ソリューションを評価して比較するために使用される測定基準を規定することによって、好適なモデル化ソリューションを認識するための基準を特定することによって等、検索を誘導するためにインターフェースを使用してもよい。したがって、ユーザインターフェースは、独自の生産性を向上させるために、および／または探索エンジン１１０の性能を向上させるために、分析者によって使用されてもよい。いくつかの実施形態では、ユーザインターフェース１２０は、リアルタイムで検索の結果を提示し、リアルタイムで（例えば、検索の範囲、または異なるモデル化ソリューションの評価の間のリソースの割付を調節するように）ユーザが検索を誘導することを可能にする。いくつかの実施形態では、ユーザインターフェース１２０は、同一の予測問題および／または関連予測問題に取り組む複数のデータ分析者の労力を調整するためのツールを提供する。
【０１６５】
いくつかの実施形態では、ユーザインターフェース１２０は、モデル化技法のライブラリ１３０のための機械実行可能テンプレートを開発するためのツールを提供する。システムユーザは、既存のテンプレートを修正するため、新しいテンプレートを作成するため、またはライブラリ１３０からテンプレートを除去するために、これらのツールを使用してもよい。このようにして、システムユーザは、予測モデル化研究の進歩を反映するように、および／または専用予測モデル化技法を含むように、ライブラリ１３０を更新してもよい。
【０１６６】
ユーザインターフェース１２０は、ユーザが団体内の複数のモデル化プロジェクトを管理し、モデル化方法階層の要素を作成および修正し、正確な予測モデルの包括的検索を行い、データセットならびにモデル結果についての洞察を獲得し、および／または新しいデータについて予測を生成するように完成したモデルを展開することを可能にする、種々のインターフェース構成要素を含んでもよい。
【０１６７】
いくつかの実施形態では、ユーザインターフェース１２０は、４つのタイプのユーザ、すなわち、管理者、技法開発者、モデルビルダ、および観察者を区別する。管理者は、プロジェクトへの人間および計算リソースの割付を制御してもよい。技法開発者は、モデル化技法およびそれらの構成要素タスクを作成ならびに修正してもよい。モデルビルダは主に、良好なモデルを検索することに集中するが、また、技法およびタスクに軽微な調節を行ってもよい。観察者は、プロジェクト進行およびモデル化結果のある側面を視認してもよいが、データにいかなる変更を行うこと、またはいかなるモデル構築を開始することも禁止され得る。個人が、具体的プロジェクトで、または複数のプロジェクトにわたって、１つより多くの役割を果たしてもよい。
【０１６８】
管理者の役割を果たすユーザは、プロジェクトパラメータを設定し、プロジェクト責任をユーザに割り当て、計算リソースをプロジェクトに割り付けるように、ユーザインターフェース１２０のプロジェクト管理構成要素にアクセスしてもよい。いくつかの実施形態では、管理者は、複数のプロジェクトをグループまたは階層に編成するために、プロジェクト管理構成要素を使用してもよい。グループ内の全てのプロジェクトは、グループの設定を継承してもよい。階層では、プロジェクトの全ての子が、プロジェクトの設定を継承してもよい。いくつかの実施形態では、十分な許可を伴うユーザが、継承された設定を無効にしてもよい。いくつかの実施形態では、十分な許可を伴うユーザはさらに、対応する許可を伴うユーザのみが設定を変更し得るように、それらを異なるセクションに分割してもよい。ある場合には、管理者が、プロジェクトの団体と直交的にあるリソースにアクセスしてもよい。例えば、ある技法およびタスクが、明示的に禁止されない限り、全てのプロジェクトに利用可能にされてもよい。他のものは、明示的に許可されない限り、全てのプロジェクトに禁止されてもよい。また、これらの権利を保有するユーザがその特定のプロジェクトに割り当てられる場合、プロジェクトがリソースにアクセスすることのみできるように、いくつかのリソースがユーザ基準で割り付けられてもよい。
【０１６９】
ユーザを管理する際に、管理者は、システムに許可される全てのユーザのグループ、それらの許可された役割、およびシステムレベル許可を制御してもよい。いくつかの実施形態では、管理者は、ユーザを対応するグループに追加し、ある形態のアクセス証明書をユーザに発行することによって、ユーザをシステムに追加してもよい。いくつかの実施形態では、ユーザインターフェース１２０は、限定ではないが、ユーザ名およびパスワード、統一承認フレームワーク（例えば、ＯＡｕｔｈ）、ハードウェアトークン（例えば、スマートカード）等を含む、異なる種類の証明書をサポートしてもよい。
【０１７０】
いったん承認されると、管理者は、あるユーザが任意のプロジェクトのために引き受けるデフォルト役割を有することを規定してもよい。例えば、特定のユーザが、特定のプロジェクトのために管理者によって別の役割に特異的に承認されない限り、観察者として指定されてもよい。別のユーザが、管理者によって特異的に除外されない限り、全てのプロジェクトのための技法開発者として供給されてもよい一方で、別のユーザは、プロジェクトの特定のグループまたはプロジェクト階層の分岐のみのための技法開発者として供給されてもよい。デフォルト役割に加えて、管理者はさらに、システムレベルで、より具体的な許可をユーザに割り当ててもよい。例えば、一部の管理者は、あるタイプの計算リソースへのアクセスを許可することが可能であり得、一部の技法開発者およびモデルビルダは、ビルダ内のある特徴にアクセスすることが可能であり得、一部のモデルビルダは、新しいプロジェクトを開始し、所与のレベルを上回る計算リソースを消費し、または所有していないプロジェクトに新しいユーザを招待する権限を与えられてもよい。
【０１７１】
いくつかの実施形態では、管理者は、プロジェクトレベルで、アクセス、許可、および責任を割り当ててもよい。アクセスは、特定のプロジェクト内の任意の情報にアクセスする能力を含んでもよい。許可は、プロジェクトのための具体的動作を行う能力を含んでもよい。アクセスおよび許可は、システムレベル許可を無効にし、またはより粒度の細かい制御を提供してもよい。前者の実施例として、通常は完全ビルダ許可を有するユーザが、特定のプロジェクトのための部分ビルダ許可に制約されてもよい。後者の実施例として、あるユーザが、既存のプロジェクトに新しいデータをロードすることを制限されてもよい。責任は、ユーザがプロジェクトのために完成させることが予期される、アクションアイテムを含んでもよい。
【０１７２】
開発者の役割を果たすユーザは、モデル化方法、技法、およびタスクを作成して修正するように、インターフェースのビルダ領域にアクセスしてもよい。以前に議論されたように、各ビルダは、対応する論理動作を行う異なるタイプのユーザインターフェースを用いて、１つまたはそれを上回るツールを提示してもよい。いくつかの実施形態では、ユーザインターフェース１２０は、開発者が技法にアタッチされたメタデータを編集するために「プロパティ」シートを使用することを可能にする。技法はまた、特定のタスクの変数に対応する同調パラメータを有してもよい。開発者は、これらの同調パラメータを技法レベルプロパティシートに公開し、デフォルト値、およびモデルビルダがこれらのデフォルトを無効にし得るかどうかを規定してもよい。
【０１７３】
いくつかの実施形態では、ユーザインターフェース１２０は、条件付き論理、出力をフィルタ処理する、出力を変換する、出力を分割する、入力を組み合わせる、サブグラフにわたって反復するため等の任意の内蔵動作とともに、タスクの階層有向グラフを規定するためのグライフィカルフロー図ツールを提供してもよい。いくつかの実施形態では、ユーザインターフェース１２０は、各タスクのために設定されることができるプロパティを含む、リーフレベルタスクを実装するように、既存のソフトウェアの周囲にラッパを作成するための設備を提供してもよい。
【０１７４】
いくつかの実施形態では、ユーザインターフェース１２０は、リーフレベルタスクを実装するための双方向開発環境（ＩＤＥ）への内蔵アクセスを上級開発者に提供してもよい。開発者は、代替として、外部環境内で構成要素をコード化し、そのコードをリーフレベルタスクとして包んでもよいが、これらの環境が直接アクセス可能であるならば、より利便的であり得る。そのような実施形態では、ＩＤＥ自体が、インターフェースに包まれ、タスクビルダに論理的に組み込まれてもよい。ユーザ観点から、ＩＤＥは、タスクビルダと同一のインターフェースフレームワーク内で、かつ同一の計算インフラストラクチャ上で作動してもよい。本能力は、上級開発者が技法を開発して修正することをより迅速に反復することを可能にし得る。いくつかの実施形態はさらに、同一のリーフレベルタスクを同時にプログラムする複数の開発者の間の調整を促進する、コード協調特徴を提供してもよい。
【０１７５】
モデルビルダは、具体的データセットのための予測モデルを構築するように、開発者によって生成される技法を活用してもよい。異なるモデルビルダが、異なるレベルの経験を有し、したがって、ユーザインターフェースから異なるサポートを要求し得る。比較的新しいユーザに関して、ユーザインターフェース１２０は、可能な限り自動的なプロセスを提示するが、依然として、オプションを探索し、それによって、予測モデル化についてさらに知る能力をユーザに与えてもよい。中間ユーザに関して、ユーザインターフェース１２０は、特定の問題を解決することがどれだけ容易であろうかを急速に査定すること、それらの既存の予測モデルが、予測モデル化システム１００が自動的に生成することができるものにどれだけ匹敵するかを比較すること、および最終的に実質的な実践同調から利益を得るであろう複雑なプロジェクト上で加速した始動を行うこと促進するように、情報を提示してもよい。上級ユーザに関して、ユーザインターフェース１２０は、既存の予測モデルのためのいくつかの余剰小数位の精度の抽出、ユーザが取り組んできた問題への新しい技法の適用可能性の高速査定、および団体が直面し得る問題の部類全体のための技法の開発を促進してもよい。上級ユーザの知識を捕捉することによって、いくつかの実施形態は、残りの団体の全体を通したその知識の伝搬を促進する。
【０１７６】
ユーザ要件の本幅をサポートするために、ユーザインターフェース１２０のいくつかの実施形態は、モデル構築プロセスを反映する一連のインターフェースツールを提供する。また、各ツールは、基本から高度まで一連の特徴を提供してもよい。モデル構築プロセスにおける第１のステップは、データセットをロードして調製するステップを伴ってもよい。以前に議論されたように、ユーザは、ファイルをアップロードし、またはオンラインシステムからデータにアクセスする方法を規定してもよい。モデル化プロジェクトグループまたは階層との関連で、ユーザはまた、親データセットのどの部分が現在のプロジェクトに使用されるものであるか、およびどの部品が追加されるものであるかを規定してもよい。
【０１７７】
基本ユーザに関して、予測モデル化システム１００は、データセットが規定された後に、即時に続けてモデルを構築してもよく、ユーザインターフェース１２０が、限定ではないが、解析不可能なデータ、観察が少なすぎて良好な結果を期待できない、観察が多すぎて妥当な時間量で実行できない、欠測値が多すぎる、または分布が異常な結果につながり得る変数を含む、厄介な問題にフラグを付ける場合のみ、一時停止する。中間ユーザに関して、ユーザインターフェース１２０は、データセット特性の表、ならびに可変重要性、可変影響、および影響ホットスポットのグラフを提示することによって、データをさらに詳しく理解することを促進してもよい。ユーザインターフェース１２０はまた、限定ではないが、相関行列、部分従属プロット、および／またはｋ平均法ならびに階層的クラスタリング等の監視されていない機械学習アルゴリズムの結果を含む、視覚化ツールを提供することによって、変数の間の関係の理解および視覚化を促進してもよい。いくつかの実施形態では、ユーザインターフェース１２０は、既存の特徴またはそれらの組み合わせを変換する式を規定することによって、上級ユーザが完全に新しいデータセット特徴を作成することを可能にする。
【０１７８】
いったんデータセットがロードされると、ユーザは、最適化されるモデル適合測定基準を規定してもよい。基本ユーザに関して、予測モデル化システム１００は、モデル適合測定基準を選定してもよく、ユーザインターフェース１２０は、選択の説明を提示してもよい。中間ユーザに関して、ユーザインターフェース１２０は、特定のデータセットのための異なる測定基準を選定することのトレードオフをユーザが理解することに役立つように、情報を提示してもよい。上級ユーザに関して、ユーザインターフェース１２０は、探索エンジン１１０によって収集される低レベル性能データに基づいて、式（例えば、目的関数）を書くことによって、またはさらにカスタム測定基準計算コードをアップロードすることによって、ユーザがカスタム測定基準を規定することを可能にしてもよい。
【０１７９】
データセットがロードされ、モデル適合測定基準が選択されると、ユーザは、探索エンジンを立ち上げてもよい。基本ユーザに関して、探索エンジン１１０は、モデル化技法のためのデフォルト優先順位決定設定を使用してもよく、ユーザインターフェース１２０は、モデル性能、データセットのどこまで実行が進行したか、および計算リソースの一般消費についての高レベル情報を提供してもよい。中間ユーザに関して、ユーザインターフェース１２０は、ユーザが、初期優先順位のうちのいくつかを考慮してわずかに調節する技法のサブセットを規定することを可能にしてもよい。いくつかの実施形態では、ユーザインターフェース１２０が、より粒度の細かい性能および進行データを提供するため、中間ユーザは、以前に説明されたように飛行中調節を行うことができる。いくつかの実施形態では、ユーザインターフェース１２０は、計算リソース消費についてのさらなる洞察および制御を中間ユーザに提供する。いくつかの実施形態では、ユーザインターフェース１２０は、考慮される技法およびそれらの優先順位の有意な（例えば、完全な）制御、利用可能な全ての性能データ、およびリソース消費の有意な（例えば、完全な）制御を上級ユーザに提供してもよい。明確に異なるインターフェースを異なるレベルのユーザに提供すること、またはデフォルトであまり上級ではないユーザのためにより高度な特徴を「折り畳むこと」のいずれか一方によって、ユーザインターフェース１２０のいくつかの実施形態は、それらの対応するレベルでユーザをサポートすることができる。
【０１８０】
検索空間の探索中または後に、ユーザインターフェースは、１つまたはそれを上回るモデル化技法の性能についての情報を提示してもよい。一部の性能情報が、表形式で表示されてもよい方で、他の性能情報は、グラフ形式で表示されてもよい。例えば、表形式で提示される情報は、限定ではないが、技法によるモデル性能の比較、評価されるデータの部分、技法の性質、または計算リソースの現在の消費を含んでもよい。グラフ形式で提示される情報は、限定ではないが、モデル化プロシージャにおけるタスクの有向グラフ、データセットの異なるパーティションにわたるモデル性能の比較、受信機動作特性およびリフトチャート等のモデル性能の表現、予測値対実際の値、ならびに経時的な計算リソースの消費を含んでもよい。ユーザインターフェース１２０は、いずれかのタイプの新しい性能情報の容易な包含を可能にする、モジュール式ユーザインターフェースフレームワークを含んでもよい。また、いくつかの実施形態は、各データパーティションのため、および／または各技法のために、いくつかのタイプの情報の表示を可能にしてもよい。
【０１８１】
以前に議論されたように、ユーザインターフェース１２０のいくつかの実施形態は、複数のプロジェクト上で複数のユーザの協調をサポートする。プロジェクトにわたって、ユーザインターフェース１２０は、ユーザが、データ、モデル化タスク、およびモデル化技法を共有することを可能にしてもよい。プロジェクト内で、ユーザインターフェース１２０は、ユーザが、データ、モデル、および結果を共有することを可能にしてもよい。いくつかの実施形態では、ユーザインターフェース１２０は、ユーザがプロジェクトの性質を修正し、プロジェクトに割り付けられたリソースを使用することを可能にしてもよい。いくつかの実施形態では、ユーザインターフェース１２０は、複数のユーザがプロジェクトデータを修正し、モデルをプロジェクトに追加し、次いで、これらの寄与を比較することを可能にしてもよい。いくつかの実施形態では、ユーザインターフェース１２０は、どのユーザがプロジェクトに具体的変更を行ったか、変更が行われたとき、およびどのようなプロジェクトリソースをユーザが使用したかを識別してもよい。
【０１８２】
モデル展開エンジン
モデル展開エンジン１４０は、動作環境内で予測モデルを展開するためのツールを提供する。いくつかの実施形態では、モデル展開エンジン１４０は、展開された予測モデルの性能を監視し、性能データが展開されたモデルの性能を正確に反映するように、展開されたモデルを生成したモデル化技法と関連付けられる性能メタデータを更新する。
【０１８３】
ユーザは、適合モデルが現場試験を保証する、または値を追加することが可能であると考えるときに、適合予測モデルを展開してもよい。いくつかの実施形態では、ユーザおよび外部システムは、（例えば、予測モデル化システム１００のインターフェースサービス層内の）予測モジュールにアクセスし、使用される１つまたはそれを上回る予測モデルを規定し、新しい観察を供給してもよい。次いで、予測モジュールは、これらのモデルによって提供される予測を返してもよい。いくつかの実施形態では、管理者は、どのユーザおよび外部システムが本予測モジュールへのアクセスを有するかを制御し、および／または単位時間につき許可される予測の数等の使用制限を設定してもよい。
【０１８４】
各モデルに関して、探索エンジン１１０は、モデルを生成するために使用されるモデル化技法の記録、ならびに係数およびハイパーパラメータ値を含む適合後のモデルの状態を記憶してもよい。各技法がすでに機械実行可能であるため、これらの値は、実行エンジンが新しい観察データについて予測を生成するために十分であり得る。いくつかの実施形態では、モデルの予測は、モデル化技法において説明される前処理およびモデル化ステップを新しい入力データの各インスタンスに適用することによって、生成されてもよい。しかしながら、ある場合には、将来の予測計算の速度を増加させることが可能であり得る。例えば、適合モデルは、特定の変数の値のいくつかの独立チェックを行ってもよい。これらのチェックのうちのいくつかまたは全てを組み合わせ、次いで、単純に、利便的であるときにそれらを参照することにより、予測を生成するために使用される計算の総量を減少させてもよい。同様に、混合モデルのいくつかの構成要素モデルが、同一のデータ変換を行なってもよい。したがって、いくつかの実施形態は、重複計算を識別し、それらを１回だけ行い、それらを使用する構成要素モデルにおける計算の結果を参照することによって、計算時間を短縮してもよい。
【０１８５】
いくつかの実施形態では、展開エンジン１４０は、並列処理の機会を識別し、それによって、基礎的ハードウェアが複数の命令を並行して実行することができるときに、各予測を行うことの応答時間を短縮することによって、予測モデルの性能を向上させる。いくつかのモデル化技法は、一連のステップを連続的に説明してもよく、実際に、ステップのうちのいくつかは、論理的に独立し得る。各ステップの間でデータフローを調査することによって、展開エンジン１４０が、論理独立性の状況を識別し、次いで、予測モデルの実行を再構造化することができるため、独立ステップが並行して実行される。いったん任意の共通データ変換が完了すると、構成予測モデルが並行して実行され得るため、混合モデルは、特別な部類の並列化を提示してもよい。
【０１８６】
いくつかの実施形態では、展開エンジン１４０は、予測モデルの状態をメモリにキャッシュ格納してもよい。本アプローチを用いると、同一のモデルの連続予測要求は、モデル状態をロードする時間を負担しなくてもよい。キャッシングは、比較的少数の観察についての予測の多くの要求がある場合に、特に良好に機能してもよく、したがって、本ローディング時間が、潜在的に全実行時間の大部分である。
【０１８７】
いくつかの実施形態では、展開エンジン１４０は、予測モデルの少なくとも２つの実装、すなわち、サービスベースおよびコードベースの実装を提供してもよい。サービスベースの予測に関して、計算は、以下で説明されるように分散型コンピューティングインフラストラクチャ内で作動する。最終予測モデルは、分散型コンピューティングインフラストラクチャのデータサービス層に記憶されてもよい。ユーザまたは外部システムが予測を要求するとき、どのモデルが使用されるものであり、少なくとも１つの新しい観察を提供するかを示してもよい。次いで、予測モジュールは、データサービス層から、またはモジュールのメモリ内キャッシュから、モデルをロードし、提出された観察が元のデータセットの構造に合致することを検証し、各観察の予測値を計算してもよい。いくつかの実装では、予測モデルは、クラウドワーカの専用プール上で実行され、それによって、低分散応答時間を用いた予測の生成を促進してもよい。
【０１８８】
サービスベースの予測は、双方向性に、またはＡＰＩを介してのいずれかで、起こってもよい。双方向性予測に関して、ユーザは、各新しい観察のための特徴の値を入力し、もしくは１つまたはそれを上回る観察のためのデータを含有するファイルをアップロードしてもよい。次いで、ユーザは、ユーザインターフェース１２０を通して予測を直接受信し、またはそれらをファイルとしてダウンロードしてもよい。ＡＰＩ予測に関して、外部システムは、ローカルもしくは遠隔ＡＰＩを介して予測モジュールにアクセスし、１つまたはそれを上回る観察を提出し、引き換えに対応する計算された予測を受信してもよい。
【０１８９】
展開エンジン１４０のいくつかの実装は、サービスベースの予測を行う目的で、団体が分散型コンピューティングインフラストラクチャの１つまたはそれを上回る小型インスタンスを作成することを可能にし得る。分散型コンピューティングインフラストラクチャのインターフェース層では、各そのようなインスタンスは、ユーザ関連機能にアクセスすることなく、外部システムによってアクセス可能な監視および予測モジュールの部品を使用してもよい。分析サービス層は、技法ＩＤＥモジュールを使用しなくてもよく、本層内の残りのモジュールは、余分な装備を取り除かれ、予測要求を果たすために最適化されてもよい。データサービス層は、ユーザまたはモデル構築データ管理を使用しなくてもよい。そのような独立型予測インスタンスは、クラウドリソースの並列プール上で展開され、他の物理的場所に分散され、もしくはさらに「予測アプライアンス」の役割を果たす１つまたはそれを上回る専用マシンにダウンロードされてもよい。
【０１９０】
専用予測インスタンスを作成するために、ユーザは、例えば、クラウドインスタンスのセットまたは専用ハードウェアのセットであるかどうかにかかわらず、標的コンピューティングインフラストラクチャを規定してもよい。次いで、対応するモジュールが供給され、標的コンピューティングインフラストラクチャ上にインストールされるか、またはインストールのためにパッケージ化されるかのいずれかであってもよい。ユーザは、予測モデルの初期セットを用いてインスタンスを構成するか、または「ブランク」インスタンスを作成するかのいずれかであってもよい。初期インストール後、ユーザは、新しいものをインストールすること、または主要インストールから既存のものを更新することによって、利用可能な予測モデルを管理してもよい。
【０１９１】
コードベースの予測に関して、展開エンジン１４０は、特定のモデルに基づいて予測を計算するためのソースコードを生成してもよく、ユーザは、ソースコードをソフトウェアに組み込んでもよい。モデルが、リーフレベルタスクが全て、ユーザによって要求されるものと同一のプログラミング言語で実装される、技法に基づくとき、展開エンジン１４０は、リーフレベルタスクのためのコードを照合することによって、予測モデルのためのソースコードを生成してもよい。モデルが異なる言語からのコードを組み込む、または言語がユーザによって所望されるものと異なるとき、展開エンジン１４０は、より精巧なアプローチを使用してもよい。
【０１９２】
１つのアプローチは、リーフレベルタスクのソースコードを標的言語に翻訳するためのソースツーソースコンパイラを使用することである。別のアプローチは、次いで、元の言語のリンクインオブジェクトコードを呼び出し、またはそのようなオブジェクトコードを実行するエミュレータにアクセスする、標的言語で機能スタブを生成することである。前者のアプローチは、特異的にユーザの標的コンピューティングプラットフォームのためのオブジェクトコードを生成するように、クロスコンパイラの使用を伴ってもよい。後者のアプローチは、ユーザの標的プラットフォーム上で作動するであろうエミュレータの使用を伴ってもよい。
【０１９３】
別のアプローチは、特定のモデルの要約記述を生成し、次いで、その説明を標的言語にコンパイルすることである。要約記述を生成するために、展開エンジン１４０のいくつかの実施形態は、多数の潜在的前処理、モデル適合、および後処理ステップを説明するためのメタデータを使用してもよい。次いで、展開エンジンは、完全なモデルのための特定の動作を抽出し、メタモデルを使用してそれらを符号化してもよい。そのような実施形態では、標的プログラミング言語用のコンパイラが、メタモデルを標的言語に翻訳するために使用されてもよい。したがって、ユーザがサポートされた言語で予測コードを望む場合、コンパイラがそれを生成してもよい。例えば、決定木モデルでは、木における決定は、多種多様なプログラミング言語で直接実装可能である論理ｉｆ／ｔｈｅｎ／ｅｌｓｅ文に抽象化されてもよい。同様に、共通プログラミング言語でサポートされる数学演算のセットが、線形回帰モデルを実装するために使用されてもよい。
【０１９４】
しかしながら、任意の言語で予測モデルのソースコードを開示することは、ある場合には（例えば、予測モデル化技法または予測モデルが専用能力もしくは情報を含有する場合に）望ましくない場合がある。したがって、展開エンジン１４０は、そのプロシージャ詳細を開示することなく、予測モデルを、予測モデルの予測能力を留保する規則のセットに変換してもよい。１つのアプローチは、仮説的観察に応答して予測モデルが生成するであろう仮説的予測のセットから、そのような規則を生成する、アルゴリズムを適用することである。いくつかのそのようなアルゴリズムは、予測を行うためのｉｆ−ｔｈｅｎ規則のセット（例えば、ＲｕｌｅＦｉｔ）を生成してもよい。これらのアルゴリズムに関して、次いで、展開エンジン１４０は、元の予測モデルを変換する代わりに、結果として生じるｉｆ−ｔｈｅｎ規則を標的言語に変換してもよい。予測モデルをｉｆ−ｔｈｅｎ規則のセットに変換することの付加的利点としては、概して、条件付き論理の基本モデルがプログラミング言語にわたってより類似するため、恣意的な制御およびデータフローを伴う予測モデルよりも、ｉｆ−ｔｈｅｎ規則のセットを標的プログラミング言語に変換することがより容易である。
【０１９５】
いったんモデルが新しい観察に予測を行い始めると、展開エンジン１４０は、これらの予測を追跡し、それらの精度を測定し、予測モデル化システム１００を改良するためにこれらの結果を使用してもよい。サービスベースの予測の場合、予測がシステムの他の部分と同一の分散型コンピューティング環境内で起こるため、各観察および予測は、データサービス層を介して保存されてもよい。各予測の識別子を提供することによって、いくつかの実施形態は、実際の値が記録される場合、ユーザまたは外部ソフトウェアシステムがそれらを提出することを可能にしてもよい。コードベースの予測の場合、いくつかの実施形態は、観察および予測をローカルシステムの中に、またはデータサービス層のインスタンスに戻して保存する、コードを含んでもよい。再度、各予測の識別子を提供することにより、実際の標的値が利用可能になるときに、それらに対してモデル性能データの収集を促進してもよい。
【０１９６】
予測の精度および／または他のチャネルを通して取得される観察について、展開エンジン１４０によって直接収集される情報は、予測問題のためのモデルを改良するために（例えば、既存のモデルを「リフレッシュする」ため、または部分的もしくは完全にモデル化検索空間を再探索することによってモデルを生成するために）使用されてもよい。モデルを作成するようにデータが最初に追加された同一の方法で、または予測で以前に使用されたデータの標的値を提出することによって、モデルを改良するように、新しいデータが追加されることができる。
【０１９７】
いくつかのモデルが、対応するモデル化技法を新しいデータに適用し、結果として生じる新しいモデルを既存のモデルと組み合わせることによって、リフレッシュ（例えば、際適合）されてもよい一方で、他のモデルは、対応するモデル化技法を元のデータおよび新しいデータの組み合わせに適用することによって、リフレッシュされてもよい。いくつかの実施形態では、モデルをリフレッシュするとき、（例えば、モデルをより迅速にリフレッシュするように、または新しいデータが特定のパラメータに特に関連する情報を提供するため）モデルパラメータのうちのいくつかのみが再計算されてもよい。
【０１９８】
代替として、または加えて、新しいモデルが、データセットに含まれる新しいデータを伴って、部分的もしくは完全にモデル化検索空間を探索して生成されてもよい。検索空間の再探索は、検索空間の一部に限定され（例えば、元の検索で良好に機能したモデル化技法に限定され）てもよく、または検索空間全体を網羅してもよい。いずれの場合も、展開されたモデルを生成したモデル化技法のための初期好適性スコアは、予測問題について展開されたモデルの性能を反映するように再計算されてもよい。ユーザは、再計算を行うように前のデータの一部を除外することを選定してもよい。展開エンジン１４０のいくつかの実施形態は、データのどのサブセットがどのバージョンを訓練するために使用されたかを含む、同一の論理モデルの異なるバージョンを追跡してもよい。
【０１９９】
いくつかの実施形態では、本予測データは、経時的に入力パラメータまたは予測自体の動向の要求後分析を行うため、および入力もしくはモデル予測の質に関する潜在的問題についてユーザに警告するために、使用されてもよい。例えば、モデル性能の集約尺度が経時的に劣化し始める場合、本システムは、モデルをリフレッシュすること、または入力自体が偏移しているかどうかを調査することを考慮するようにユーザに警告してもよい。そのような偏移は、特定の変数の時間的変化、または全集団のドリフトによって引き起こされ得る。いくつかの実施形態では、本分析の大部分は、予測応答を減速することを回避するように、予測要求が完了した後に行われる。しかしながら、本システムは、（例えば、入力値が、元の訓練データ、モデル化技法、および最終モデル適合状態の有効な所与の特性として計算した値の範囲外である場合に）特に悪い予測を回避するように、予測時間にある検証を行ってもよい。
【０２００】
事後分析は、ユーザが訓練で使用された集団を十分に超えて外挿を行うようにモデルを展開した場合に、重要であり得る。例えば、モデルは、１つの地理的地域からのデータで訓練されているが、完全に異なる地理的地域内の集団に予測を行うために使用されている。ある時は、新しい集団へのそのような外挿は、予期されるよりも実質的に悪いモデル性能をもたらし得る。これらの場合において、展開エンジン１４０は、ユーザに警告し、および／または元の訓練データを拡張するように新しい値を使用して、１つまたはそれを上回るモデル化技法を再適合することによって、自動的にモデルをリフレッシュしてもよい。
【０２０１】
いくつかの実施形態の利点
予測モデル化システム１００は、任意の技能レベルで分析者の生産性を有意に向上させ、および／または所与の量のリソースを用いて達成可能な予測モデルの精度を有意に増加させてもよい。プロシージャを自動化することにより、作業負荷を低減させることができ、プロセスを体系化することにより、一貫性を強化して、分析者が一意の洞察を生成することにより多くの時間を費やすことを可能にすることができる。３つの共通シナリオ、すなわち、成果を予想すること、性質を予測すること、および測定を推論することが、これらの利点を例証する。
【０２０２】
成果を予想する
団体が成果を正確に予想することができる場合には、その挙動をより効果的に計画するとともに増進することができる。したがって、機械学習の一般的用途は、予想を生成するアルゴリズムを開発することである。例えば、多くの業界が、大規模で時間のかかるプロジェクトにおける費用を予測するという問題に直面する。
【０２０３】
いくつかの実施形態では、本明細書に説明される技法は、費用超過（例えば、ソフトウェア費用超過または構築費用超過）を予想するために使用されることができる。例えば、本明細書に説明される技法は、以下のように、費用超過を予想するという問題に適用されてもよい。
【０２０４】
１．応答変数タイプ（例えば、数値または２値、ほぼガウスである、もしくは強力に非ガウスである）に適切なモデル適合測定基準を選択する。予測モデル化システム１００は、ユーザによる技能および労力をあまり必要としない、データ特性に基づく測定基準を推奨してもよいが、ユーザが最終選択を行うことを可能にする。
【０２０５】
２．異常値および欠測データ値に対処するようにデータを前処理する。予測モデル化システム１００は、ユーザがモデル化問題の状況の認識をさらに深め、潜在的モデル化課題をより効果的に査定することを可能にする、データ特性の詳細な概要を提供してもよい。予測モデル化システム１００は、ユーザによる技能および労力をあまり必要としない、異常値検出および置換、欠測値補完、ならびに他のデータ異常の検出および処理のための自動プロシージャを含んでもよい。これらの課題に対処するための予測モデル化システムのプロシージャは、系統的であり、方法、データセット、および時間にわたって、その場限りのデータ編集プロシージャよりも一貫したモデル化結果につながり得る。
【０２０６】
３．モデル化および評価のためのデータを分割する。予測モデル化システム１００は、自動的にデータを訓練、検証、およびホールドアウトセットに分割してもよい。本分割は、一部のデータ分析者によって使用される訓練および試験分割より柔軟であり、機械学習コミュニティからの広く受け入れられている推奨と一致し得る。方法、データセット、および時間にわたる一貫した分割アプローチの使用は、結果をより同等にし、商業的状況で展開リソースのより効果的な割付を可能にすることができる。
【０２０７】
４．モデル構造を選択し、導出された特徴を生成し、モデル同調パラメータを選択し、モデルを適合させ、評価する。いくつかの実施形態では、予測モデル化システム１００は、限定ではないが、決定木、ニューラルネットワーク、サポートベクターマシンモデル、回帰モデル、ブーストツリー、ランダムフォレスト、深層学習ニューラルネットワーク等を含む、多くの異なるモデルタイプを適合させることができる。予測モデル化システム１００は、最良個別性能を呈するこれらの構成要素モデルからアンサンブルを自動的に構築するというオプションを提供してもよい。潜在的モデルのより大きい空間を探索することにより、精度を向上させることができる。予測モデル化システムは、異なるデータタイプ（例えば、ボックス・コックス変換、テキスト前処理、主要構成要素等）に適切である、種々の導出された特徴を自動的に生成してもよい。潜在的変換のより大きい空間を探索することにより、精度を向上させることができる。予測モデル化システム１００は、モデル構築プロセスの一部として、これらの同調パラメータの最良値を選択するために、交差検証を使用してもよく、それによって、同調パラメータの選択を向上させ、パラメータの選択が結果にどのように影響を及ぼすかという監査証跡を作成する。予測モデル化システム１００は、本自動プロセスの一部と見なされる、異なるモデル構造を適合させて評価し、検証セット性能に関して結果をランク付けしてもよい。
【０２０８】
５．最終モデルを選択する。最終モデルの選択は、予測モデル化システム１００によって、またはユーザによって行われることができる。後者の場合、予測モデル化システムは、ユーザが、例えば、モデルのランク付けされた検証セット性能査定、性能を比較し、適合プロセスで使用されるもの以外の品質尺度によってランク付けするというオプション、および／または最良個別性能を呈するこれらの構成要素モデルからアンサンブルモデルを構築する機会を含む、本決定を行うことに役立つように、サポートを提供してもよい。
【０２０９】
予測モデル化システムのモデル開発プロセスの１つの重要な実用的側面は、いったんデータセットが組み立てられると、全ての後続の計算が同一のソフトウェア環境内で起こり得ることである。本側面は、多くの場合、異なるソフトウェア環境の組み合わせを伴う、従来のモデル構築労力からの重要な差異を表す。そのようなマルチプラットフォーム分析アプローチの重要な実用的不利点は、結果を異なるソフトウェア環境の間で共有され得る共通データ形式に変換する必要性である。多くの場合、本変換は、手動で、またはカスタム「単発」再フォーマットスクリプトを用いてのいずれかで、行われる。本プロセスのエラーは、極めて重篤なデータ歪曲につながり得る。予測モデル化システム１００は、１つのソフトウェア環境内で全ての計算を行うことによって、そのような再フォーマットおよびデータ転送エラーを回避してもよい。より一般的に、高度に自動であるため、多くの異なるモデル構造を適合させて最適化し、予測モデル化システム１００は、最終モデルへの実質的により高速で系統的であり、したがって、より容易に説明可能で反復可能なルートを提供することができる。また、予測モデル化システム１００が、より多くの異なるモデル化方法を探索し、より多くの可能な予測因子を含むことの結果として、結果として生じるモデルは、従来の方法によって取得されるものより正確であり得る。
【０２１０】
性質を予測する
多くの分野で、団体は、生産プロセスの成果の不確実性に直面し、所与の一式の条件が出力の最終性質にどのように影響を及ぼすであろうかを予測したい。したがって、機械学習の一般的用途は、これらの性質を予測するアルゴリズムを開発することである。例えば、コンクリートは、最終構造性質が状況によって劇的に変動し得る、一般的な建築材料である。時間に伴うコンクリート性質の有意な変動およびその高度可変組成へのそれらの依存性により、第１の原則から開発されるモデルも従来の回帰モデルも、十分な予測精度を提供しない。
【０２１１】
いくつかの実施形態では、本明細書に説明される技法は、生産プロセスの成果の性質（例えば、コンクリートの性質）を予測するために使用されることができる。例えば、本明細書に説明される技法は、以下のように、コンクリートの性質を予測するという問題に適用されてもよい。
【０２１２】
１．データセットを訓練、検証、および試験サブセットに分割する。
【０２１３】
２．モデル化データセットを一掃する。予測モデル化システム１００は、欠けているデータ、異常値、および他の重要データ異常を自動的にチェックし、処理方略を推奨し、それらを容認または拒否するオプションをユーザに提供してもよい。本アプローチは、ユーザによる技能および労力をあまり必要としなくてもよく、ならびに／または方法、データセット、および時間にわたって、より一貫した結果を提供してもよい。
【０２１４】
３．応答変数を選択し、一次適合測定基準を選定する。ユーザは、モデル化データセットで利用可能なものから予測される応答変数を選択してもよい。いったん応答変数が選定されると、予測モデル化システム１００は、ユーザが容認し、または無効にし得る、互換性のある適合測定基準を推奨してもよい。本アプローチは、ユーザによる技能および労力をあまり必要としなくてもよい。応答変数タイプおよび選択される適合測定基準に基づいて、予測モデル化システムは、従来の回帰モデル、ニューラルネットワーク、および他の機械学習モデル（例えば、ランダムフォレスト、ブーストツリー、サポートベクターマシン）を含む、予測モデルのセットを提供してもよい。可能なモデル化アプローチの空間の間で自動的に検索することによって、予測モデル化システム１００は、最終モデルの予期される精度を増加させてもよい。モデル選択のデフォルトセットは、考慮からあるモデルタイプを除外するように、デフォルトリストの一部ではなく予測モデル化システムによってサポートされる他のモデルタイプを追加するように、または（例えば、ＲもしくはＰｙｔｈｏｎで実装される）ユーザの独自のカスタムモデルタイプを追加するように、無効にされてもよい。
【０２１５】
４．入力特徴を生成し、モデルを適合させ、モデル特有の同調パラメータを最適化し、性能を評価する。いくつかの実施形態では、特徴生成は、数値共変量、ボックス・コックス変換、主要構成要素等のためのスケーリングを含んでもよい。モデルの同調パラメータは、交差検証を介して最適化されてもよい。検証セット性能尺度は、他の概要特性（例えば、回帰モデルのモデルパラメータ、ブーストツリーまたはランダムフォレストの可変重要性尺度）とともに、各モデルについて計算されて提示されてもよい。
【０２１６】
５．最終モデルを選択する。最終モデルの選択は、予測モデル化システム１００によって、またはユーザによって行われることができる。後者の場合、予測モデル化システムは、ユーザが、例えば、モデルのランク付けされた検証セット性能査定、性能を比較し、適合プロセスで使用されるもの以外の品質尺度によってランク付けするというオプション、および／または最良個別性能を呈するこれらの構成要素モデルからアンサンブルモデルを構築する機会を含む、本決定を行うことに役立つように、サポートを提供してもよい。
【０２１７】
測定を推論する
いくつかの測定は、他のものより行うことがはるかに高価であるため、団体は、より安価な測定基準をより高価なものの代わりに使うことを望み得る。したがって、機械学習の一般的用途は、より安価な測定の公知の出力から高価な測定の起こり得る出力を推論することである。例えば、「カール」は、紙製品がどのようにして平坦な形状から逸脱する傾向があるかを捕捉する性質であるが、典型的には、製品が完成した後のみ判断されることができる。したがって、製造中に容易に測定される機械的性質から紙のカールを推論できることは、所与のレベルの品質を達成する際に莫大な費用節約をもたらし得る。典型的な最終用途性質に関して、これらの性質と製造プロセス条件との間の関係は、よく理解されていない。
【０２１８】
いくつかの実施形態では、本明細書に説明される技法は、測定を推論するために使用されることができる。例えば、本明細書に説明される技法は、以下のように、測定を推論するという問題に適用されてもよい。
【０２１９】
１．モデル化データセットを特性化する。予測モデル化システム１００は、主要概要特性を提供し、ユーザがそれについてさらなる情報を自由に容認、拒否、または要求することができる、重要なデータ異常の処理の推奨を提供してもよい。例えば、変数の主要特性が計算されて表示されてもよく、欠けているデータの普及が表示されてもよく、処理方略が推奨されてもよく、数値変数の異常値が検出されてもよく、見つかった場合、処理方略が推奨されてもよく、および／または他のデータ異常が自動的に検出されてもよく（例えば、正常値、値が決して変化しない、情報を与えない変数）、推奨された処理がユーザに利用可能にされてもよい。
【０２２０】
２．データセットを訓練／検証／ホールドアウトサブセットに分割する。
【０２２１】
３．特徴生成／モデル構造選択／モデル適合。予測モデル化システム１００は、これらのステップを組み合わせて自動化し、広範な内部反復を可能にしてもよい。複数の特徴が、主要構成要素のような従来の技法およびブーストツリーのようなより新しい方法を両方とも使用して、自動的に生成されて評価されてもよい。回帰モデル、ニューラルネットワーク、サポートベクターマシン、ランダムフォレスト、ブーストツリー、およびその他を含む、多くの異なるモデルタイプが適合されて比較されてもよい。加えて、ユーザは、本デフォルト収集の一部ではない、他のモデル構造を含むというオプションを有してもよい。モデルサブ構造選択（例えば、ニューラルネットワーク内の隠されたユニットの数の選択、他のモデル特有の同調パラメータの仕様等）が、本モデル適合および評価プロセスの一部として、広範な交差検証によって自動的に行われてもよい。
【０２２２】
４．最終モデルを選択する。最終モデルの選択は、予測モデル化システム１００によって、またはユーザによって行われることができる。後者の場合、予測モデル化システムは、ユーザが、例えば、モデルのランク付けされた検証セット性能査定、性能を比較し、適合プロセスで使用されるもの以外の品質尺度によってランク付けするというオプション、および／または最良個別性能を呈するこれらの構成要素モデルからアンサンブルモデルを構築する機会を含む、本決定を行うことに役立つように、サポートを提供してもよい。
【０２２３】
いくつかの実施形態では、予測モデル化システム１００が、データ前処理（例えば、異常検出）、データ分割、多重特徴生成、モデル適合、およびモデル評価を自動化し、効率的に実装するため、モデルを開発するために必要とされる時間は、従来の開発サイクルにおける時間よりもはるかに短くあり得る。さらに、いくつかの実施形態では、予測モデル化システムが、自動的に、欠けているデータおよび異常値のような周知のデータ異常、ならびに正常値（データ分布と一致するが誤っていない繰り返しの観察）および事後決定因子（すなわち、情報漏出から生じる極めて予測的な共変量）のようなあまり広く認識されていない異常を両方とも取り扱うデータ前処理プロシージャを含むため、結果として生じるモデルは、より正確で、より有用であり得る。いくつかの実施形態では、予測モデル化システム１００は、従来的に実行可能であるよりも、非常に広範囲のモデルタイプおよび各タイプの多くのより具体的なモデルを探索することができる。本モデル多様性は、低下した品質のデータセットに適用されたときでさえも不十分な結果の可能性を大いに低減させ得る。
【０２２４】
予測モデル化システムの実装
図５を参照すると、いくつかの実施形態では、予測モデル化システム５００（例えば、予測モデル化システム１００の実施形態）は、少なくとも１つのクライアントコンピュータ５１０と、少なくとも１つのサーバ５５０と、１つまたはそれを上回る処理ノード５７０とを含む。例証的構成は、例示的目的のためにすぎず、任意の数のクライアント５１０および／またはサーバ５５０があり得ることが意図される。
【０２２５】
いくつかの実施形態では、予測モデル化システム５００は、方法３００の１つまたはそれを上回る（例えば、全ての）ステップを行なってもよい。いくつかの実施形態では、クライアント５１０は、ユーザインターフェース１２０を実装してもよく、サーバ５５０の予測モデル化モジュール５５２は、予測モデル化システム１００の他の構成要素（例えば、モデル化空間探索エンジン１１０、モデル化技法１３０のライブラリ、予測問題のライブラリ、および／またはモデル化展開エンジン１４０）を実装してもよい。いくつかの実施形態では、モデル化検索空間の探索のために探索エンジン１１０によって割り付けられる計算リソースは、１つまたはそれを上回る処理ノード５７０のリソースであってもよく、１つまたはそれを上回る処理ノード５７０は、リソース割付スケジュールに従ってモデル化技法を実行してもよい。しかしながら、実施形態は、予測モデル化システム１００もしくは予測モデル化方法３００の構成要素が、クライアント５１０、サーバ５５０、および１つまたはそれを上回る処理ノード５７０の間で分散される、様式によって限定されない。さらに、いくつかの実施形態では、予測モデル化システム１００の全ての構成要素は、（クライアント５１０、サーバ５５０、および処理ノード５７０の間に分散される代わりに）単一のコンピュータ上に実装され、または２つのコンピュータ（例えば、クライアント５１０およびサーバ５５０）上に実装されてもよい。
【０２２６】
１つまたはそれを上回る通信ネットワーク５３０は、クライアント５１０をサーバ５５０と接続し、１つまたはそれを上回る通信ネットワーク５８０は、サーバ５５０を処理ノード５７０と接続する。通信は、独立型電話線、ＬＡＮまたはＷＡＮリンク（例えば、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５）、広帯域接続（ＩＳＤＮ、フレームリレー、ＡＴＭ）、および／または無線リンク（ＩＥＥＥ  ８０２．１１、Ｂｌｕｅｔｏｏｔｈ（登録商標））等の任意の媒体を介して行われてもよい。好ましくは、ネットワーク５３０／５８０は、ＴＣＰ／ＩＰプロトコル通信を搬送することができ、クライアント５１０、サーバ５５０、および処理ノード５７０によって伝送されるデータ（例えば、ＨＴＴＰ／ＨＴＴＰＳ要求等）は、そのようなＴＣＰ／ＩＰネットワークを経由して伝達されることができる。ネットワークのタイプは、制限ではないが、任意の好適なネットワークが使用されてもよい。通信ネットワーク５３０／５８０としての機能を果たす、またはその一部であり得る、ネットワークの非限定的実施例は、多くの異なる通信媒体およびプロトコルに適応し得る、無線または有線イーサネット（登録商標）ベースのイントラネット、ローカルもしくは広域ネットワーク（ＬＡＮまたはＷＡＮ）、および／またはインターネットとして公知のグローバル通信ネットワークを含む。
【０２２７】
クライアント５１０は、好ましくは、ハードウェア上で作動するソフトウェア５１２を伴って実装される。いくつかの実施形態では、ハードウェアは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎ（Ｒｅｄｍｏｎｄ，  Ｗａｓｈｉｎｇｔｏｎ）からのＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）族のオペレーティングシステム、Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ（Ｃｕｐｅｒｔｉｎｏ，  Ｃａｌｉｆｏｒｎｉａ）からのＭＡＣＩＮＴＯＳＨオペレーティングシステム、および／またはＳＵＮ  ＭＩＣＲＯ  ＳＹＳＴＥＭＳからのＳＵＮ  ＳＯＬＡＲＩＳ等の種々の種類のＵｎｉｘ（登録商標）、ならびにＲＥＤ  ＨＡＴ，  ＩＮＣ．（Ｄｕｒｈａｍ，Ｎｏｒｔｈ  Ｃａｒｏｌｉｎａ）からのＧＮＵ／Ｌｉｎｕｘ（登録商標）等のオペレーティングシステムを実行することが可能なパーソナルコンピュータ（例えば、ＩＮＴＥＬプロセッサを伴うＰＣまたはＡＰＰＬＥ  ＭＡＣＩＮＴＯＳＨ）を含んでもよい。クライアント５１０はまた、スマートまたはダム端末、ネットワークコンピュータ、無線デバイス、無線電話、情報アプライアンス、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、携帯情報端末、タブレット、スマートフォン、または汎用コンピュータとして操作される他のコンピュータデバイス、もしくはクライアント５１０としての機能を果たすためのみに使用される特殊用途ハードウェアデバイス等のハードウェア上で実装されてもよい。
【０２２８】
概して、いくつかの実施形態では、クライアント５１０は、電子メールおよび／またはインスタントメッセージを送受信すること、ワールドワイドウェブを経由して利用可能なコンテンツを要求して閲覧すること、チャットルームに参加すること、もしくはコンピュータ、ハンドヘルドデバイス、または携帯電話を使用して一般的に行われる他のタスクを行うことを含む、種々の活動のために操作され、使用されることができる。クライアント５１０はまた、雇用の一部としてクライアント５１０をユーザに提供する従業員等の他者の代わりに、ユーザによって操作されることもできる。
【０２２９】
種々の実施形態では、クライアントコンピュータ５１０のソフトウェア５１２は、クライアントソフトウェア５１４および／またはウェブブラウザ５１６を含む。ウェブブラウザ５１４は、クライアント５１０が、ウェブページ要求を用いて（例えば、サーバ５５０から）ウェブページまたは他のダウンロード可能プログラム、アプレット、もしくはドキュメントを要求することを可能にする。ウェブページの一実施例は、表示、実行、再生、処理、ストリーム配信、および／または記憶されることができ、かつ他のウェブページへのリンクもしくはポインタを含有することができる、コンピュータ実行可能または解釈可能情報、グラフィックス、音声、テキスト、および／またはビデオを含む、データファイルである。市販のウェブブラウザソフトウェア５１６の実施例は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって提供されるＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＡＯＬ／Ｔｉｍｅ  Ｗａｒｎｅｒによって提供されるＮＥＴＳＣＡＰＥ  ＮＡＶＩＧＡＴＯＲ、Ｍｏｚｉｌｌａ  Ｆｏｕｎｄａｔｉｏｎによって提供されるＦＩＲＥＦＯＸ、またはＧｏｏｇｌｅによって提供されるＣＨＲＯＭＥである。
【０２３０】
いくつかの実施形態では、ソフトウェア５１２は、クライアントソフトウェア５１４を含む。クライアントソフトウェア５１４は、例えば、ユーザが電子メール、インスタントメッセージ、電話の呼び出し、ビデオメッセージ、ストリーミングオーディオまたはビデオ、もしくは他のコンテンツを送受信することを可能にする、機能性をクライアント５１０に提供する。クライアントソフトウェア５１４の実施例は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって提供されるＯＵＴＬＯＯＫおよびＯＵＴＬＯＯＫ  ＥＸＰＲＥＳＳ、Ｍｏｚｉｌｌａ  Ｆｏｕｎｄａｔｉｏｎによって提供されるＴＨＵＮＤＥＲＢＩＲＤ、およびＡＯＬ／Ｔｉｍｅ  Ｗａｒｎｅｒによって提供されるＩＮＳＴＡＮＴ  ＭＥＳＳＥＮＧＥＲを含むが、それらに限定されない。中央処理装置、揮発性および不揮発性記憶装置、入出力デバイス、およびディスプレイを含む、クライアントコンピュータと関連付けられる標準構成要素は、示されていない。
【０２３１】
いくつかの実施形態では、ウェブブラウザソフトウェア５１６および／またはクライアントソフトウェア５１４は、クライアントが予測モデル化システム１００のためのユーザインターフェース１２０にアクセスすることを可能にしてもよい。
【０２３２】
サーバ５５０は、クライアント５１０と相互作用する。サーバ５５０は、好ましくは、十分なメモリ、データ記憶、および処理能力を有し、かつサーバクラスオペレーティングシステム（例えば、ＳＵＮ  Ｓｏｌａｒｉｓ、ＧＮＵ／Ｌｉｎｕｘ（登録商標）、およびＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）族のオペレーティングシステム）を実行する、１つまたはそれを上回るサーバクラスコンピュータ上で実装される。デバイスの容量およびユーザベースのサイズに応じて、本明細書に具体的に説明されるもの以外のシステムハードウェアおよびソフトウェアもまた、使用されてもよい。例えば、サーバ５５０は、サーバファームもしくはサーバネットワーク等の１つまたはそれを上回るサーバの論理グループであってもよく、またはその一部であってもよい。別の実施例として、相互と関連付けられる、または接続される複数のサーバ５５０があってもよく、もしくは複数のサーバが、共有データを用いるが独立して動作してもよい。さらなる実施形態では、大規模システムで典型的であるように、異なるサーバコンピュータ上、同一のサーバ上、またはある組み合わせで作動する、異なる構成要素を伴って、アプリケーションソフトウェアが構成要素で実装されることができる。
【０２３３】
いくつかの実施形態では、サーバ５５０は、予測モデル化モジュール５５２、通信モジュール５５６、および／またはデータ記憶モジュール５５４を含む。いくつかの実施形態では、予測モデル化モジュール５５２は、モデル化空間探索エンジン１１０、モデル化技法１３０のライブラリ、予測問題のライブラリ、および／またはモデル化展開エンジン１４０を実装してもよい。いくつかの実施形態では、サーバ５５０は、予測モデル化モジュール５５２の出力をクライアント５１０に伝達するため、および／または処理ノード５７０上のモデル化技法の実行を監督するために、通信モジュール５５６を使用してもよい。本明細書の全体を通して説明されるモジュールは、１つまたは複数の任意の好適なプログラミング言語（Ｃ＋＋、Ｃ＃、ｊａｖａ（登録商標）、ＬＩＳＰ、ＢＡＳＩＣ、ＰＥＲＬ等）を使用して、全体的もしくは部分的にソフトウェアプログラムとして、および／またはハードウェアデバイス（例えば、ＡＳＩＣ、ＦＰＧＡ、プロセッサ、メモリ、記憶装置、および同等物）として、実装されることができる。
【０２３４】
データ記憶モジュール５５４は、例えば、予測モデル化ライブラリ１３０および／または予測問題のライブラリを記憶してもよい。データ記憶モジュール５５４は、例えば、ＭｙＳＱＬ  ＡＢ（Ｕｐｐｓａｌａ，  Ｓｗｅｄｅｎ）によるＭｙＳＱＬデータベースサーバ、ＰｏｓｔｇｒｅＳＱＬ  Ｇｌｏｂａｌ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｇｒｏｕｐ（Ｂｅｒｋｅｌｅｙ，ＣＡ）によるＰｏｓｔｇｒｅＳＱＬデータベースサーバ、またはＯＲＡＣＬＥ  Ｃｏｒｐ．（Ｒｅｄｗｏｏｄ  Ｓｈｏｒｅｓ，ＣＡ）によって提供されるＯＲＡＣＬＥデータベースサーバを使用して、実装されてもよい。
【０２３５】
図６−８は、予測モデル化システム１００の１つの可能な実装を図示する。図６−８の議論は、いくつかの実施形態の一例として挙げられ、決して限定的ではない。
【０２３６】
前述のプロシージャを実行するために、予測モデル化システム１００は、種々のクライアントおよびサーバコンピュータ上で作動する分散型ソフトウェアアーキテクチャ６００を使用してもよい。ソフトウェアアーキテクチャ６００の目標は、豊富なユーザ経験および計算集約的処理を同時に実現することである。ソフトウェアアーキテクチャ６００は、基本４層インターネットアーキテクチャの変形例を実装してもよい。図６に図示されるように、これは、アプリケーションおよびデータ層を介して調整される、クラウドベースの計算を活用するように、本基盤を拡張する。
【０２３７】
アーキテクチャ６００と基本４層インターネットアーキテクチャとの間の類似性および差異は、以下を含んでもよい。
【０２３８】
（１）クライアント６１０。アーキテクチャ６００は、クライアント６１０について任意の他のインターネットアプリケーションと本質的に同一の仮定を立てる。主要な使用事例は、複雑なタスクを行うための長い時間周期にわたる頻繁なアクセスを含む。したがって、標的プラットフォームは、ラップトップまたはデスクトップ上で作動する豊富なウェブクライアントを含む。しかしながら、ユーザは、モバイルデバイスを介してアーキテクチャにアクセスしてもよい。したがって、アーキテクチャは、比較的薄いクライアント側ライブラリを使用して、インターフェースサービスＡＰＩに直接アクセスする、ネイティブクライアント６１２に適応するように設計される。当然ながら、Ｊａｖａ（登録商標）およびＦｌａｓｈ等の任意のクロスプラットフォームＧＵＩ層が、同様にこれらのＡＰＩにアクセスすることができる。
【０２３９】
（２）インターフェースサービス６２０。アーキテクチャの本層は、基本インターネット表現層の拡張バージョンである。機械学習を指図するために使用され得る精巧なユーザ相互作用により、代替実装は、本層を介して、スタティックＨＴＭＬ、ダイナミックＨＴＭＬ、ＳＶＧ視覚化、実行可能Ｊａｖａｓｃｒｉｐｔ（登録商標）コード、および内蔵ＩＤＥさえも含む、多種多様なコンテンツをサポートしてもよい。また、新しいインターネット技術が進化するにつれて、実装は、新しい形態のクライアントに適応し、またはユーザ相互作用論理を実行するためのクライアント、提示、およびアプリケーション層の間の作業の分担を変更する必要があり得る。したがって、それらのインターフェースサービス層６２０は、認証、アクセス制御、および入力検証等の共通サポート設備を加えて、様々な豊富度の複数のコンテンツ配信機構を統合するための柔軟なフレームワークを提供してもよい。
【０２４０】
（３）分析サービス６３０。アーキテクチャが、予測分析論ソリューションを生成するために使用されてもよいため、そのアプリケーション層は、分析サービスを配信することに集中する。機械学習の計算強度は、標準アプリケーション層への主要な増進、すなわち、クラウド環境で作動する多数の仮想「ワーカ」への機械学習タスクの動的割付を駆動する。実行エンジンによって生成される、あらゆる種類の論理計算要求に関して、分析サービス層６３０は、要求を容認し、要求をジョブに分け、ジョブをワーカに割り当て、ジョブ実行のために必要なデータを提供し、実行結果を照合するように、他の層と連携する。また、標準アプリケーション層からの関連差異もある。予測モデル化システム１００は、ユーザが独自の機械学習技法を開発することを可能にしてもよく、したがって、いくつかの実装は、それらの能力がクライアント、インターフェースサービス、および分析サービス層にわたって分割された、１つまたはそれを上回る完全ＩＤＥを提供してもよい。次いで、実行エンジンは、これらのＩＤＥを介して作成される新しい改良型技法を将来の機械学習計算に組み込む。
【０２４１】
（４）ワーカクラウド６４０。モデル化計算を効率的に行うために、予測モデル化システム１００は、それらをより小さいジョブに分けてもよく、クラウド環境で作動する仮想ワーカインスタンスにそれらを割り付ける。アーキテクチャ６００は、異なるタイプのワーカおよび異なるタイプのクラウドを可能にする。各ワーカタイプは、具体的仮想マシン構成に対応する。例えば、デフォルトワーカタイプは、信頼されたモデル化コードのための一般的機械学習能力を提供する。しかし、別のタイプは、ユーザ開発コードのための付加的なセキュリティ「サンドボクシング」を施行する。代替タイプは、具体的機械学習技法のために最適化される構成を提供し得る。分析サービス層６３０が各ワーカタイプの目的を理解する限り、適切にジョブを割り付けることができる。同様に、分析サービス層６３０は、異なるタイプのクラウド内のワーカを管理することができる。団体は、そのプライベートクラウド内のインスタンスのプールを維持するとともに、公開クラウド内のインスタンスを実行するオプションを有し得る。これはまた、異なる種類の商業クラウドサービスまたは専用内部サービス上でさえも作動する、インスタンスの異なるプールさえも有し得る。分析サービス層６３０が能力および費用のトレードオフを理解する限り、適切にジョブを割り付けることができる。
【０２４２】
（５）データサービス６５０。アーキテクチャ６００は、種々の層内で作動する種々のサービスが、対応する種々の記憶オプションから利益を享受し得ることを仮定する。したがって、これは、データサービス６５０の豊富なアレイを配信するためのフレームワーク、例えば、任意のタイプの恒久的データのためのファイル記憶装置、キャッシング等の目的のための一時的データベース、および長期記録管理のための恒久的データベースを提供する。そのようなサービスは、クラウドワーカおよびＩＤＥサーバのために使用される仮想マシンイメージファイル等の特定のタイプのコンテンツのために特殊化さえされてもよい。ある場合には、データサービス層６５０の実装は、他の層が円滑に連動することができるように、具体的タイプのデータ上で特定のアクセスイディオムを施行してもよい。例えば、データセットおよびモデル結果のための形式を標準化することは、ジョブをワーカに割り当てるときに、分析サービス層６３０が単純にユーザのデータセットの参照をパスし得ることを意味する。次いで、ワーカは、データサービス層６５０から本データセットにアクセスし、順に、データサービス６５０を介して記憶した、モデル結果の参照を返すことができる。
【０２４３】
（６）外部システム６６０。任意の他のインターネットアプリケーションのように、ＡＰＩの使用は、外部システムがアーキテクチャ６００の任意の層において予測モデル化システム１００と統合することを可能にしてもよい。例えば、ビジネスダッシュボードアプリケーションは、インターフェースサービス層６２０を通して、グラフィック視覚化およびモデル化結果にアクセスすることができる。外部データウェアハウスまたはライブビジネスアプリケーションさえも、データ統合プラットフォームを通してモデル化データセットを分析サービス層６３０に提供することができる。報告アプリケーションは、データサービス層６５０を通して、特定の時間周期からの全てのモデル化結果にアクセスすることができる。しかしながら、殆どの状況下で、外部システムは、ワーカクラウド６４０に直接アクセスすることができず、分析サービス層６３０を介してそれらを利用するであろう。
【０２４４】
多層アーキテクチャと同様に、アーキテクチャ６００の層は、論理的である。物理的に、異なる層からのサービスが、同一のマシン上で作動することができ、同一層内の異なるモジュールが、別個のマシン上で作動することができ、同一のモジュールの複数のインスタンスが、いくつかのマシンにわたって作動することができる。同様に、１つの層内のサービスは、複数のネットワークセグメントにわたって作動することができ、異なる層からのサービスは、異なるネットワークセグメント上で作動する場合もあり、作動しない場合もある。しかし、論理構造は、異なるモジュールが相互作用するであろう方法についての開発者およびオペレータの期待を調整することに役立つとともに、拡張可能性、信頼性、およびセキュリティ等のサービスレベル実装の平衡を保つために必要な融通性をオペレータに与える。
【０２４５】
高レベル層は、典型的なインターネットアプリケーションのものに合理的に類似すると考えられるが、クラウドベースの計算の追加は、情報がどのようにしてシステムを通って流れるかを実質的に変更してもよい。
【０２４６】
インターネットアプリケーションは、通常、２つの明確に異なるタイプ、すなわち、同期または非同期ユーザ相互作用を提供する。航空路線のフライトを見つけることおよび予約すること等の概念的に同期的な動作では、ユーザは、要求を行い、次の要求を行う前に応答を待つ。ある基準を満たすオンライン取引のためのアラートを設定すること等の概念的に非同期的な動作では、ユーザは、要求を行い、システムがある以降の時間にユーザに結果を通知することを期待する。（典型的には、本システムは、初期要求「チケット」をユーザに提供し、指定通信チャネルを通して通知を提供する。）
対照的に、機械学習モデルを構築して精緻化することは、中間のどこかで相互作用パターンを伴ってもよい。モデル化問題を設定することは、初期の一連の概念的に同期的なステップを伴ってもよい。しかし、ユーザが代替ソリューションを計算し始めるようにシステムに命令するとき、対応する計算の規模を理解するユーザは、即時応答を期待する可能性が低い。具体的には、遅延した結果の本期待は、相互作用の本段階を非同期的に見えさせる。
【０２４７】
しかしながら、予測モデル化システム１００は、「ファイア・アンド・フォーゲット」をユーザに強制せず、すなわち、通知を受信するまで問題への独自の従事を停止する。実際、これは、データセットを探索し続け、予備結果が到着するとすぐにそれらを精査するようにユーザを促してもよい。そのような付加的探索または初期洞察は、ユーザに「飛行中に」モデル構築パラメータを変更する気を起こさせる。次いで、本システムは、要求された変更を処理し、処理タスクを再び割り付けてもよい。予測モデル化システム１００は、ユーザのセッションの全体を通して連続的に本要求・改訂動態を可能にしてもよい。
【０２４８】
したがって、分析サービスおよびデータサービス層は、一方でのユーザからの要求・応答ループと他方でのワーカクラウドへの要求・応答ループとの間で仲介してもよい。図７は、本観点を図示する。
【０２４９】
図７は、予測モデル化システム１００が必ずしも層状モデルの中へきれいに適合しないことを強調し、各層が大部分はその直下の層のみに依拠することを仮定する。むしろ、分析サービス６３０およびデータサービス６５０は、ユーザおよび計算を強調的に調整する。本観点を考慮して、情報フローの３つの「列」がある。
【０２５０】
（１）Ｉｎｔｅｒｆａｃｅ＜−＞Ａｎａｌｙｔｉｃ＋Ｄａｔａ。フロー７１０の最左列は、最初に、ユーザの未加工データセットおよびモデル化要件を、計算ジョブの精緻化されたデータセットおよびリストに変換し、次いで、結果を融合し、容易に把握することができる形式でユーザに配信する。したがって、目標および制約が、インターフェースサービス６２０から分析サービス６３０まで流れる一方で、進行および期待は、後方に流れる。並行して、未加工データセットおよびユーザ注釈が、インターフェースサービス６２０からデータサービス６５０まで流れる一方で、訓練されたモデルおよびそれらの性能測定基準は、後方に流れる。任意の時点で、ユーザは、変更を開始し、分析サービス６３０およびデータサービス６５０層による調節を施行することができる。本動的循環フローに加えて、（例えば、インターフェースサービス６２０が、分析サービス６４０からシステム状態、またはデータサービス６５０から静的コンテンツを読み出すときに）より従来的な線形相互作用もあることに留意されたい。
【０２５１】
（２）Ａｎａｌｙｔｉｃ＋Ｄａｔａ＜−＞Ｗｏｒｋｅｒ。フロー７３０の最右列は、ワーカを供給し、計算ジョブを割り当て、これらのジョブのためにデータを提供する。したがって、ジョブ割り当て、それらのパラメータ、およびデータ参照が、分析サービス６３０からワーカクラウド６４０まで流れる一方で、進行および期待は、後方に流れる。精緻化されたデータセットが、データサービス６５０からワーカクラウド６４０まで流れる一方で、モデル化結果は、後方に流れる。ユーザからの更新された指図は、強制的に分析サービス層６３０に、飛行中にワーカを中断させ、更新されたモデル化ジョブを割当させるとともに、データサービス層６５０からのデータセットのリフレッシュを強制することができる。順に、更新された割当およびデータセットは、ワーカから戻る結果のフローを変化させる。
【０２５２】
（３）Ａｎａｌｙｔｉｃ＜−＞Ｄａｔａ。中間の２つの層は、左および右の列の間を仲介するように、それらの間で連動することができる。本トラフィック７２０の大部分は、クラウドワーカの実行進行および中間計算を追跡することに関与する。しかし、フローは、モデル構築命令への上述の飛行中変更に応答するときに、特に複雑になり得る。分析およびデータサービスは、計算の現在の状態を査定し、どの中間計算が依然として有効であるかを判定し、新しい計算ジョブを正しく構築する。当然ながら、（例えば、分析サービスがデータサービスからクラウドワーカのための規則および構成を読み出すときに）より従来的な線形相互作用もある。
【０２５３】
情報フローの本概念モデルは、層内の機能的モジュールの配列のためのコンテキストを提供する。それらは、単純に、アプリケーションプログラミングインターフェース（ＡＰＩ）をより高いレベルのブロックに提供し、より低いレベルのブロックからＡＰＩを消費する、状態のないブロックではない。むしろ、それらは、ユーザ間の協調および計算への動的参加者である。図８は、これらの機能的モジュールの配列を提示する。ユーザの観点から、インターフェースサービス層は、機能性のいくつかの明確に異なる領域を提供する。
【０２５４】
（１）ユーザ／プロジェクト管理８０２。各機械学習プロジェクトは、プロジェクトレベルパラメータ、責任、およびリソースを管理するために、インターフェースのプロジェクト管理構成要素を使用することができる、少なくとも１人の割り当てられた管理者を有する。本機能的構成要素はまた、システムレベル管理機能もサポートする。
【０２５５】
（２）監視８１０。本モジュールは、コンピューティングインフラストラクチャ上で診断を提供する。これは、各ワーカインスタンスのためにリアルタイムおよび各計算ジョブのために全体の両方で、計算リソース使用量を追跡するように分析サービス層内の対応するモジュール８１８と協働する。
【０２５６】
（３）技法設計者８０４。本モジュールは、前述の方法、技法、およびタスクビルダを使用するためのグラフィカルインターフェースをサポートする。本グラフィカルインターフェースがどのようにして実装され得るかという実施例は、Ｊａｖａｓｃｒｉｐｔ（登録商標）がクライアント６１０内で作動し、ＡＪＡＸ要求を介して技法設計者８０４と通信し、ユーザ用のグラフを図式的にレンダリングし、変更をサーバにプッシュ配信して戻すことである。
【０２５７】
（４）技法ＩＤＥ８１２。以前に説明されたように、予測モデル化システム１００のいくつかの実装は、リーフレベルタスクを実装するためのＩＤＥへの内蔵アクセスを技法開発者に提供してもよい。そのようなＩＤＥは、Ｐｙｔｈｏｎ等の機械学習に使用される汎用プログラミング言語、またはＲ等の特殊化科学コンピューティング環境をサポートすることができる。本機能性は、クライアント６１０、インターフェースサービス６２０、および分析サービス６３０層にわたって実行してもよい。クライアント構成要素６１０は、最初にＡＪＡＸを介したインターフェースサービス構成要素とのセッションを登録する、ＩＤＥ環境用のＪａｖａｓｃｒｉｐｔ（登録商標）コンテナをダウンロードして実行することができる。登録要求を認証して有効性を検証した後、インターフェースサービス構成要素は、ユーザのプロジェクトデータをクライアント６１０にダウンロードし、分析サービス層内で作動する専用ＩＤＥサーバインスタンスにセッションを引き渡す。次いで、本サーバインスタンスは、ウェブソケットを介してクライアント６１０と直接通信する。
【０２５８】
（５）データツール８０６。本モジュールは、モデルビルダがデータセットを規定し、それを理解し、モデル構築のためのそれを準備することを可能にする。
【０２５９】
（６）モデル化ダッシュボード８１４。各プロジェクトは、独自のモデル化ダッシュボードを有する。本モジュールのインスタンスは、プロジェクトのためのモデル化プロセスを立ち上げ、結果が到着するとそれらを測定し、飛行中調節を行うように、制御機器および計測機器をモデルビルダに提供する。これは、どのモデル化技法がどのデータセットに対して作動するかを計算し、これらの要件を分析サービス層にパスする。いったん実行エンジンがモデルを構築し始めると、本モジュールは、実行状態および制御を提供する。
【０２６０】
（７）洞察８０８。いったん機械学習プロセスが実質的な結果を生成し始めると、本モジュールは、より深い洞察をモデルビルダに提供する。実施例は、テキストマイニング概要、予測因子重要性、および各予測因子と標的との間の一方向関係を含む。これらの洞察の大部分は、理解することが容易であり、統計学の深い知識を必要としない。
【０２６１】
（８）予測８１６。いったん実行エンジンが少なくとも１つのモデルを構築すると、本モジュールは、新しいデータに基づいて予測を行うためのインターフェースを提供する。
【０２６２】
インターフェースサービス層内の活動は、分析サービス層内の活動をトリガする。上記で議論されるように、技法ＩＤＥおよび監視モジュールは、部分的に分析サービス層内で実行されるように分割される（監視モジュール８１８および技法ＩＤＥモジュール８２０を参照）。本層内の他のモジュールは、以下を含む。
【０２６３】
（１）ジョブ待ち行列８２２。各プロジェクトは、対応するモデル化ダッシュボードインスタンスからのモデル計算要求を果たす、独自のジョブ待ち行列インスタンスを有してもよい。ジョブは、プロジェクトのデータセットのパーティションの参照と、モデル化技法と、プロジェクト内の優先順位とを含む。次いで、本モジュールは、ジョブの優先順位リストを構築して維持する。計算リソースが利用可能であるとき、ブローカ８２４は、ジョブ待ち行列から次のジョブを要求する。十分な許可を伴うユーザは、任意の時間に待ち行列の中のモデル化ジョブを追加、除去、または優先することができる。待ち行列は、バックエンド記憶装置が極めて速い応答時間を提供する、一時的ＤＢモジュール８２６を介して持続される。
【０２６４】
（２）ブローカ８２４。これらのモジュールは、ワーカをインスタンス化し、それらにジョブを割り当て、それらの健全性を監視する。１つのブローカが、各ワーカクラウドのために作動してもよい。ブローカは、安全なバッファを加えて、開放ジョブ待ち行列からの現在のレベルの要求を果たすように、動的にワーカを供給し、終了させる。立ち上げると、各ワーカは、そのクラウド環境のためのブローカに自動的に登録し、その計算能力についての情報を提供する。ブローカおよびワーカは、数秒毎にハードビートメッセージを相互に送信する。ワーカは、クラッシュする、またはそのブローカとの接触を失う場合に、自動的に再起動し、再登録するであろう。ブローカは、利用可能なリソースのそのプールからワーカを破棄し、過剰に多くのハートビートメッセージを見逃した場合に警告を記録するであろう。新しいジョブがジョブ待ち行列から到着し、ワーカが既存のジョブを完了すると、ブローカは、ワーカの数およびこれらのワーカへのジョブの割付を継続的に再計算する。
【０２６５】
（３）ワーカクラウド６４０。これらのモジュールは、ワーカのプールを含む。各ワーカは、作動している仮想マシンインスタンス、またはそのクラウド環境内の内蔵計算リソースの他のユニットであり、対応するブローカからジョブを受信する。ワーカの観点から、ジョブは、プロジェクトの参照と、プロジェクトのデータセットのパーティションと、モデル化技法とを含む。割り当てられたモデル化技法の中の各タスクに関して、ワーカは、最初に、モデル化結果のための特別なディレクトリサブツリーを有する、ファイル記憶モジュール８３０にクエリを行うことによって、任意の他のワーカがプロジェクトのそのデータセットパーティションのためにそれを完了したかどうかを確認するようにチェックしてもよい。第１のワーカがステップを処理する場合、計算を行い、それをファイル記憶装置８３０に保存するため、他のワーカがそれを再利用することができる。モデル化技法が共通モデル化タスクライブラリの中のタスクから組み立てられるため、モデル化技法にわたってタスク実行の実質的なレベルの共通性があってもよい。タスク実行の結果をキャッシュに格納することは、消費される計算リソースの量を有意に削減する実装を可能にし得る。
【０２６６】
データサービス層６５０は、他の層内のモジュールをサポートするように、種々の異なる記憶機構を提供する。
【０２６７】
（１）一時的ＤＢ８２６。本モジュールは、極めて速いアクセスから利益を享受する、および／または一過性であるデータのための記憶機構へのインターフェースを提供し、記憶機構を維持する。いくつかの実装では、これは、自動フェイルオーバーを伴うマスタ・スレーブ構成で展開されるメモリ内ＤＢＭＳを使用する。本モジュールは、キー値ペアとしてオブジェクトを記憶するためのインターフェースを提供する。キーは、具体的ユーザおよびプロジェクトにリンクされるが、依然として非常に小さい。値は、文字列、リスト、またはセットであり得る。
【０２６８】
（２）持続的ＤＢ８２８。本モジュールは、持続的であるデータのための記憶機構へのインターフェースを提供し、記憶機構を維持する。いくつかの実装では、本モジュールによって取り扱われるデータの主要なタイプは、ＪＳＯＮオブジェクトを含み、高い可用性および高い性能の両方ために自動フェイルオーバーを伴うクラスタで展開される、高度に拡張可能な非ＳＱＬデータベースを使用してもよい。本モジュールを介して記憶されるオブジェクトは、典型的には、サイズが数メガバイトまで及ぶ。
【０２６９】
（３）ファイル記憶装置８３０。本モジュールは、ファイルのための記憶機構へのインターフェースを提供し、記憶機構を維持する。本モジュールを介して記憶されるデータのタイプは、アップロードされたデータセット、導出されたデータ、モデル計算、および予測を含む。本モジュールは、クラウド記憶装置の上でファイルディレクトリおよび命名規則を層状にしてもよい。加えて、クラウドワーカが本モジュールにアクセスするとき、それらはまた、記憶されたファイルをそれらのローカル記憶装置に一時的にキャッシュ格納してもよい。
【０２７０】
（４）ＶＭイメージ記憶装置８３２。本モジュールは、ＩＤＥおよびワーカインスタンスを実行するために使用されるＶＭイメージのための記憶装置へのインターフェースを提供し、記憶装置を維持する。これは、自給自足ＶＭコンテナ形式でイメージを記憶する。ＩＤＥインスタンスに関して、これは、セッションにわたってユーザの状態を留保する一方で、そのワーカタイプのテンプレートからのブランクコピーとして、新しいワーカインスタンスをロードする。
【０２７１】
ともに、これらのサービスは、以下を含む、多種多様な情報を管理する。
【０２７２】
（１）ＵＩセッション８３４：アクティブなユーザセッションの現在の状態をレンダリングし、単純な要求認証およびアクセス制御を行うためのデータ。
【０２７３】
（２）ＵＩオブジェクト８３６：ＵＩによって表示されるコンテンツ。
【０２７４】
（３）キャッシュ８３８：キャッシュ格納されたアプリケーションコンテンツ。
【０２７５】
（４）システム構成８４０：コンピューティングインフラストラクチャを立ち上げ、モデル検索サービスを実行するための構成パラメータ。
【０２７６】
（５）システム健全性８４２：システム６００のモジュールから収集されるリアルタイムデータ。
【０２７７】
（６）ユーザ／プロジェクト管理８４４：各プロジェクトの設定およびユーザ特権、ならびに個々のユーザ設定。
【０２７８】
（７）データセット８４６：プロジェクトのためにユーザによってアップロードされるデータファイル。
【０２７９】
（８）モデル化計算８４８：中間モデル化結果、最終適合モデル、および計算された予測。
【０２８０】
（９）ＶＭイメージ８５０：新しいＩＤＥサーバを立ち上げるために使用されるイメージ。
【０２８１】
再度、上記で説明される具体的モジュール８０２−８５０は、論理構築物である。各モジュールは、多くの異なるソースファイルからの実行コードを含んでもよく、所与のソースファイルは、機能性を多くの異なるモジュールに提供してもよい。
【０２８２】
いくつかの実施形態のさらなる説明
本明細書で提供される実施例は、別個のコンピュータ上に常駐するものとしてモジュール、または別個のコンピュータによって行われるものとして動作を説明した場合があるが、これらの構成要素の機能性は、単一のコンピュータ上で、または分散型様式において任意の多数のコンピュータ上で実装され得ることを理解されたい。上記の実施形態は、多数の方法のうちのいずれかで実装されてもよい。例えば、実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを使用して実装されてもよい。ソフトウェアで実装されるとき、ソフトウェアコードは、単一のコンピュータの中で提供されるか、または複数のコンピュータの間で分散されるかどうかに関わらず、任意の好適なプロセッサもしくはプロセッサの集合の上で実行されることができる。さらに、コンピュータは、ラックマウント式コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータ等のいくつかの形態のうちのいずれかで具現化され得ることを理解されたい。加えて、コンピュータは、携帯情報端末（ＰＤＡ）、スマートフォン、または任意の好適な携帯用もしくは固定電子デバイスを含む、概してコンピュータと見なされないが好適な処理能力を伴う、デバイスで具現化されてもよい。そのようなコンピュータは、企業ネットワークまたはインターネットとして等、ローカルエリアネットワークもしくは広域ネットワークとしての形態を含む、任意の好適な形態の１つまたはそれを上回るネットワークによって相互接続されてもよい。そのようなネットワークは、任意の好適な技術に基づいてもよく、任意の好適なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワーク、または光ファイバネットワークを含んでもよい。
【０２８３】
また、本明細書で概説される種々の方法およびプロセスは、種々のオペレーティングシステムもしくはプラットフォームのうちのいずれか１つを採用する、１つまたはそれを上回るプロセッサ上で実行可能である、ソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの好適なプログラミング言語および／またはプログラミングもしくはスクリプト作成ツールのうちのいずれかを使用して、書き込まれてもよく、また、フレームワークまたは仮想マシン上で実行される実行可能機械言語コードもしくは中間コードとしてコンパイルされてもよい。
【０２８４】
本側面では、いくつかの実施形態は、１つまたはそれを上回るコンピュータもしくは他のプロセッサ上で実行されるときに、上記で議論される種々の実施形態を実装する方法を行う、１つまたはそれを上回るプログラムで符号化される、コンピュータ可読媒体（または複数のコンピュータ可読媒体）（例えば、コンピュータメモリ、１つまたはそれを上回るフロッピー（登録商標）ディスク、コンパクトディスク、光学ディスク、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイもしくは他の半導体デバイス内の回路構成、または他の有形コンピュータ記憶媒体）として具現化されてもよい。１つまたは複数のコンピュータ可読媒体は、一過性であり得る。１つまたは複数のコンピュータ可読媒体は、その上に記憶される１つまたは複数のプログラムが、上記で議論されるように予測モデル化の種々の側面を実装するように１つまたはそれを上回る異なるコンピュータもしくは他のプロセッサ上にロードされ得るように、可搬性であり得る。用語「プログラム」または「ソフトウェア」は、本開示に説明される種々の側面を実装するようにコンピュータもしくは他のプロセッサをプログラムするために採用され得る、任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために、一般的意味において本明細書で使用される。加えて、本開示の一側面によると、実行されたときに予測モデル化方法を行う１つまたはそれを上回るコンピュータプログラムは、単一のコンピュータもしくはプロセッサ上に常駐する必要はないが、予測モデル化の種々の側面を実装するように、いくつかの異なるコンピュータまたはプロセッサの間でモジュール様式において分散され得ることを理解されたい。
【０２８５】
コンピュータ実行可能命令は、１つまたはそれを上回るコンピュータもしくは他のデバイスによって実行される、プログラムモジュール等の多くの形態であってもよい。概して、プログラムモジュールは、特定のタスクを行う、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。典型的には、プログラムモジュールの機能性は、種々の実施形態では、所望に応じて、組み合わせられる、または分散されてもよい。
【０２８６】
また、データ構造は、任意の好適な形態でコンピュータ可読媒体に記憶されてもよい。例証を簡単にするために、データ構造は、データ構造内の場所を通して関係付けられるフィールドを有することが示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ可読媒体内の場所を伴うフィールドのために記憶装置を割り当てることによって、達成されてもよい。しかしながら、ポインタ、タグ、またはデータ要素間の関係を確立する他の機構の使用を通すことを含む、任意の好適な機構が、データ構造のフィールド内の情報の間の関係を確立するために使用されてもよい。
【０２８７】
また、予測モデル化技法は、その実施例が提供されている、方法として具現化されてもよい。方法の一部として行われる作用は、任意の好適な方法で順序付けられてもよい。故に、例証的実施形態では、連続作用として示されるが、いくつかの作用を同時に行うことを含み得る、作用が図示されるものと異なる順序で行われる、実施形態が構築されてもよい。
【０２８８】
いくつかの実施形態では、本方法は、上記で説明されるプロセスに影響を及ぼす制御論理を提供するように、コンピュータのランダムアクセスメモリの部分に記憶されたコンピュータ命令として実装されてもよい。そのような実施形態では、プログラムは、ＦＯＲＴＲＡＮ、ＰＡＳＣＡＬ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）、ｊａｖａｓｃｒｉｐｔ（登録商標）、Ｔｃｌ、またはＢＡＳＩＣ等のいくつかの高レベル言語のうちのいずれか１つで書かれてもよい。さらに、プログラムは、スクリプト、マクロ、またはＥＸＣＥＬもしくはＶＩＳＵＡＬ  ＢＡＳＩＣ等の市販のソフトウェアに組み込まれた機能性で書かれてもよい。加えて、ソフトウェアは、コンピュータ上に常駐するマイクロプロセッサを対象としたアセンブリ言語で実装されてもよい。例えば、ソフトウェアは、ＩＢＭ  ＰＣまたはＰＣクローン上で作動するように構成される場合、Ｉｎｔｅｌ  ８０ｘ８６アセンブリ言語で実装されてもよい。ソフトウェアは、フロッピー（登録商標）ディスク、ハードディスク、光学ディスク、磁気テープ、ＰＲＯＭ、ＥＰＲＯＭ、またはＣＤ−ＲＯＭ等の「コンピュータ可読プログラム手段」を含むが、それらに限定されない、製造品上に組み込まれてもよい。
【０２８９】
本開示の種々の側面は、単独で、組み合わせて、または前述で具体的に説明されていない種々の配列で使用されてもよく、したがって、本発明は、その適用が、前述の説明に記載される、または図面に図示される構成要素の詳細および配列に限定されない。例えば、一実施形態で説明される側面は、任意の様式で他の実施形態で説明される側面と組み合わせられてもよい。
用語
本明細書で使用される表現法および用語は、説明の目的のためであり、限定的と見なされるべきではない。
【０２９０】
明細書および請求項で使用されるような「ａ」および「ａｎ」という不定冠詞は、明確にそれとは反対に示されない限り、「少なくとも１つの」を意味すると理解されたい。明細書および請求項で使用されるような「および／または」という語句は、そのように結合された要素の「いずれか一方または両方」、すなわち、ある場合には接合的に存在し、他の場合においては離接的に存在する要素を意味すると理解されるべきである。「および／または」で記載される複数の要素は、同じように、すなわち、そのように結合された要素のうちの「１つまたはそれを上回る」と解釈されるべきである。「および／または」節によって具体的に識別される要素以外に、具体的に識別される要素に関係しようと、無関係であろうと、他の要素が随意的に存在してもよい。したがって、非限定的実施例として、「Ａおよび／またはＢ」への言及は、「〜を備える」等の制約のない用語と併せて使用されると、一実施形態ではＡのみ（随意でＢ以外の要素を含む）、別の実施形態ではＢのみ（随意でＡ以外の要素を含む）、さらに別の実施形態ではＡおよびＢの両方（随意で他の要素を含む）等を指すことができる。
【０２９１】
明細書および請求項で使用されるように、「または」は、上記で定義されるような「および／または」と同一の意味を有すると理解されたい。例えば、リスト内の項目を分離するとき、「または」もしくは「および／または」は、包括的である、すなわち、少なくとも１つの包含であるが、また、いくつかの要素または要素のリストのうちの１つより多く、随意に、付加的な記載されていない項目を含むと解釈されるものとする。対照的に明確に示される、「〜のうちの１つのみ」または「〜のうちの正確に１つ」等の「のみ」の用語、もしくは請求項で使用されるときに、「〜から成る」は、いくつかの要素または要素のリストのうちの正確に１つの要素の包含を指すであろう。一般に、使用されるような用語「または」は、「いずれか一方」、「〜のうちの１つ」、「〜のうちの１つのみ」、または「〜のうちの正確に１つ」等の排他性の用語が先行するときに、排他的代替（すなわち、「両方ではなく一方または他方」）を示すとしてのみ解釈されるものとする。「本質的に〜から成る」は、請求項で使用されるとき、特許法の分野で使用されるようなその通常の意味を有するものとする。
【０２９２】
明細書および請求項で使用されるように、「少なくとも１つ」という語句は、１つまたはそれを上回る要素のリストを参照して、要素のリストの中の要素のうちのいずれか１つまたはそれを上回るものから選択される少なくとも１つの要素を意味するが、要素のリスト内に具体的に記載されたあらゆる要素のうちの少なくとも１つを必ずしも含まず、要素のリストの中の要素の任意の組み合わせを排除しないと理解されるべきである。この定義はまた、具体的に識別される要素に関係しようと、無関係であろうと、「少なくとも１つ」という語句が指す、要素のリスト内で具体的に識別される要素以外に、要素が随意で存在してもよいことを許容する。したがって、非限定的実施例として、「ＡおよびＢのうちの少なくとも１つ」（もしくは同等に「ＡまたはＢのうちの少なくとも１つ」、もしくは同等に「Ａおよび／またはＢのうちの少なくとも１つ」）は、一実施形態では、いずれのＢも存在しない、随意で１つより多くを含む、少なくとも１つのＡ（および随意でＢ以外の要素を含む）、別の実施形態では、いずれのＡも存在しない、随意で１つより多くを含む、少なくとも１つのＢ（および随意でＡ以外の要素を含む）、さらに別の実施形態では、随意で１つより多くを含む、少なくとも１つのＡ、および随意で１つより多くを含む、少なくとも１つのＢ（および随意で他の要素を含む）等を指すことができる。
【０２９３】
「〜を含む」、「〜を備える」、「〜を有する」、「〜を含有する」、「〜を伴う」、およびそれらの変形例の使用は、その後に記載される項目および付加的項目を包含するように意図されている。
【０２９４】
請求項要素を修飾するための請求項における「第１の」、「第２の」、「第３の」等の順序の用語の使用は、単独では、別の要素と比べた１つの請求項要素のいかなる優先順位、先行、または順序、もしくは方法の行為が行われる時間順序も含意しない。順序の用語は、請求項要素を区別するために、（順序の用語の使用のためであるが）ある名前を有する１つの請求項要素と、同一の名前を有する別の要素を区別する標識としてのみ使用される。
均等物
このようにして、本発明の少なくとも１つの実施形態のいくつかの側面を説明したが、種々の変更、修正、および改良が、当業者に容易に想起されるであろうことを理解されたい。そのような変更、修正、および改良は、本開示の一部であることを意図し、かつ本発明の精神および範囲内であることを意図している。したがって、前述の説明および図面は、一例にすぎない。
【図１】
2020191114.tif 000002
【図２】
2020191114.tif 000003
【図３】
2020191114.tif 000004
【図４】
2020191114.tif 000005
【図５】
2020191114.tif 000006
【図６】
2020191114.tif 000007
【図７】
2020191114.tif 000008
【図８】
2020191114.tif 000009
【外国語明細書】
2020191114000001.pdf