(57)【特許請求の範囲】
【請求項１】
反復モデル開発プログラムを走らせるときにキャッシュヒットを増加させるためのコンピューティングシステムであって、
プロセッサと、
キャッシュメモリと、
第２のメモリであって、前記第２のメモリは、前記プロセッサを使用して、
第１のモデルを生成するステップ（ａ）であって、前記第１のモデルは、第１のモデルコンポーネントプールからの第１のモデルコンポーネントを備えるステップ（ａ）と、
第２のモデルを生成するステップ（ｂ）であって、前記第２のモデルは、第２のモデルコンポーネントプールからの第２のモデルコンポーネントを備えるステップ（ｂ）と、
前記第１のモデルおよび前記第２のモデルを使用して、反復モデル開発プロセスを行って改善されたモデルセットを生成するステップ（ｃ）と、
（１）前記第１のモデルコンポーネントが前記改善されたモデルセット内に存在するモデルの量の、（２）前記第１のモデルコンポーネントが存在するモデルコンポーネントプールの量に対する比を備える、前記第１のモデルコンポーネントの第１のユーティリティメトリックを計算するステップ（ｄ）と、
（１）前記第２のモデルコンポーネントが前記改善されたモデルセット内に存在するモデルの量の、（２）前記第２のモデルコンポーネントが存在するモデルコンポーネントプールの量に対する比を備える、前記第２のモデルコンポーネントの第２のユーティリティメトリックを計算するステップ（ｅ）と、
前記第１のユーティリティメトリックおよび前記第２のユーティリティメトリックに基づいて、前記第１のモデルコンポーネントプールおよび前記第２のモデルコンポーネントプールから前記第１のモデルコンポーネントおよび前記第２のモデルコンポーネントを排除し、それによって、前記ステップ（ｃ）を実行するときに前記プロセッサが前記キャッシュメモリにアクセスする可能性を増加させるステップ（ｆ）と、
を行うための実行可能な命令を備える、第２のメモリと、
を備える、コンピューティングシステム。
【請求項２】
前記第１のモデルコンポーネントは、前記第１のモデル内での使用のために前記第１のモデルコンポーネントプールからランダムに選択される、請求項１に記載のコンピューティングシステム。
【請求項３】
前記第１のモデルコンポーネントプールおよび前記第２のモデルコンポーネントプールは、計算演算子、数学演算子、定数、予測子、特徴、変数、三項演算子、アルゴリズム、数式、二項演算子、隠れノード、重み、バイアス、勾配、およびハイパーパラメータのうちの少なくとも１つを備える、請求項１に記載のコンピューティングシステム。
【請求項４】
前記ステップ（ａ）および前記ステップ（ｂ）は、反復モデリングプロセスを備える、請求項１に記載のコンピューティングシステム。
【請求項５】
前記反復モデリングプロセスは、進化計算プロセス、遺伝的プログラミングプロセス、遺伝的アルゴリズムプロセス、ニューラルネットワークプロセス、ディープラーニングプロセス、マルコフモデリングプロセス、モンテカルロモデリングプロセス、および段階的回帰プロセスのうちの少なくとも１つを備える、請求項４に記載のコンピューティングシステム。
【請求項６】
前記第１のユーティリティメトリックおよび前記第２のユーティリティメトリックに基づいて、前記第１のモデルコンポーネントプールおよび前記第２のモデルコンポーネントプールからの第１のモデルコンポーネントおよび第２のモデルコンポーネントを保持するステップをさらに備える、請求項１に記載のコンピューティングシステム。
【請求項７】
前記第２のメモリは、
前記第１のユーティリティメトリックおよび前記第２のユーティリティメトリックに基づいて、前記第１のモデルコンポーネントプールおよび前記第２のモデルコンポーネントプールから前記第１のモデルコンポーネントおよび前記第２のモデルコンポーネントを排除して、第３のモデルコンポーネントプールを生成するステップと、
第３のモデルを生成するステップであって、前記第３のモデルは、前記第３のモデルコンポーネントプールからの第３のモデルコンポーネントを備えるステップと、
（１）前記第３のモデルコンポーネントが存在するモデルの量の、（２）前記第３のモデルコンポーネントが存在するモデルコンポーネントプールの量に対する比を備える、前記第３のモデルコンポーネントの第３のユーティリティメトリックを計算するステップと、
前記第３のユーティリティメトリックに基づいて、前記第３のモデルコンポーネントプールから前記第３のモデルコンポーネントを排除するステップと、
を行うための命令をさらに備える、請求項１に記載のコンピューティングシステム。
【請求項８】
反復モデル開発プログラムを走らせるときにキャッシュヒットを増加させるためのコンピューティングシステムであって、
プロセッサと、
キャッシュメモリと、
第２のメモリであって、
第１のモデルを生成するステップ（ａ）であって、前記第１のモデルは、第１のモデルコンポーネントプールからの第１のモデルコンポーネントを備えるステップ（ａ）と、
第２のモデルを生成するステップ（ｂ）であって、前記第２のモデルは、第２のモデルコンポーネントプールからの第２のモデルコンポーネントを備えるステップ（ｂ）と、
反復モデル開発プロセスを行って改善されたモデルセットを生成するステップ（ｃ）であって、前記改善されたモデルセットは、前記第１のモデルからの改善された第１のモデルおよび前記第２のモデルからの改善された第２のモデルを備えるステップ（ｃ）と、
（１）前記改善された第１のモデルに対応する第１のモデル属性メトリック、および（２）前記改善された第２のモデルに対応する第２のモデル属性メトリックを計算するステップ（ｄ）と、
（１）前記第１のモデルコンポーネントが前記改善されたモデルセット内に存在するモデルの量の、（２）前記第１のモデルコンポーネントが存在するモデルコンポーネントプールの量に対する比を備える、前記第１のモデルコンポーネントの第１のユーティリティメトリックを計算するステップ（ｅ）と、
（１）前記第２のモデルコンポーネントが前記改善されたモデルセット内に存在するモデルの量の、（２）前記第２のモデルコンポーネントが存在するモデルコンポーネントプールの量に対する比を備える、前記第２のモデルコンポーネントの第２のユーティリティメトリックを計算するステップ（ｆ）と、
前記第１のモデルコンポーネントに対応する第１の重み付けユーティリティメトリックを計算するステップ（ｇ）であって、前記第１の重み付けユーティリティメトリックは、（１）前記第１のモデルコンポーネントが存在するモデルに関するモデル属性メトリック、および（２）前記第１のユーティリティメトリックを組み込む第１の関数の結果を備えるステップ（ｇ）と、
前記第２のモデルコンポーネントに対応する第２の重み付けユーティリティメトリックを計算するステップ（ｈ）であって、前記第２の重み付けユーティリティメトリックは、（１）前記第２のモデルコンポーネントが存在するモデルに関するモデル属性メトリック、および（２）前記第２のユーティリティメトリックを組み込む第２の関数の結果を備えるステップ（ｈ）と、
前記第１の重み付けユーティリティメトリックおよび前記第２の重み付けユーティリティメトリックに基づいて、前記第１のモデルコンポーネントプールおよび前記第２のモデルコンポーネントプールから前記第１のモデルコンポーネントおよび前記第２のモデルコンポーネントを排除し、それによって、前記ステップ（ｃ）を実行するときに前記プロセッサが前記キャッシュメモリにアクセスする可能性を増加させるステップ（ｉ）と、
を行うための命令を備える、第２のメモリと、
を備える、コンピューティングシステム。
【請求項９】
前記モデル属性メトリックは、精度、感度、特異性、受信者動作特性（ＲＯＣ）メトリックからの曲線下面積（ＡＵＣ）、およびアルゴリズムの長さのうちの少なくとも１つを備える、請求項８に記載のコンピューティングシステム。
【請求項１０】
前記第２のメモリは、前記ステップ（ｉ）を行った後に前記ステップ（ｃ）を繰り返すための命令をさらに備える、請求項８に記載のコンピューティングシステム。
【請求項１１】
前記反復モデル開発プロセスは、進化計算プロセス、遺伝的プログラミングプロセス、遺伝的アルゴリズムプロセス、ニューラルネットワークプロセス、ディープラーニングプロセス、マルコフモデリングプロセス、モンテカルロモデリングプロセス、および段階的回帰プロセスのうちの少なくとも１つを備える、請求項１０に記載のコンピューティングシステム。
【請求項１２】
反復モデル開発プログラムを走らせるときにキャッシュヒットを増加させるためのコンピューティングシステムであって、
プロセッサと、
キャッシュメモリと、
予測子を含むデータセットを備え、かつ、
モデルコンポーネントを備えるモデルを生成するステップ（ａ）と、
反復モデル開発プロセスを行って改善されたモデルセットを生成するステップ（ｂ）であって、前記改善されたモデルセットは、前記モデルに基づく第１の改善されたモデルを含むステップ（ｂ）と、
前記データセットのサブセットを使用して、前記モデルに対応するモデル属性メトリックを計算するステップ（ｃ）と、
比を備える前記モデルコンポーネントのユーティリティメトリックを計算するステップ（ｄ）であって、前記比の分子は、前記モデルコンポーネントが前記改善されたモデルセット内に存在するモデルの量を備え、前記比の分母は、前記モデルコンポーネントがモデルコンポーネントプール内に存在するときに増分されるステップ（ｄ）と、
前記モデルコンポーネントに対応する重み付けユーティリティメトリックを計算するステップ（ｅ）であって、前記重み付けユーティリティメトリックは、（１）前記モデル属性メトリックおよび（２）前記ユーティリティメトリックを組み込む関数の結果を備えるステップ（ｅ）と、
前記重み付けユーティリティメトリックに基づいて、前記モデルコンポーネントプールから前記モデルコンポーネントを排除し、それによって、前記ステップ（ｂ）を実行するときに前記プロセッサが前記キャッシュメモリにアクセスする可能性を増加させるステップ（ｆ）と、
を行うための命令をさらに備える第２のメモリと、
を備える、コンピューティングシステム。
【請求項１３】
前記第２のメモリは、前記重み付けユーティリティメトリックに基づいて、前記モデルコンポーネントプールからのモデルコンポーネントを保持するための命令をさらに備える、請求項１２に記載のコンピューティングシステム。
【請求項１４】
前記モデルコンポーネントはランダムに生成される、請求項１２に記載のコンピューティングシステム。
【請求項１５】
前記モデルコンポーネントは、計算演算子、数学演算子、定数、予測子、特徴、変数、三項演算子、アルゴリズム、数式、二項演算子、隠れノード、重み、バイアス、勾配、およびハイパーパラメータのうちの少なくとも１つを備える、請求項１２に記載のコンピューティングシステム。
【請求項１６】
前記モデルコンポーネントプールは、計算演算子、数学演算子、定数、予測子、特徴、変数、三項演算子、アルゴリズム、数式、および二項演算子のうちの少なくとも１つを備える、請求項１２に記載のコンピューティングシステム。
【請求項１７】
前記関数は、少なくとも前記モデル属性メトリックおよび前記ユーティリティメトリックの積を備える、請求項１２に記載のコンピューティングシステム。
【請求項１８】
前記モデル属性メトリックは、精度、感度、特異性、受信者動作特性（ＲＯＣ）メトリックからの曲線下面積（ＡＵＣ）、およびアルゴリズムの長さのうちの少なくとも１つを備える、請求項１２に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、反復特徴選択である。
【背景技術】
【０００２】
背景技術の説明は、本発明を理解するのに有用であり得る情報を含む。本出願で提供される情報のいずれかが先行技術である、またはクレームされている発明に関連するものであること、または具体的にもしくは暗黙的に言及されるいずれかの文献が先行技術であることを承認するものではない。
【０００３】
データがより利用可能になり、データセットのサイズが増加するにつれて、多くの分析プロセスは、「次元の呪い」に見舞われる。Ｒｉｃｈａｒｄ  Ｅ．Ｂｅｌｌｍａｎ（「Ａｄａｐｔｉｖｅ  ｃｏｎｔｒｏｌ  ｐｒｏｃｅｓｓｅｓ：ａ  ｇｕｉｄｅｄ  ｔｏｕｒ」１９６１年、Ｐｒｉｎｃｅｔｏｎ  Ｕｎｉｖｅｒｓｉｔｙ  Ｐｒｅｓｓ）によって作り出された「次元の呪い」という句は、低次元設定で発生しない、超次元空間（例えば、数百、数千、または数百万の特徴または変数を有するデータセット）におけるデータを分析および編成する際に生じる問題を指す。
【０００４】
本明細書内の全ての文献は、個々の文献または特許出願が参照により組み込まれていると具体的かつ個別に示されるように、同じように参照により本明細書に組み込まれる。組み込まれた参考文献における用語の定義または使用が、本明細書内で提供されるその用語の定義と矛盾しているか、または異なる場合、本明細書内で提供されるその用語の定義が適用され、参考文献における用語の定義は適用されない。
【０００５】
コンピュータ技術は進歩し続けているが、超次元データセットを処理し、分析することは計算集約的である。例えば、反復モデリングプロセスでは、全ての可能なモデルコンポーネントの組み合わせを検索するために必要な計算時間は、追加のモデルコンポーネントの追加ごとに指数関数的に増加する。特に、反復モデリングプロセスのような技法を、大規模なデータセットを使用する複雑な問題を解くのにより適した形にする方法で、超次元空間における計算要件を低減する必要がある。反復モデリングプロセスにおける計算要件を低減する１つの方法は、モデリングプロセスに利用可能なアルゴリズムコンポーネントのユニバースを低減することである。
【０００６】
どのコンポーネントが解に対して有意であるか、有意でないかを決定することによって、反復モデリングプロセスに利用可能なアルゴリズムコンポーネントの数が劇的に低減され得ることは、まだ理解されていない。
【０００７】
したがって、反復モデリングプロセスに適用される反復特徴選択方法は、当技術分野において依然として必要とされている。
【発明の概要】
【０００８】
本発明は、反復モデリングプロセスにおけるモデルの開発のための可能なモデルコンポーネントとしてモデルコンポーネントが排除される装置、システムおよび方法を提供するものである。
【０００９】
本発明の主要部の１つの態様において、データセット内の予測子と結果を関連付けるモデルを改善するために必要な計算時間を減少させる方法が企図される。この方法は、いくつかのステップを含む。まず、モデルコンポーネントのプールからのモデルコンポーネントを使用してモデルが生成される。データセットのサブセットを使用して、モデル属性メトリック（例えば、精度、感度、特異性、受信者動作特性（ＲＯＣ）メトリックからの曲線下面積（ＡＵＣ）、およびアルゴリズムの長さ）が、各モデルに対して生成される。次に、いくつかのモデルコンポーネントについて、（１）各モデルコンポーネントが存在するモデルの量と（２）各モデルコンポーネントが存在するモデルコンポーネントプールの量との比であるユーティリティメトリックが計算される。次に、モデルコンポーネントに対応する重み付けユーティリティメトリックが計算され得る。
【００１０】
重み付けユーティリティメトリックは、いくつかの実施形態において、（１）モデルコンポーネントが存在するモデルについてのモデル属性メトリックと、（２）これらのモデルコンポーネントについてのユーティリティメトリックとを含む関数の結果である。重み付けユーティリティメトリックに基づいて、モデルコンポーネントのプールからの特定のモデルコンポーネントは、排除されるか、または保持される。いくつかの実施形態では、関数は、モデル属性メトリックとユーティリティメトリックの積を含む。
【００１１】
いくつかの実施形態では、モデルコンポーネントはランダムに生成される。モデルコンポーネントは、とりわけ、計算演算子、数学演算子、定数、予測子、特徴、変数、三項演算子、アルゴリズム、数式、二項演算子、重み、勾配、ノード、またはハイパーパラメータであり得る。
【００１２】
開示されている主要部は、特定のタスク（例えば、遺伝的プログラミング）を実行するために必要な計算サイクルを劇的に低減することにより、コンピュータの改善された動作を含む有利な技術的効果を提供することが評価されるべきである。本発明の主要部が存在しない場合は、反復モデリング方法は、多くの場合、主に数ヶ月および数年の計算時間を必要とする場合もある法外な計算要件のために、筋道の立った解を提供するものではない。
【００１３】
本発明の主要部の様々な目的、特徴、態様および利点は、添付図面（同様の数字が同様のコンポーネントを表す）に沿った以下の好適な実施形態の詳細な説明から、より明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】反復モデリングプロセスの汎用フレームワークを示す図である。
【図２】モデルコンポーネントのユーティリティメトリックを決定するための企図された方法を示す図である。
【図３】モデル属性メトリックを決定するための企図された方法を示す図である。
【図４】重み付けユーティリティメトリックを計算するための企図された方法を示す図である。
【図５】モデルコンポーネントのプールから所与のモデルコンポーネントを排除する、または保持するための企図された方法を示す図である。
【図６】モデル、一連の世代、および「最良」モデルを有するランを含む１つの企図された実施形態を示す図である。
【図７】図６のランに対応するモデルコンポーネントのプールを示す図である。
【図８】各々がモデル、一連の世代、および「最良」モデルを有する一連のランを含む１つの企図された実施形態を示す図である。
【図９】図８のランに対応する一連のモデルコンポーネントプールを示す図である。
【図１０】モデルコンポーネントのプールから所与のモデルコンポーネントを排除する、または保持するための企図された方法を示す図である。
【図１１】モデルコンポーネントのプールから所与のモデルコンポーネントを排除する、または保持するための別の企図された方法を示す図である。
【発明を実施するための形態】
【００１５】
以下の説明は、本発明の主要部の例示的な実施形態を提供する。各々の実施形態は本発明の要素の１つの組み合わせを表すが、本発明の主要部は開示されている要素の全ての可能な組み合わせを含むものと考えられる。したがって、１つの実施形態が要素Ａ、要素Ｂ、および要素Ｃを備え、第２の実施形態が要素Ｂおよび要素Ｄを備える場合、本発明の主要部はさらに、明示的に開示されていないとしても、Ａ、Ｂ、Ｃ、またはＤの他の残りの組み合わせを含むと考えられる。
【００１６】
本出願内で、さらに特許請求の範囲を通して使用される場合、「一」、「一つ」および「その」の意味は、文脈が明らかに別段の意味を示す場合を除いて、複数のものを含むものとする。また、本出願内の説明で使用される場合、「内」の意味は、文脈が明らかに別段の意味を示す場合を除いて、「内」および「上」の意味を含むものとする。
【００１７】
また、本出願内で使用される場合、文脈が明らかに別段の意味を示す場合を除いて、用語「〜に結合される」は、直接結合（互いに結合される２つの要素が互いに接触する）および間接結合（少なくとも１つの追加の要素が２つの要素間に配置される）の両方を含むものとする。したがって、用語「〜に結合される」および「〜と結合される」という用語は、同義的に使用される。
【００１８】
いくつかの実施形態では、本発明の特定の実施形態を説明し、請求するために使用される構成要素の量、濃度、反応条件などの特性を表す数字は、場合によっては、用語「約」によって修正されたものとして理解されるべきである。したがって、いくつかの実施形態では、明細書および添付の特許請求の範囲に記載されている数値パラメータは、特定の実施形態によって得られることが求められる所望の特性に依存して変化し得る近似値である。いくつかの実施形態では、数値パラメータは、報告されている有効桁の数字を考慮し、通常の丸め技法を適用することによって解釈されるべきである。本発明のいくつかの実施形態の広い範囲を示す数値範囲およびパラメータは近似値であるが、特定の実施例に記載されている数値は、可能な限り正確に報告される。本発明のいくつかの実施形態において提示される数値は、それぞれの試験測定値に見られる標準偏差から必然的に生じる特定の誤差を含み得る。さらに、文脈が反対の意味を示す場合を除いて、本出願に記載されている全ての範囲は、それらのエンドポイントを包含するものとして解釈されるべきであり、オープンエンドの範囲は、商業上実用的な値のみを含むものと解釈されるべきである。同様に、全ての値のリストは、文脈が反対の意味を示す場合を除いて、中間値を含むものとして見なされるべきである。
【００１９】
コンピュータ対象の任意の言語は、サーバ、インターフェース、システム、データベース、エージェント、ピア、エンジン、コントローラ、または個別にまたは集合的に動作する他のタイプのコンピューティングデバイスを含む、コンピューティングデバイスの任意の適切な組み合わせを含むものと解釈されるべきであることに留意されたい。コンピューティングデバイスは、有形の非一時的なコンピュータ可読記憶媒体（例えば、ハードドライブ、ソリッドステートドライブ、ＲＡＭ、フラッシュ、ＲＯＭなど）上に格納されたソフトウェア命令を実行するように構成されたプロセッサを備えることを理解すべきである。ソフトウェア命令は、好ましくは、開示されている装置に関して後述する役割、責任、または他の機能を提供するようにコンピューティングデバイスを構成する。特に好適な実施形態では、様々なサーバ、システム、データベース、またはインターフェースは、ＨＴＴＰ、ＨＴＴＰＳ、ＡＥＳ、公開秘密鍵交換、ウェブサービスＡＰＩ、既知の金融トランザクションプロトコル、または他の電子情報交換方法に基づくと思われる、標準化されたプロトコルまたはアルゴリズムを使用してデータを交換する。データ交換は、好ましくは、パケット交換ネットワーク、インターネット、ＬＡＮ、ＷＡＮ、ＶＰＮ、または他のタイプのパケット交換ネットワークを介して行われる。以下の説明は、本発明を理解するのに有用であり得る情報を含む。本出願で提供される情報のいずれかが先行技術である、またはクレームされている発明に関連するものであること、または具体的にもしくは暗黙的に言及されるいずれかの文献が先行技術であることを承認するものではない。
【００２０】
本出願で使用される場合、「セット」または「サブセット」のような用語は、１つ以上のアイテムを含むものと解釈されるべきである。「セット」は、特に断りのない限り、２つ以上の項目を含むとは限らない。
【００２１】
本発明の主要部の１つの目的は、ターゲットデータセットにおける予測子と結果の関係を記述するモデルを作成するために使用される低性能（例えば、不必要または不要な）モデルコンポーネントを識別し、排除することである。可能なモデルコンポーネントの数をプルーニングすることは、反復モデリングプロセスにおいて高性能モデルに収束するために必要とされる計算時間を短縮することによって、計算効率を向上させる。
【００２２】
本発明の主要部にはいくつかのフェーズがあり、これらのフェーズは方法ステップとして実装され得る。
【００２３】
本発明の主要部の１つの企図される実施形態では、第１のフェーズは、反復モデリングプロセスを使用して、モデルコンポーネントのプールからモデルのセットを生成することである。図１は、汎用反復モデリングフレームワークを示しており、ここでは、セット｛ｃ１,．．．,ｃｚ｝内のモデルコンポーネントはモデリングプロセスを受けてモデルｍ１〜ｍｎを生成する。
【００２４】
本明細書で使用される場合、用語「反復モデリングプロセス」とは、反復可能なまたはループ可能なサブルーチンまたはプロセス（例えば、ラン、フォアループ（ｆｏｒ  ｌｏｏｐ）、エポック、サイクル）を含むターゲットデータセットにおける予測子と結果の関係を記述するために、１つ以上のモデルを作成するためのモデリング方法を指す。
【００２５】
企図される反復モデリングプロセスは、人工ニューラルネットワーク（ＡＮＮ）、畳み込みニューラルネットワーク（ＣＮＮ）、再帰型ニューラルネットワーク、ディープ・ボルツマン・マシン（ＤＢＭ）、ディープ・ビリーフ・ネットワーク（ＤＢＮ）、積層自己符号化器、およびニューラル・ネットワーク・フレームワークから導出される他のモデリング技法のようなディープラーニング方法を含む。
【００２６】
追加的にまたは代替的に、企図される反復モデリングプロセスは、遺伝的アルゴリズムおよび遺伝的プログラミング（例えば、ツリーベースの遺伝的プログラミング、スタックベースの遺伝的プログラミング、線形（マシンコードを含む）遺伝的プログラミング、文法進化、拡張コンパクト遺伝的プログラミング（ＥＣＧＰ）、埋め込みカルテシアン遺伝的プログラミング（ＥＣＧＰ）、確率的増分プログラム進化（ＰＩＰＥ）、および型付き遺伝的プログラミング（ＳＴＥＰ）を含む、進化的プログラミング方法を含む。他の進化的プログラミング方法は、遺伝子発現プログラミング、進化戦略、差分進化、ニューロエボリューション（ｎｅｕｒｏｅｖｏｌｕｔｉｏｎ）、学習分類子システム、または強化学習システムを含み、この場合、解は、２値、実数、ニューラルネット、またはＳ式タイプであり得る分類子（規則または条件）のセットである。学習分類子システムの場合、適合性は、強度または精度ベースの強化学習アプローチまたは教師付き学習アプローチのいずれかを用いて決定され得る。
【００２７】
追加または代替の企図される反復モデリングプロセスは、プロセスが反復可能なまたはループ可能なサブルーチンまたはプロセス（たとえば、ラン、フォアループ、エポック、サイクル)を含む限り、モンテカルロ法、マルコフ連鎖、逐次線形ロジスティック回帰、決定木、ランダムフォレスト、サポートベクトルマシン、ベイズモデリング技法、または勾配ブースティング技法を含み得る。
【００２８】
次のフェーズでは、選択モデルコンポーネントについてユーティリティメトリックが計算され、選択モデルについてモデル属性メトリックが計算される。次に、各ユーティリティメトリックおよび１つ以上のモデル属性メトリックを使用して、重み付けユーティリティメトリックが計算される。重み付けユーティリティメトリックに基づいて、モデルコンポーネントプールからいくつかのモデルコンポーネントが排除され、他のモデルコンポーネントはそのまま残される。このプルーニングプロセスは、モデルコンポーネントの数を削減することで探索空間の次元を減少させることによって、反復的モデリング方法を実行するコンピュータの能力を改善するものであり、これについて以下でより詳細に説明する。
【００２９】
いくつかの実施形態では、各モデルコンポーネントは、そのために計算されたユーティリティメトリックを有する。その１つの実施形態が図２に示されるユーティリティメトリックは、分子がモデル内にモデルコンポーネントが出現する回数であり、分母がモデルコンポーネントプール内にモデルコンポーネントが出現する回数である比を示す。
【００３０】
いくつかの企図される実施形態では、モデルコンポーネントは、例えば、計算演算子（例えば、ＩＦ、ＡＮＤ、ＯＲのような論理ステートメント)、数学演算子（例えば、乗算、除算、減算、加算のような算術演算）、三角演算、ロジスティック関数、微積分演算、「床」または「天井」演算子、または任意の他の数学演算子）、定数（例えば、整数またはπのような値を含む一定の数値）、予測子（例えば、観察値もしくは測定値または数式）、特徴（例えば、特性）、変数、三項演算子（例えば、３つの因数をとる演算子であり、ここで、第１の引数が比較引数であり、第２の引数が真の比較の結果であり、第３の引数が偽の比較の結果である）、アルゴリズム、数式、リテラル、関数（例えば、１変数関数、２変数関数など）、二項演算子（例えば、２つのオペランド上で演算し、そのオペランドに結果を返す演算子）、重みならびに重みベクトル、ノードならびに隠れノード、勾配降下、シグモイド活性化関数、ハイパーパラメータ、およびバイアスを含み得る。
【００３１】
図３は、モデル属性メトリックをどのように決定することができるかを示す。いくつかの企図される実施形態では、モデル属性メトリックは、予測子を使用して結果を予測するモデルの能力を記述することができることが企図され、その精度は、パーセントとして表される。データセットからのデータは、モデル属性メトリックを決定するために使用され、ここで、データセットは、予測子および結果を含み、モデル属性は、モデルに予測子のみを付与し、次いでモデルからの結果をデータセットからの実際の結果と比較することによって、決定される。例えば、モデルが、３５％の確率で結果を正確に予測するために予測子のセットを使用する場合、そのモデルについてのモデル属性メトリックは３５％となる。
【００３２】
他の実施形態では、モデル属性メトリックは、追加的にまたは代替的に、感度、特異性、受信者動作特性（ＲＯＣ）メトリックから曲線下面積（ＡＵＣ）、二乗平均平方根誤差（ＲＭＳＥ）、アルゴリズムの長さ、アルゴリズム計算時間、使用される変数もしくはコンポーネント、または他の適切なモデル属性であり得る。モデル属性メトリックは、識別されたモデル属性の１つ以上を使用して決定され得るが、モデル属性メトリックは、これらの属性のみに限定されないことが企図される。
【００３３】
モデルコンポーネントがモデル性能に十分に寄与することができるかどうか（例えば、特定のモデルコンポーネントが予測子のセットを使用して結果を決定するためにモデルの能力に影響を与えるかどうか）を決定するために、図４に示されるように、重み付けユーティリティメトリックが各ユーティリティメトリックおよび１つ以上のモデル属性メトリックの関数として生成される。
【００３４】
モデルコンポーネントが「重要である」か、または「重要でない」かは、重み付けユーティリティメトリックが閾値未満であるか、または閾値を超えているかどうかによって決定されることが企図される。いくつかの実施形態では、閾値は、モデルのセット（例えば、図１における｛ｍ１、．．．、ｍｎ｝）に出現するモデルコンポーネントに対する重み付けユーティリティメトリックの全てを最初に平均化することによって計算され得る。次に、各々の重み付けユーティリティメトリックは、全ての重み付けユーティリティメトリックについての要約統計量（例えば、平均、三平均値、分散、標準偏差、モード、中央値）で除算される。
【００３５】
重み付けユーティリティメトリックを全ての重み付けユーティリティメトリックの要約統計量によって除算した結果が一定の閾値未満である場合（例えば、結果が１．２、１．１、１、０．９、０．８、０．７、０．６、０．５、または０．４未満である場合）、その重み付けユーティリティメトリックに対応するモデルコンポーネントは、考慮から除外される（例えば、新しいランセットを生成するために使用される任意の新しいモデルコンポーネントプールに、そのモデルコンポーネントを入れることはできない）。このプロセスを図５に示す。
【００３６】
モデルコンポーネントを維持するか、または排除するかを決定する他の適切な方法も企図される。例えば、いくつかの実施形態では、重み付けユーティリティメトリックは、比較前のいかなる操作（例えば、平均化、除算、および比較、または上述した他のプロセスのいずれかのプロセス）も受けることなく閾値と比較される。閾値は、任意の値であり得るか、または予想される重み付けユーティリティメトリック値の理解に基づいて選択され得る。これらの実施形態では、モデルコンポーネントに対する重み付けユーティリティメトリックが計算されると、その重み付けユーティリティメトリックは、次に、予め定義された閾値と比較され、その比較に基づいて、その重み付けユーティリティメトリックに対応するモデルコンポーネントは、全てのモデルコンポーネントプールから排除される（例えば、重み付けユーティリティメトリックが閾値未満である）か、または将来のランにおける使用のために残される。
【００３７】
最終的に、いくつかのモデルコンポーネントは、それらの対応する重み付けユーティリティメトリックに基づいて、他のモデルコンポーネントよりも有用でないことが判明し、ユーティリティの不足が閾値未満である場合、これらのモデルコンポーネントは破棄されることが企図される。
【００３８】
いくつかの実施形態では、モデルコンポーネントを考慮から除外した後、モデルコンポーネントの新しいプールは、排除されたモデルコンポーネントなしで生成される。他の実施形態では、モデルコンポーネントは、既存のモデルプールから排除され、新しいランセットについてモデルのセットを生成するために同じモデルプールが再度使用される。さらに別の実施形態では、モデルコンポーネントは、モデルコンポーネントプールから排除せずに、単に考慮から除外されるのみである。この時点以降は、プロセスは繰り返され、最終的には、より多くのモデルコンポーネントが排除され得る。このプロセスは、残りのモデルコンポーネント全てが各々の反復またはランにおいて「最良」モデルに有意に寄与することが判明するまで、必要に応じて繰り返され得る。
【００３９】
このプロセスを通して、モデルコンポーネントは、モデルコンポーネントの１つ以上のプールからプルーニングされる。本発明の主要部に従ってモデルコンポーネントをプルーニングすることによって、反復モデリング（および関連するタスク）を実行するために必要な計算時間が劇的に低減される。
【００４０】
１つの特定のタイプの反復モデリングに限定されることを望まないが、本発明の主要部の実施形態のサブセットは、遺伝的プログラミングプロセスにおけるモデルの開発のための可能なモデルコンポーネントとしてモデルコンポーネントが排除される装置、システムおよび方法を提供する。本発明の主要部を遺伝的プログラミングへ適用する実例は、他の反復モデリング技法への適用を理解するのに有用である。
【００４１】
例えば、企図される実施形態のこのサブセットでは、第１のフェーズは、遺伝的プログラミングプロセスを使用して、「ラン」を構成するモデルのセットを生成することである。用語「ラン」は、「最良」モデルに収束するように操作されるモデルのセットを示す。ラン内で、モデルコンポーネントのプールからのモデルコンポーネントを使用して、モデルセットが生成される。
【００４２】
このモデルセットは、モデルの世代と呼ばれる。次のフェーズでは、（ランダムに生成された）第１世代のモデルは、その世代におけるどのモデル（１つ以上）が最良の性能を発揮するかを決定するために競合させられ、次に、一部は（例えば、複製に基づいて、または複製することによって）前世代からのモデルを使用して、次のモデル世代が生成される。これらのフェーズは、データセットにおける予測子と結果の関係を適切に記述する１つ以上のモデルが開発されるまで、各ラン内の複数世代にわたって繰り返し完了される。
【００４３】
次のフェーズでは、選択されたモデルコンポーネントについてユーティリティメトリックが計算され、各ランの選択モデルについてモデル属性メトリックが計算される。
【００４４】
第１世代のランは、モデルセットの生成を必要とする。本発明の主要部のモデルは、表記ｍａｂｃを使用して記述され、この場合、ａはラン数であり、ｂは世代番号であり、ｃはモデル数である。図６は、ラン数１を有するランを示し、モデルｍ１１１〜ｍ１１ｉから構成される第１世代を示す。ｉの値は、その世代におけるモデル数である。ｉは、１０〜１，０００，０００、より好ましくは１００〜１０，０００、最も好ましくは１，０００〜５，０００であり得ることが企図される。
【００４５】
モデルｍ１１１〜ｍ１１ｉは、図７に示すように、モデルコンポーネントプールからの様々なモデルコンポーネントを使用してランダムに生成される。モデルはアルゴリズムであり、モデルコンポーネントはアルゴリズムを構成するために使用されることが企図される。図７のモデルコンポーネントは、集合｛ｃ１、．．．、ｃｚ｝として表される。プール内の全てのモデルコンポーネントは、そのモデルプールに対応するモデル内で使用するために利用可能であるが、全てのモデルコンポーネントを使用する必要があるとは限らない。さらに、あるモデルコンポーネントがあるモデルに内で使用される場合、そのモデルコンポーネントは、他のモデル内で使用するために利用可能な状態である。
【００４６】
別の段落で記載されているように、特定のモデルコンポーネントが予測子セットを使用して結果を決定するモデルの能力に影響を与えるかどうかを決定するために、重み付けユーティリティメトリックは、図４に示すように、各ユーティリティメトリックおよび１つ以上のモデル属性の関数として作成される。
【００４７】
本発明の主要部の一態様では、第１のモデル世代｛ｍ１１１、．．．、ｍ１１ｉ｝が生成され、その第１世代におけるモデルを互いに競合させて、どのモデルが最良の性能を発揮するかを決定する。例えば、競合は、モデル性能（例えば、予測子セットからの結果を予測するモデルの能力）の比較であり得る。いくつかの実施形態では、ランの各世代におけるモデルが互いに競合した後、最良の実行モデルのセットが識別される。他の実施形態では、１つの最良実行モデルが識別される。性能に基づくモデルの上位パーセント（例えば、上位１〜５％、５〜１０％、１０〜２０％、２０〜３０％、３０〜４０％、または４０〜５０％）が各世代における最良の実行モデルと見なされ得ることが企図される。
【００４８】
最良の実行モデルは、いくつかの方法で記述され得る。例えば、モデルが予測子を使用して、（例えば、結果が既知であり、モデルの結果をデータセットからの実際の結果と比較することによって）数パーセントの割合の結果を予測する場合、そのパーセントは、そのモデルがある世代の他のモデルよりも良好な性能を発揮するモデルであるかどうかを決定するために使用され得る。そのような実施形態では、ある世代におけるモデルは、予測子からの結果を決定する際の高いパーセント精度を有するモデルが、より低いパーセント精度を有するモデルを「打破する」形で、互いに対して「競合」する。ある世代におけるモデルのいくつか（または１つを除く全て）が排除される（例えば、負けたモデルがセットから除去される）と、最良の複数（または１つ）のモデルが残る。
【００４９】
別の実施例では、ある世代の「最良」モデルは、その世代における他のモデルと比較したときに、１つ以上の好ましい特性を有するモデルであり得る。例えば、「最良」モデルは、アルゴリズムの長さに関して「最も短い」（例えば、モデルは、量、タイプ、または重複しないモデルコンポーネントのいずれかに関して最も少ないモデルコンポーネントを使用する）、モデルを実行するのに必要な計算時間が最も短い、トレーニング精度が最高である、標準プロセストレーニング検証が最良である、またはトレーニング検証が最良であるモデルであり得る。さらに、「最良」モデルは、本出願で議論されているこれらのおよび任意の他の因子の組み合わせによって決定され得る。
【００５０】
最良のパフォーマーであると識別されたラン内の第１世代からの１つ以上のモデルを用いて、第２のモデル世代が生成され得る。第２のモデル世代は、モデルのいくつかのサブセットから構成され得る。例えば、次世代におけるモデルのサブセットは、モデルプール（図７に示す）からのモデルコンポーネントを使用してランダムに生成され得るが、モデルの別のサブセットは、前世代からのモデル（例えば、１つ以上の最良モデル）の突然変異によって生成され得、また別のサブセットは、前世代からのモデルを使用して子孫を作成する（交叉とも呼ばれる）ことによって生成され得る。
【００５１】
いくつかの実施形態では、１世代からのモデルのサブセットは、変更なしで、次世代（例えば、任意の次世代）に含まれる。例えば、前世代からの１つ以上のモデル（例えば、１つ以上の「最良」モデル）は、ランに対する「最良」モデル（ランに対する「最良」モデルの概念は以下にさらに詳細に説明する）に収束するのに必要な時間を低減するために、任意の次世代に導入され得る。したがって、例えば、図６において、世代ａに到達すると、世代１からａ−１までのモデルのいずれかを世代ａに含めることができる。
【００５２】
さらに、１世代から次世代へモデル（例えば、「最良」モデル）を変更せずに導入することが、いくつかの世代が（例えば、１０〜１００世代、１００〜１５０世代、１５０〜２５０世代）繰り返された後にのみ行われるようにフラグが立てられ得ることが企図される。例えば、いくつかの実施形態では、前世代のいずれかからの「最良」モデルが第１００世代に組み込まれ得る。他の実施形態では、ある世代からの「最良」モデルが第１００世代の後に初めて引き継ぐことができるようにランにフラグが立てられる場合、第１０１世代では、第１００世代からの「最良」モデル（１つ以上）が組み込まれ得る。これらの実施形態では、第１００世代の後に、第１００世代以前の世代からのモデルが以降の世代に組み込まれ得る。
【００５３】
用語「交叉」は、１世代から次世代の新しいモデルを生成するための１つ以上のモデルの組み合わせを表す。それは、遺伝的プログラミングが基礎とする、再生および生物学的交叉に類似している。いくつかの実施形態では、モデルは、さらに、適合度関数（例えば、１つの性能指数として、設定された目的に対する所与の設計解の達成度を要約するために使用される特定のタイプの目的関数）、またはユーザ定義タスク（例えば、予測子と結果の関係を記述する）を解決するための複数世代の進化を使用して、世代間で修正され得る。
【００５４】
モデルの突然変異は、１つの既存モデルに基づく新しいモデルの作成である。突然変異モデルは、元の形態から微妙に変化した、または変更されたモデルであることが企図される。突然変異は、モデルの母集団の１世代から次世代への多様性を維持するために使用され得る。これは生物学的ＤＮＡ突然変異と類似しており、その初期状態からのモデルの１つ以上の態様の変更を含む。
【００５５】
突然変異の一例は、モデル内の任意のビットがその元の状態から変更される確率を実装することを含む。突然変異を実装する一般的な方法は、シーケンス内の各ビットに対してランダム変数を生成することを含む。このランダム変数は、特定のビットが修正されるかどうかを表す。この突然変異手順は、生物学的点突然変異に基づいて、単一点突然変異と呼ばれる。他のタイプには、逆位および浮動小数点突然変異が含まれる。他のタイプの突然変異には、スワップ、逆位、およびスクランブルが含まれる。
【００５６】
モデルの子孫を作成することは、２つ以上の既存モデルに基づいて新しいモデルを作成することである。２つ以上の親モデルの子孫は、親モデルから特徴を取得して、それらの特徴を組み合わせて新しいモデルを作成する。本発明の主要部の実施形態は、１世代から次世代へモデルの特徴を変化させるために、子孫を使用する。これは、本発明の主要部（例えば、遺伝的アルゴリズム）のモデルが基礎とする、再生および生物学的交叉と類似している。交叉は、複数（例えば、２つ以上）の親モデルを取得し、親モデルから子モデルを生成するプロセスである。
【００５７】
上述した技法の任意の数または組み合わせを使用して、モデル｛ｍ１２１、．．．、ｍ１２ｊ｝のセットとして図６に示されている第２世代のランが作成される。いくつかの実施形態では、各々の次世代は、前世代よりも少ないモデルを含む（例えば、ｊ＜i）が、他の実施形態では、各々の次世代は、前世代と同数のモデルを有する（例えば、ｊ＝i）ことが企図される。同様に、モデルの各々の次世代は、前世代よりも多くのモデルを含み得（例えば、ｊ＞i）、または各々の世代は、様々な数のモデルを含み得る（例えば、第２世代は第１世代よりも少ないモデルを有し、第３世代は第２世代よりも多くのモデルを有する、あるいは第１世代よりもさらに多くのモデルを有し得る、など）。
【００５８】
ラン内のモデルの世代を通して反復するプロセスは、所望の回数で完了され得る。図６において、世代数は変数ａとして表されている。好ましくは、ａは、結果として得られるモデル数がデータセットを十分にトラバースすることができるほど十分な大きさである。例えば、モデルがデータセットから可能な全ての変数（例えば、予測子）を考慮することができるほど十分な世代が存在するべきである。例えば、データセットが大きいほど、小さいデータセットと比較して、多くのモデル世代が必要となり得る。いくつかの実施形態では、ａは、１０〜１０，０００世代であり、より好ましくは、５０〜１，０００世代であり、最も好ましくは、１００〜５００世代であり得る。本発明の主要部に記載されるような世代進化は、分類上、遺伝的プログラミングとして記載され得る。本発明の主要部は、モデルコンポーネントの効率的な排除を可能にするので、本発明の主要部の方法は、反復プログラミングのいかなる方法でも計算効率を劇的に改善するために有用であり得ることが企図される。
【００５９】
ａ世代を通して反復した後に、図６におけるランの最終世代に到達する。いくつかの実施形態において、ランの最終世代（例えば、図６の世代ａ）は、１つのモデルから構成されるが、ランの最終世代がモデルのセットから構成され得ることも企図される。ランの最終世代がモデルのセットを含む実施形態では、１つ以上の「最良」モデルは、ある世代においていずれのモデルが「最良」であるかを決定することに関して上述した基準のいずれかに基づいて、再度決定される。最終世代における全てのモデルが、それらのランの「最良」モデルと見なされ得ることも企図される。１つのモデルのみがランの最終世代に存在する実施形態では、そのモデルは、必然的に、その世代の「最良」モデル、したがって、ランの「最良」モデルと見なされる。
【００６０】
識別されたランの「最良」モデル（１つ以上）（例えば、図６では、最良モデルは、ｍ１ａ１としてラベル付けされる）を用いて、「最良」モデルについてモデル属性が計算される。
【００６１】
ラン内の各モデルはモデルプール内で識別されたモデルコンポーネントを使用して作成されるので、特定のランからの「最良」モデル（１つ以上）は、同様に、第１のモデル世代がモデルコンポーネントを取り出した同じモデルプールからのモデルコンポーネントを使用する。例えば、図７は、図６に示されるラン内のモデルを生成するために使用され得るモデルコンポーネントを有するモデルコンポーネントのプールを示す。したがって、図６に示されるランの「最良」モデル内で使用されるモデルコンポーネントは、図７に示されるモデルコンポーネントのプールから必然的に取り出されたものとなる。
【００６２】
このことは、モデルコンポーネントについてユーティリティメトリックを計算するステップにとって重要である。いくつかの実施形態では、ラン内で使用される（例えば、ランのいずれかの世代において使用される）各々のモデルコンポーネントは、それについて計算されたユーティリティメトリックを有する。他の実施形態では、「最良」モデル内で使用される各々のモデルコンポーネントのみが、それについて計算されたユーティリティメトリックを有する。さらに別の実施形態では、ユーティリティメトリックは、ラン（例えば、最新の１０％、２０％、３０％、４０％、５０％、６０％、７０％の世代のみ）からモデルのサブセット内に見られるモデルコンポーネントについて計算され得る。
【００６３】
例えば、図６および図７において、モデルコンポーネントのプールからのモデルコンポーネントが「最良」モデル（例えば、ｍ１ａ１）内に出現する場合、そのモデルコンポーネントのユーティリティメトリックの分子は１である。モデルコンポーネントが１つのモデル内で（または、「最良」世代を構成する複数のモデル内で）複数回出現する場合、カウントは、そのモデルに対して（またはそのランに対して）１だけ増加する。例えば、「最良」世代が２つのモデルを含み、両方のモデルがモデルコンポーネントＣｇを含む場合、Ｃｇについての分子は、そのランについて１だけ加算される。
【００６４】
ユーティリティメトリックの分母に関しては、モデルコンポーネントがモデルコンポーネントのプール内に出現するたびに、分母は１だけ増加する。例えば、図７のモデルコンポーネントのプール内の全てのモデルコンポーネントは、それらのユーティリティメトリックに対して１の分母を有する。ユーティリティメトリックの分母は、モデルコンポーネントの２つ以上のプールが存在する場合、１よりも大きくなり得る。
【００６５】
図８および図９は、モデルコンポーネントのＸ個のランおよびＹ個のプールを実装する本発明の主要部の実施形態を示す。ラン毎にモデルコンポーネントの１つのプールが存在し（例えば、Ｘ＝Ｙ）、モデルコンポーネントの各プールが特に特定のランに対応することが企図されるが、ランよりも少ないモデルコンポーネントプールが存在し得る（例えば、Ｘ＞Ｙ）、またはランよりも多いモデルコンポーネントプールが存在し得る（例えば、Ｘ＜Ｙ）ことも同様に企図される。
【００６６】
図８のラン１〜Ｘに出現するモデルコンポーネントのユーティリティメトリックを決定する際に、分子は、０〜Ｘの間（例えば、ランの総数）であり得、分母は、１〜Ｙ（例えば、モデルコンポーネントプールの総数）であり得る。例えば、モデルコンポーネントが２つのラン内の「最良」モデルに出現するが、同じモデルコンポーネントが４つのモデルコンポーネントプール内に存在する場合、ユーティリティメトリックは０．５（２割る４）になる。ユーティリティメトリックは、モデルコンポーネント毎に計算されるが、モデルコンポーネントがいずれのラン内のいずれの「最良」モデルにも出現しない場合、そのモデルコンポーネントは０の分子を有し、従って、ユーティリティメトリックは０となる。
【００６７】
ユーティリティメトリックは、モデルコンポーネントの全てのプール内のあらゆるモデルコンポーネントに対して計算され得ることが企図される。しかしながら、いくつかの実施形態では、ユーティリティメトリックは、ランの「最良」世代における１つ以上のモデルに出現するモデルコンポーネントについてのみ計算される。直観的には、モデルコンポーネントが「最良」モデル内に出現しない場合、その分子は必然的に０となる。したがって、少なくとも１つの「最良」モデルに出現しないモデルコンポーネントについてユーティリティメトリックを計算することをスキップすることができ、代わりに、過剰なプロセッササイクルを使用せずに、全てのモデルコンポーネントプールから、少なくとも１つの「最良」モデルに出現しない全てのモデルコンポーネントを排除することができる。
【００６８】
例えば、図８では、Ｘ個のランが存在し、この場合、各ランは１つの最良モデル（すなわち、セット｛ｍ１ａ１、．．．、ｍＸｃ１｝内のモデル、つまり各ランの最終世代）を有する。図９に示されるモデルコンポーネントのプールは、重複するモデルコンポーネントを有し得ることが企図されるので、モデルコンポーネントｃ１ｇは、他のモデルプールの全てまたは一部に存在することが可能であり得る。モデルコンポーネントｃ１ｇが５個のモデルコンポーネントプール（すなわち、Ｙ≧５）内に出現し、ｃ１ｇが同様にこれらのランの「最良」モデルの３つの中に出現する場合、モデルコンポーネントｃ１ｇに対するユーティリティメトリックは、３：５または０．６となる。
【００６９】
ユーティリティメトリックｃ１ｇが出現する各モデルに対して、モデル属性メトリックが必要である。重み付けユーティリティメトリックを計算するために、ｃ１ｇのユーティリティメトリックは、ｃ１ｇが出現するモデルのモデル属性の何らかの関数で乗算される。ｃ１ｇが出現するモデルのモデル属性は、例えば、平均化され得る。他の実施形態では、モデル属性の中央値が使用され得、他の実施形態では、モードが使用され得、さらに別の実施形態では、幾何平均が実装され得ることも企図される。
【００７０】
また、特定のモデルコンポーネントが出現する多数の「最良」モデルが存在する場合、平均、中央値、またはモードを計算する前に異常値が排除され得る（例えば、モデル属性の平均を計算する、または中央値を決定する前に、ある数の最高および最低のモデル属性が無視され得る）ことも企図される。いくつかの実施形態では、特定のモデルコンポーネントについて重み付けユーティリティメトリックを計算する際に使用され得る操作されたモデル属性に到達するために、他の既知の数学的演算または関数がモデル属性のセットに適用され得る。
【００７１】
したがって、上記の例に戻ると、ｃ１ｇに対するユーティリティメトリックが０．６であり、モデル属性の平均が３０％である場合、重み付けユーティリティメトリックは０．１８となる。このプロセスは、「最良」モデルのセット｛ｍ１ａ１、．．．、ｍｘｃ１｝に出現する全てのモデルコンポーネントについて繰り返され、その結果、「最良」モデルのセット内の各モデルコンポーネントに対応する重み付けユーティリティメトリックを作成する。
【００７２】
本発明の主要部の方法の次のフェーズは、どのモデルコンポーネントが重要であると見なされ、どのモデルコンポーネントが重要でないと見なされるかの決定を必要とする。「重要」であるモデルコンポーネントは、再利用され、次のランセットを生成するために使用される新しいモデルプールのセット内に配置する対象となる。「重要でない」モデルコンポーネントは破棄され、新しいモデルプールセットで再使用されず、したがって、確実に、「重要でない」モデルコンポーネントは新しいモデルを作成するために使用されることはない。
【００７３】
モデルコンポーネントが「重要である」か、または「重要でない」かは、重み付けユーティリティメトリックが閾値未満であるか、または閾値を超えているかどうかによって決定されることが企図される。いくつかの実施形態では、閾値は、モデルの「最良」セット（例えば、図８の｛ｍ１ａ１、．．．、ｍｘｃ１｝）に出現するモデルコンポーネントに対する重み付けユーティリティメトリックの全てを最初に平均化することによって計算され得る。次に、個々の重み付けユーティリティメトリックは、その平均で除算される。重み付けユーティリティメトリックを全ての重み付けユーティリティメトリックの平均で除算することの結果が、一定の閾値未満である場合（例えば、結果が１．２、１．１、１、０．９、０．８、０．７、０．６、０．５、または０．４未満である場合）、その重み付けユーティリティメトリックに対応するモデルコンポーネントは、考慮から除外される（例えば、そのモデルコンポーネントを、新しいランセットを生成するために使用されるどの新しいモデルコンポーネントプールに入れることはできない）。このプロセスを図５に示す。
【００７４】
モデルコンポーネントを維持するか、または排除するかを決定する他の適切な方法も企図される。例えば、いくつかの実施形態では、重み付けユーティリティメトリックは、比較前にいかなる操作（例えば、平均化、除算、および比較、または上述した他のプロセスのいずれかのプロセス）も受けることなく閾値と比較される。閾値は、任意の値であり得るか、または予想される重み付けユーティリティメトリック値の理解に基づいて選択され得る。これらの実施形態では、モデルコンポーネントに対する重み付けユーティリティメトリックが計算されると、その重み付けユーティリティメトリックは、次に、予め定義された閾値と比較され、その比較に基づいて、その重み付けユーティリティメトリックに対応するモデルコンポーネントは、全てのモデルコンポーネントプールから排除される（例えば、重み付けユーティリティメトリックが閾値未満である）か、または将来のランにおける使用のために残される。
【００７５】
いくつかの実施形態では、モデルコンポーネントは、それらの対応するユーティリティメトリックに基づいて、排除され（例えば、考慮から除外され）得る。これを行うために、ユーティリティメトリックがいくつかのコンポーネントについて計算されると、それらのモデルコンポーネントに対するユーティリティメトリックは、例えば、要約統計量を使用して分析される。想定される要約統計量は、位置（例えば、算術平均、中央値、モード、ならびに四分位間平均）、散布度（例えば、標準偏差、分散、範囲、四分位範囲、絶対偏差、平均絶対差、ならびに距離標準偏差）、形状（例えば、歪度もしくは尖度、ならびにＬモーメント法に基づく代替）、および依存性（例えば、ピアソンの積率相関係数もしくはスピアマンの順位相関係数）を含む。
【００７６】
ユーティリティメトリックは、次に、要約統計量と比較され、それが維持されるべきか、または排除されるべきかが決定され得る。例えば、モデルコンポーネントに対するユーティリティメトリックがユーティリティメトリックのセットから計算された算術平均と比較される場合（例えば、ユーティリティメトリックはユーティリティメトリックのセットの平均で除算される）、そのモデルコンポーネントは、そのユーティリティメトリックが１未満（そのモデルコンポーネントが、平均に寄与するユーティリティメトリックを有するモデルコンポーネントの総数の半分よりも影響力が小さいか、有用でないことを示す）であれば、排除され得る。別の実施例では、ユーティリティメトリックが平均から１標準偏差を下回る場合、そのユーティリティメトリックに対応するモデルコンポーネントが排除され得る。その主要な目標は、他のモデルコンポーネントと比較したときに、他のモデルコンポーネントほど「最良」モデルに寄与しないモデルコンポーネントの排除を容易にすることである。図１１は、この概念を一般的に示しており、ここでは、閾値は、上述したように、要約統計量を使用して決定される。
【００７７】
多くの状況において、ユーティリティメトリックは、個々のユーティリティメトリックをユーティリティメトリックのセットの要約統計量で除算することによって、要約統計量と比較されることが企図される。これは、いくつかの要約統計量（例えば、位置要約統計量）に有効であるが、他の要約統計量は、ユーティリティメトリックが所望の範囲（例えば、散布度要約統計量）内に入るかどうかを調べるために、ユーティリティメトリック値と値の範囲との比較を必要とする。
【００７８】
重み付けユーティリティメトリックの平均を計算する代わりに、「最良」モデルのセット内の各モデルコンポーネントに対する重み付けユーティリティメトリックは、他の方法で操作され得ることも企図される。例えば、いくつかの実施形態では、個々の重み付けユーティリティメトリックは、重み付けユーティリティメトリックのセットの中央値で除算され得る。他の実施形態では、重み付けユーティリティメトリックのセットのモードが、平均または中央値の代わりに使用され得る。
【００７９】
最終的に、いくつかのモデルコンポーネントは、それらの対応する重み付けユーティリティメトリックに基づいて、他のモデルコンポーネントよりも有用でないことが判明し、ユーティリティの不足が閾値未満である場合、これらのモデルコンポーネントは破棄されることが企図される。
【００８０】
いくつかの実施形態では、モデルコンポーネントを考慮から除外した後、モデルコンポーネントの新しいプールは、排除されたモデルコンポーネントなしで生成される。他の実施形態では、モデルコンポーネントは、既存のモデルプールから排除され、新しいランセットについてモデルのセットを生成するために同じモデルプールが再度使用される。さらに別の実施形態では、モデルコンポーネントは、モデルコンポーネントプールから排除せずに、単に考慮から除外されるのみである。この時点以降は、プロセスは繰り返され、最終的には、より多くのモデルコンポーネントが排除され得る。このプロセスは、残りのモデルコンポーネント全てが各々のランにおいて「最良」モデルに有意に寄与することが判明するまで、必要に応じて繰り返され得る。
【００８１】
モデルコンポーネントのトリミングを受けたモデルコンポーネントプールを使用して次のランを生成するときに、以前のランからの「最良」モデルのセットが次のランに組み込まれ得ることも企図される。したがって、以前のランからの「最良」モデルが、別の理由では重要でないと決定されるために破棄されるであろうモデルコンポーネントを含む場合、そのモデルコンポーネントは、その以前のランからの「最良」モデルの導入によって再導入され得る。
【００８２】
例えば、第１のランの結果、「最良」モデルが生成され、第２のラン（これは、プルーニングされたモデルコンポーネントプールからのモデルコンポーネントを使用する、ランダムに生成されたモデルのセットから始まる）は、ランダムに生成されたモデルの最初のセット内の第１のランの「最良」モデルを含み得る。そうすることにより、以前に識別された有効モデルの要素を新しいランに導入することができ（例えば、さもなければ破棄されていたであろう１つ以上のモデルコンポーネントを復活させることができる）、その結果、「最良」モデルを世代的に進化させる第２のランの能力が向上する。
【００８３】
このプロセスを通して、モデルコンポーネントは、モデルコンポーネントの１つ以上のプールからプルーニングされる。本発明の主要部に従ってモデルコンポーネントをプルーニングすることによって、遺伝的プログラミング（および関連するタスク）を実行するために必要な計算時間は、劇的に低減される。
【００８４】
本発明者は、以前のランからの「最良」モデルからのモデルコンポーネントが追加的に再度組み込まれ得ることを企図している。上述のプロセスを通して排除されたモデルコンポーネントを再度考慮に入れることができる。過去のランからの「最良」モデル（例えば、１つ以上のモデルは、「最良」であることが判明した各ランを形成する）は、考慮の中に残すための閾値を満たすことができないために排除されたモデルコンポーネントを含み得る。これらの「最良」モデルは、（上述したように）次のランにおいて考慮され得、その結果、別の理由で排除されたモデルコンポーネントを再度考慮に入れることができる。図面に照らして見ると、例えば、図８に示すように、ラン２の任意の世代（例えば、最終世代）内のモデルは、ラン１からの「最良」モデル（ｍ１ａ１）を組み込むことができ、その結果、さもなければ考慮から除外されていたかもしれないモデルｍ１ａ１内の任意のモデルコンポーネントを再導入することが企図される。このプロセスを図１０に示す。
【００８５】
モデルコンポーネントがこのようにして再度考慮に入れられる実施形態では、モデルコンポーネントが閾値を満たさないときにモデルコンポーネントの１つ以上のプールからそのモデルコンポーネントを排除する代わりに、そのモデルコンポーネントは単に考慮から外される（例えば、全てのモデルコンポーネントプール内に留まることはできるが、任意のモデル内で使用されることはできなくなる）ことが企図される。このように、１つのランからの「最良」モデルが次のラン内に再導入されると、ユーティリティメトリックの分母はゼロではなくなり、そのモデルコンポーネントは再度考慮に入れられる機会を有する。例えば、モデルコンポーネントが最初に考慮から除外されたが、再導入され、その後、その重み付けユーティリティメトリックが閾値を超えた場合、モデルコンポーネントは、再度考慮に入れられ、後で生成されたモデル内で使用され得る。
【００８６】
本発明の主要部は、１つには大きなデータセットを処理する計算方法が「次元の呪い」を受けるので、当該技術の状態の改善である。次元の呪いは、行（例えば、観測）および／または列（例えば、予測子）の数が増加するにつれて、問題の次元が増加するという考えである。次元が増加すると、空間の容積は非常に速く増加するので、利用可能なデータは疎になる。このスパース性は、統計的有意性を必要とする任意の方法に対して問題がある。このスパース性は、いくつかの重要な点で任意の分析方法に対して問題となる。
【００８７】
第１に、統計的に適切で信頼性のある結果が望まれる場合、結果をサポートするために必要なデータ量は、次元と共に指数関数的に増加することが多い。第２に、データを編成し検索する多くの方法は、オブジェクトが類似の特性を有するグループを形成する領域を検出することに依存することが多い。しかし、高い次元データでは、全てのオブジェクトは、疎であり、多くの点で異なるように見えるので、共通データ編成戦略の効率を低下させることがあり得る。
【００８８】
反復モデリング技術の文脈では、高次元は、さらなる問題を提起する。各々の追加次元は、解探索空間のサイズを指数関数的に増加させる。多くの反復方法は、可能な解の探索空間をランダムにサンプリングするため、各モデルコンポーネントを問題に追加することは、解に収束するために必要な時間量（物理的および計算的）を指数関数的に増加させる。
【００８９】
本発明の主要部を適用する際に、本発明者らは、反復モデリングプロセスに利用可能な入力特徴（例えば、モデルコンポーネント）の数を反復的に減少させることは、場合によっては、収束に到達するのに必要な時間を１００ｘだけ減少させることができること、または別の形として、プロセスが同じ時間量で考慮し得る「探索空間」または深さを大幅に増加させることができることに気付いた。
【００９０】
この性能向上の１つの理由は、反復モデリングプロセスにおいて利用可能なモデルコンポーネントの減少により、任意の個々のモデルコンポーネントが、ＲＡＭまたは別の形態の電子記憶装置（例えば、ハードドライブ・フラッシュまたは別のもの）から呼び出される（「キャッシュミス」と呼ばれる）のとは対照的に、ＣＰＵキャッシュ内に格納され、その後、呼び出される（「キャッシュヒット」と呼ばれる）可能性が高まるためである。本発明の主要部は、「キャッシュヒット」の可能性を高め、場合によっては、「キャッシュミス」よりも任意の所与のモデルコンポーネントについて「キャッシュヒット」の可能性をさらに高くする。
【００９１】
上で簡潔に言及されているように、「キャッシュヒット」とは、プログラムによる処理を行うために要求されたデータ（例えば、モデルコンポーネント）がＣＰＵのキャッシュメモリ内に見つかった状態をいう。キャッシュメモリは、プロセッサにデータを転送する際にかなり高速である。コマンドを実行するときに、ＣＰＵは、最も近いアクセス可能なメモリ位置（通常はプライマリＣＰＵキャッシュである）内のデータを探す。要求されたデータがキャッシュ内に見つかった場合には、それは「キャッシュヒット」と見なされる。「キャッシュヒット」は、ＣＰＵにデータを転送する際のＣＰＵキャッシュの速度により、より迅速にデータを提供する。「キャッシュヒット」は、要求されたデータが最初のクエリで記憶され、アクセスされるディスクキャッシュからのデータの引き出しを指すこともある。
【００９２】
「キャッシュヒット」を最大化する際の計算時間の改善は、他の記憶媒体と比較して、ＣＰＵキャッシュに記憶されているデータへのアクセス速度によってもたらされる。例えば、レベル１キャッシュ参照は０．５ナノ秒のオーダーであり、レベル２キャッシュ参照は７ナノ秒のオーダーである。比較すると、ソリッドステート・ハードドライブからのランダム読み出しは、１５０，０００ナノ秒のオーダーを要し、すなわち、レベル１キャッシュ参照よりも３００，０００倍も遅い。
【００９３】
したがって、反復的特徴選択の特定の構成および方法が開示されている。しかしながら、当業者には、本出願における発明概念から逸脱することなく、既に説明されたもの以外の多くの変更が可能であることは明らかであろう。従って、本発明の主要部は、本開示の精神を除いて限定されるべきではない。さらに、本開示を解釈する際に、全ての用語は、文脈と一致する可能な限り広い意味で解釈されるべきである。特に、用語「含む」は、非排他的に要素、コンポーネント、またはステップに言及しているものとして解釈されるべきであり、言及されている要素、コンポーネント、またはステップが存在し、または利用され、または明示的に言及されていない他の要素、コンポーネント、またはステップと組み合わされ得ることを示す。
【要約】
反復モデリングのために利用可能なモデルコンポーネントの低減を容易にする特徴選択方法およびプロセス。解に有意に寄与しないモデルコンポーネントを排除する方法は、事前に発見されて破棄され、その結果、反復プログラミング技法における計算要件を劇的に減少させることができることが判明した。この開発は、従来であれば有用であるには桁が大きすぎる計算時間を必要としたであろう複雑な問題を解くために使用される反復モデリングの能力を引き出す。
【選択図】図６【図１】
0006741888.tif 000002
【図２】
0006741888.tif 000003
【図３】
0006741888.tif 000004
【図４】
0006741888.tif 000005
【図５】
0006741888.tif 000006
【図６】
0006741888.tif 000007
【図７】
0006741888.tif 000008
【図８】
0006741888.tif 000009
【図９】
0006741888.tif 000010
【図１０】
0006741888.tif 000011
【図１１】
0006741888.tif 000012