(57)【特許請求の範囲】
【請求項１】
コンピュータ可読データモデルを生成するための、コンピュータに実装された方法であって、前記方法は、
複数のデータレコードを備える時系列データをデータ源からコンピュータシステムにて受信するステップと、
第１の次元と第２の次元とをもつ変数行列を生成するために、前記コンピュータシステムによって、複数の変数変換を前記時系列データに適用するステップであって、前記第１の次元は、前記複数の変数変換に対応する複数の変数を含み、前記第２の次元は、前記複数のデータレコードに対応する複数のデータインスタンスを含む、前記適用するステップと、
複数のデータセットを生成するために、前記コンピュータシステムによって、前記第１の次元および前記第２の次元のうちの第１のものに沿って前記変数行列を分割するステップと、
複数のデータサブセットを生成するために、前記コンピュータシステムによって、前記第１の次元および前記第２の次元のうちの第２のものに沿って前記複数のデータセットを分割するステップであって、前記複数のデータサブセットそれぞれは、前記複数の変数からの複数変数群と、前記複数のデータインスタンスからの複数データインスタンス群とを含む、前記複数のデータセットを分割するステップと、
前記複数のデータサブセットそれぞれの中の前記複数データインスタンス群に基づき、前記複数のデータサブセットそれぞれに含まれる前記複数変数群の重要度のレベルを示すスコアを評価するために、前記コンピュータシステムによって、前記複数のデータサブセットそれぞれを、分散型コンピューティング環境内の個々の計算ユニットに提供するステップと、
前記複数のデータサブセットから前記個々の計算ユニットにより求められた前記複数の変数のスコアを、前記コンピュータシステムにて前記個々の計算ユニットから受信するステップと、
前記データ源からの前記時系列データのモデリングにおいて少なくとも閾値レベルの正確度を有するとして前記複数の変数の一部を前記コンピュータシステムにより選択するステップと、
を含むコンピュータに実装された方法。
【請求項２】
前記変数行列を前記第１の次元および前記第２の次元のうちの前記第１のものに沿って分割するステップは、前記複数のデータセットそれぞれが、前記複数の変数のすべてにわたって前記複数のデータインスタンスのうちの一部に対するデータ値を含むように前記第２の次元に沿って前記変数行列を分割するステップを含み、
前記複数のデータセットを前記第１の次元および前記第２の次元のうちの前記第２のものに沿って分割するステップは、前記複数のデータサブセットそれぞれが、前記複数の変数の一部にわたって前記複数のデータインスタンスのうちの一部に対するデータ値を含むように前記第１の次元に沿って前記複数のデータセットを分割するステップを含む、
請求項１に記載のコンピュータに実装された方法。
【請求項３】
前記複数のデータインスタンスの少なくとも一部は、前記複数のデータセットおよび前記複数のデータサブセットにわたって冗長であり、
前記複数の変数の少なくとも一部は、前記複数のデータサブセットにわたって冗長である、
請求項２に記載のコンピュータに実装された方法。
【請求項４】
前記変数行列を前記第２の次元に沿って分割するステップは、
前記変数行列中の前記データインスタンスおよびそれらの対応するデータ値をランダムに配列するステップと、
隣接データインスタンスのグループを、前記隣接データインスタンスのグループが相互に重複する状態で、前記複数のデータセットに割り当てるステップと、
を含む、請求項３に記載のコンピュータに実装された方法。
【請求項５】
前記複数のデータセットを前記第１の次元に沿って分割するステップは、
前記複数の変数から変数のグループをランダムに選択するステップと、
前記選択されたグループの変数の値が少なくとも部分的に基づいている他の変数を、前記変数のグループそれぞれについて特定するステップと、
を含む、請求項３に記載のコンピュータに実装された方法。
【請求項６】
前記複数の変数は、それらがどれほど正確に前記時系列データをモデリングするかを示す関連する重みを有し、
前記変数のグループは、前記関連する重みに少なくとも部分的に基づいてランダムに選択される、請求項５に記載のコンピュータに実装された方法。
【請求項７】
前記個々の計算ユニットそれぞれは、前記複数変数群の前記重要度のレベルを示すスコアを、
前記複数変数群のそれぞれについて、前記複数変数群のそれぞれが前記複数のデータサブセットに存在する場合と存在しない場合との間での前記時系列データのモデリングにおける正確度の変化に基づく重要度スコアを求めるステップと、
前記複数変数群のそれぞれについて、目標変数との相関のレベルを示す相関スコアを求めるステップと、
前記重要度スコアおよび前記相関スコアの組み合わせに基づき前記複数の変数の前記スコアを求めるステップと、
により評価するようプログラムされる、請求項１に記載のコンピュータに実装された方法。
【請求項８】
前記重要度スコアは、前記複数のデータサブセットそれぞれからランダムに構成された決定ツリーに基づき求められる、請求項７に記載のコンピュータに実装された方法。
【請求項９】
前記複数の変数の前記選択された部分に少なくとも部分的に基づき、複数のモデリングアルゴリズムを使用して複数のデータモデルを生成するステップと、
前記複数のデータモデルについて、前記データ源からの前記時系列データのモデリングにおける正確度のレベルを比較するステップと、
前記データモデルの前記正確度のレベルの前記比較に少なくとも部分的に基づいて、前記複数のデータモデルの中から１つのデータモデルを選択するステップと、
をさらに含む、請求項１に記載のコンピュータに実装された方法。
【請求項１０】
前記複数の変数変換は、複数の統計的変換を含む、請求項１に記載のコンピュータに実装された方法。
【請求項１１】
前記複数の変数変換は、複数の時間領域変換を含む、請求項１に記載のコンピュータに実装された方法。
【請求項１２】
前記複数の変数変換は、複数の周波数領域変換を含む、請求項１に記載のコンピュータに実装された方法。
【請求項１３】
前記複数の変数変換は、複数の形状領域変換を含む、請求項１に記載のコンピュータに実装された方法。
【請求項１４】
前記データ源は、モノのインターネット（ＩｏＴ）センサを備え、前記時系列データは、前記ＩｏＴセンサにより生成されたＩｏＴデータを備える、請求項１に記載のコンピュータに実装された方法。
【請求項１５】
前記複数の変数の前記一部は、前記時系列データまたは前記データ源に関する領域知識なしに生成される、請求項１に記載のコンピュータに実装された方法。
【請求項１６】
前記分散型コンピューティング環境は、クラウドコンピューティングシステムを備え、
前記個々の計算ユニットは、前記クラウドコンピューティングシステム内のノードを備える、請求項１に記載のコンピュータに実装された方法。
【請求項１７】
データモデルを生成するコンピュータシステムであって、前記コンピュータシステムは、
複数のデータレコードを備える時系列データをデータ源から受信するようプログラムされたインターフェースと、
第１の次元と第２の次元とをもつ変数行列を生成するために、複数の変数変換を前記時系列データに適用することであって、前記第１の次元は、前記複数の変数変換に対応する複数の変数を含み、前記第２の次元は、前記複数のデータレコードに対応する複数のデータインスタンスを含む、前記適用すること、
複数のデータセットを生成するために、前記第１の次元および前記第２の次元のうちの第１のものに沿って前記変数行列を分割すること、
複数のデータサブセットを生成するために、前記第１の次元および前記第２の次元のうちの第２のものに沿って前記複数のデータセットを分割することであって、前記複数のデータサブセットそれぞれは、前記複数の変数からの複数変数群と、前記複数のデータインスタンスからの複数データインスタンス群とを含む、前記複数のデータセットを分割すること、
前記複数のデータサブセットそれぞれの中の前記複数データインスタンス群に基づき、前記複数のデータサブセットそれぞれに含まれる前記複数変数群の重要度のレベルを示すスコアを評価するために、前記複数のデータサブセットそれぞれを、分散型コンピューティング環境内の個々の計算ユニットに提供すること、
前記複数のデータサブセットから前記個々の計算ユニットにより求められた前記複数の変数のスコアを、前記計算ユニットから受信すること、および
前記データ源からの前記時系列データのモデリングにおいて少なくとも閾値レベルの正確度を有するとして前記複数の変数の一部を選択すること、
をするようプログラムされたモデル構築エンジンと
を備える、コンピュータシステム。
【請求項１８】
前記変数行列を前記第１の次元および前記第２の次元のうちの前記第１のものに沿って分割することは、前記複数のデータセットそれぞれが、前記複数の変数のすべてにわたって前記複数のデータインスタンスのうちの一部に対するデータ値を含むように前記第２の次元に沿って前記変数行列を分割することを含み、
前記複数のデータセットを前記第１の次元および前記第２の次元のうちの前記第２のものに沿って分割することは、前記複数のデータサブセットそれぞれが、前記複数の変数の一部にわたって前記複数のデータインスタンスのうちの一部に対するデータ値を含むように前記第１の次元に沿って前記複数のデータセットを分割することを含む、
請求項１７に記載のコンピュータシステム。
【請求項１９】
前記複数のデータインスタンスの少なくとも一部は、前記複数のデータセットおよび前記複数のデータサブセットにわたって冗長であり、
前記複数の変数の少なくとも一部は、前記複数のデータサブセットにわたって冗長である、請求項１８に記載のコンピュータシステム。
【請求項２０】
前記コンピュータシステムは、
複数のノードを備えるクラウドコンピューティングシステム
をさらに備え、前記個々の計算ユニットは、前記複数のノードであり、前記複数のノードそれぞれは、前記複数変数群の前記重要度のレベルを示すスコアを、
前記複数変数群のそれぞれについて、前記複数変数群のそれぞれが前記複数のデータサブセットに存在する場合と存在しない場合との間での前記時系列データのモデリングにおける正確度の変化に基づく重要度スコアを求めることと、
前記複数変数群のそれぞれについて、目標変数との相関のレベルを示す相関スコアを求めることと、
前記重要度スコアおよび前記相関スコアの組み合わせに基づき前記複数の変数の前記スコアを求めることと、
により評価するようプログラムされる、請求項１７に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本文書は、全般的に、クラウドベースのコンピュータシステムなどの分散型コンピューティング環境においてデータモデルを構築することに関係する技術を記載する。
【背景技術】
【０００２】
データモデルは、情報間の関係を表現することができ、複雑なシステムを分析するために使用可能である。例えば気象データモデルは、気象パターンを表現することができ、様々な地理的エリアで体験されそうな将来の気象を判断するために使用可能である。例として、気象データモデルは、特定の地理的位置において検出された気象情報（例えば現在の温度、降水量、気圧、露点、風速、風向）を、同じまたは他の地理的位置で体験されるであろう予想される将来の気象にマッピングすることができる。そのような気象データモデルは、様々な地理的位置において経時的に観測された気象状況に基づき、且つ、例えば様々な地理的位置における気象状況間の関係についての領域知識（専門的知識）を使用して、生成することができる。
【０００３】
クラウドコンピュータシステムなどの分散型コンピューティング環境は、並列稼働する複数コンピュータ群にわたる演算の実行を可能にする。分散型環境の各計算ユニットは、物理的な計算ユニット（例えばプロセッサ、コンピュータ、サーバなど）に基づくこともそうでないこともあり、中央プロセスで管理可能であり、他のコンピューティングユニットとは独立して動作可能である。例えばクラウドコンピュータシステムは、異なる複数データセット群の処理を、クラウドコンピュータシステムの複数計算ユニット群にわたり分散させることができ、計算ユニットはそれぞれ、それらの対応するデータセットを、他の計算ユニットと相互作用することなく並列処理することができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本文書は、全般的に、領域知識なしに、且つ大きなデータセットに基づき、分散型コンピューティング環境においてデータモデルを生成するコンピュータシステム、手法、およびプログラム製品について記載する。例えば、モノのインターネット（ＩｏＴ：ｉｎｔｅｒｎｅｔ  ｏｆ  ｔｈｉｎｇｓ）デバイス（例えばネットワーク化されたセンサ）により生成されたデータレコードなどの時系列データレコードを使用して、別々の計算ユニットにより処理されるデータセットを生成でき、計算ユニットはそれぞれ、それらが処理しているデータセットから有意変数を特定することができる。各計算ユニットにより特定された有意変数を統合して、時系列データの全範囲にわたって有意変数を特定することができる。
【０００５】
いくつかの実装では、コンピュータ可読データモデルを生成するための、コンピュータに実装された方法は、複数のデータレコードを備える時系列データをデータ源からコンピュータシステムにて受信するステップと、第１の次元と第２の次元とをもつ変数行列を生成するために、コンピュータシステムによって、複数の変数変換を時系列データに適用するステップであって、第１の次元は、複数の変数変換に対応する複数の変数を含み、第２の次元は、複数のデータレコードに対応する複数のデータインスタンスを含む、適用するステップと、複数のデータセットを生成するために、コンピュータシステムによって、第１の次元および第２の次元のうちの第１のものに沿って変数行列を分割するステップと、複数のデータサブセットを生成するために、コンピュータシステムによって、第１の次元および第２の次元のうちの第２のものに沿って複数のデータセットを分割するステップであって、複数のデータサブセットそれぞれは、複数の変数からの複数変数群と、複数のデータインスタンスからの複数データインスタンス群とを含む、複数のデータセットを分割するステップと、複数のデータサブセットそれぞれの中の複数データインスタンス群に基づき、複数のデータサブセットそれぞれに含まれる複数変数群の重要度のレベルを評価するために、コンピュータシステムによって、複数のデータサブセットそれぞれを、分散型コンピューティング環境内の個々の計算ユニットに提供するステップと、複数のデータサブセットから個々の計算ユニットにより求められた複数の変数のスコアを、コンピュータシステムにて個々の計算ユニットから受信するステップと、データ源からの時系列データのモデリングにおいて少なくとも閾値レベルの正確度を有するとして複数の変数の一部をコンピュータシステムにより選択するステップと、を含む。
【０００６】
そのような方法は、任意選択で、以下の特徴のうちの１つ以上を含むことができる。変数行列を第１の次元および第２の次元のうちの第１のものに沿って分割するステップは、複数のデータセットそれぞれが、複数の変数のすべてにわたって複数のデータインスタンスのうちの一部に対するデータ値を含むように第２の次元に沿って変数行列を分割するステップを含むことができる。複数のデータセットを第１の次元および第２の次元のうちの第２のものに沿って分割するステップは、複数のデータサブセットそれぞれが、複数の変数の一部にわたって複数のデータインスタンスのうちの一部に対するデータ値を含むように第１の次元に沿って複数のデータセットを分割するステップを含むことができる。複数のデータインスタンスの少なくとも一部は、複数のデータセットおよび複数のデータサブセットにわたって冗長とすることができる。複数の変数の少なくとも一部は、複数のデータサブセットにわたって冗長とすることができる。変数行列を第２の次元に沿って分割することは、変数行列中のデータインスタンスおよびそれらの対応するデータ値をランダムに配列することと、隣接データインスタンスのグループを、隣接データインスタンスのグループが相互に重複する状態で、複数のデータセットに割り当てることとを含むことができる。複数のデータセットを第１の次元に沿って分割することは、複数の変数から変数のグループをランダムに選択することと、選択されたグループの変数の値が少なくとも部分的に基づいている他の変数を、変数のグループそれぞれについて特定することとを含むことができる。複数の変数は、それらがどれほど正確に時系列データをモデリングするかを示す関連する重みを有することができる。変数のグループは、関連する重みに少なくとも部分的に基づいてランダムに選択される。
【０００７】
個々の計算ユニットそれぞれは、複数変数群の重要度のレベルを、複数変数群のそれぞれについて、複数変数群のそれぞれが複数のデータサブセットに存在する場合と存在しない場合との間での時系列データのモデリングにおける正確度の変化に基づく重要度スコアを求めるステップと、複数変数群のそれぞれについて、目標変数との相関のレベルを示す相関スコアを求めるステップと、重要度スコアおよび相関スコアの組み合わせに基づき複数の変数のスコアを求めるステップと、により評価するようプログラムされることができる。重要度スコアは、複数のデータサブセットそれぞれからランダムに構成された決定ツリーに基づき求めることができる。
【０００８】
そのような方法は、複数の変数の選択された部分に少なくとも部分的に基づき、複数のモデリングアルゴリズムを使用して複数のデータモデルを生成するステップと、複数のデータモデルについて、データ源からの時系列データのモデリングにおける正確度のレベルを比較するステップと、データモデルの正確度のレベルの比較に少なくとも部分的に基づいて、複数のデータモデルの中から最良のデータモデルを選択するステップとをさらに含むことができる。複数の変数変換は、複数の統計的変換、複数の時間領域変換、複数の周波数領域変換、複数の形状領域変換、またはその組み合わせを含むことができる。データ源は、モノのインターネット（ＩｏＴ）センサとすることができ、時系列データは、ＩｏＴセンサにより生成されたＩｏＴデータを備える。複数の変数の一部は、時系列データまたはデータ源に関する領域知識なしに生成できる。分散型コンピューティング環境は、クラウドコンピューティングシステムとすることができ、個々の計算ユニットは、クラウドコンピューティングシステムの中のノードとすることができる。
【０００９】
別の実装では、データモデルを生成するコンピュータシステムは、複数のデータレコードを備える時系列データをデータ源から受信するようプログラムされたインターフェースと、第１の次元と第２の次元とをもつ変数行列を生成するために、複数の変数変換を時系列データに適用することであって、第１の次元は、複数の変数変換に対応する複数の変数を含み、第２の次元は、複数のデータレコードに対応する複数のデータインスタンスを含む、適用すること、複数のデータセットを生成するために、第１の次元および第２の次元のうちの第１のものに沿って変数行列を分割すること、複数のデータサブセットを生成するために、第１の次元および第２の次元のうちの第２のものに沿って複数のデータセットを分割することであって、複数のデータサブセットそれぞれは、複数の変数からの複数変数群と、複数のデータインスタンスからの複数データインスタンス群とを含む、複数のデータセットを分割すること、複数のデータサブセットそれぞれの中の複数データインスタンス群に基づき、複数のデータサブセットそれぞれに含まれる複数変数群の重要度のレベルを評価するために、複数のデータサブセットそれぞれを、分散型コンピューティング環境内の個々の計算ユニットに提供すること、複数のデータサブセットから個々の計算ユニットにより求められた複数の変数のスコアを、計算ユニットから受信すること、データ源からの時系列データのモデリングにおいて少なくとも閾値レベルの正確度を有するとして複数の変数の一部を選択すること、をするようプログラムされたモデル構築エンジンとを含む。
【００１０】
そのようなコンピュータシステムは、任意選択で、以下の特徴のうちの１つ以上を含むことができる。変数行列を第１の次元および第２の次元のうちの第１のものに沿って分割することは、複数のデータセットそれぞれが、複数の変数のすべてにわたって複数のデータインスタンスのうちの一部に対するデータ値を含むように第２の次元に沿って変数行列を分割することを含むことができる。複数のデータセットを第１の次元および第２の次元のうちの第２のものに沿って分割することは、複数のデータサブセットそれぞれが、複数の変数の一部にわたって複数のデータインスタンスのうちの一部に対するデータ値を含むように第１の次元に沿って複数のデータセットを分割することを含むことができる。複数のデータインスタンスの少なくとも一部は、複数のデータセットおよび複数のデータサブセットにわたって冗長とすることができる。複数の変数の少なくとも一部は、複数のデータサブセットにわたって冗長とすることができる。
【００１１】
そのようなコンピュータシステムは、複数のノードを備えるクラウドコンピューティングシステムをさらに含むことができ、個々の計算ユニットは、複数のノードであり、複数のノードそれぞれは、複数変数群の重要度のレベルを、複数変数群のそれぞれについて、複数変数群のそれぞれが複数のデータサブセットに存在する場合と存在しない場合との間での時系列データのモデリングにおける正確度の変化に基づく重要度スコアを求めることと、複数変数群のそれぞれについて、目標変数との相関のレベルを示す相関スコアを求めることと、重要度スコアおよび相関スコアの組み合わせに基づき複数の変数のスコアを求めることと、により評価するようプログラムされる。
【００１２】
特定の実装は、１つ以上の利点を提供し得る。例えば、データモデルの生成対象である分野またはエリアに関する先行の領域知識がなくてもデータモデルを生成可能である。例えば、変数間の関係および関連についての何らかの既存の情報は、常に容易におよび／または正確に取得できるとは限らないであろうが、それを必要とせずに、データモデルを、モデリング対象のもの／システム／デバイスについての何らの事前の情報もなしに生成できる。
【００１３】
別の例では、特に量、種類、および速度のいずれの点においても大きなＩｏＴデータのコンテキストにおいて、広範な変数変換を使用して、モデル構築のために重要な変数を特定できるよう保証することができる。さらに、モデル構築に使用される並列分散型処理法は、そのような多様なデータの大きなセットを変数特定およびモデル構築のために効率的に使用できるようにすることができる。これにより、そのような大きなデータセットからデータモデルを生成するためにコンピュータリソース（例えばプロセッササイクル、メモリ）が使用される効率性を改善することができる。さらなる例では、変数重要度スコアおよび相関スコアに基づく合成スコアを使用することで、非線形相関を含む変数間の相関を容易に特定できるようにすることができる。
【００１４】
添付の図面および以下の説明に、１つ以上の実施形態の詳細が記載される。他の特徴および利点は、説明および図面、ならびに特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【００１５】
【図１】分散型コンピューティング環境においてデータモデルを生成する例示のシステムの概念図である。
【図２Ａ】図１において記載された例示のシステムの或る部分の説明的な例を提供する。
【図２Ｂ】図１において記載された例示のシステムの別の部分の説明的な例を提供する。
【図２Ｃ】図１において記載された例示のシステムの別の部分の説明的な例を提供する。
【図２Ｄ】図１において記載された例示のシステムの別の部分の説明的な例を提供する。
【図２Ｅ】図１において記載された例示のシステムの別の部分の説明的な例を提供する。
【図２Ｆ】図１において記載された例示のシステムの別の部分の説明的な例を提供する。
【図３】１つ以上のデータ源により生成されたデータからデータモデルを生成する例示のシステムの図である。
【図４】データモデルを生成および使用してエンジンの問題点に対処する例示のシステムの図である。
【図５】時系列データのデータモデルを生成する例示の手法のフローチャートである。
【図６】例示的な汎用コンピュータシステムの概略図を示す。
【発明を実施するための形態】
【００１６】
様々な図面の同じ参照符号は、同じ構成要素を示す。
【００１７】
本文書は、全般的に、クラウドコンピューティングシステムなどの分散型コンピューティング環境においてデータモデルを生成する手法、システム、プログラム製品、およびコンピューティングデバイスについて記載する。データレコードは、データの重複部分を含むことができるより小さなサブセットへと分離でき、それらを別々の計算ユニットにより処理して、有意変数および変数関連性を特定することができる。そのような情報は、有意変数および／または変数関連性を特定するために組み合わされてもよい。
【００１８】
様々な手法を使用して、より小さなサブセットを生成できる。例えばデータレコードは、最初に種々の複数データ変換により展開することができ、それにより、変換された複数データレコード群を各レコードに対して生成することができる。次に、変換データレコードを水平および／または垂直に並列化することができる。水平データ並列化は、時間的に連続した何らかの時系列データレコードが別々のサブセットに分離されるようにデータレコードをグループ化することを含む。垂直データ並列化は、同じデータレコードの変換結果が別々のサブセットへと分かれるようにデータレコードをグループ化することを含む。そのようなデータ並列化は、複数のサブセットにわたってデータの重複部分がいくらかあるように実行可能である。
【００１９】
様々な手法を使用して、種々のデータサブセットから有意変数を特定できる。例えば、回帰分析、分類、決定ツリー、および／または他の機械学習アルゴリズムなどの１つ以上の機械学習法を使用して有意変数を特定できる。変数には、その有意性のレベルを示すスコアを割り当てることができる。そのようなスコアを、各サブセットの中で、さらにすべてのサブセットにわたり最も有意な変数を特定するために相互に評価して、データモデルに含めるべき最も有意な変数を特定することができる。
【００２０】
図１は、分散型コンピューティング環境においてデータモデルを生成する例示のシステム１００の概念図である。例示のシステム１００は、クラウドコンピューティングシステム、ネットワーク化コンピューティングデバイス、および／または実在および／または仮想の複数コンピューティングユニット（例えばプロセッサ、オペレーティングシステム、処理スレッド、仮想マシン）を有し得る単一コンピューティングデバイス上など、１つ以上のコンピューティングデバイスにわたり実装可能である。図２Ａ〜Ｆは、例示のシステム１００の種々の部分の説明的な例を提供するものであり、図１の説明に沿って記載される。
【００２１】
システム１００は、時系列データ１０２などの様々な異なるタイプのデータからデータモデルを生成することができる。時系列データ１０２は、或る期間にわたり様々な間隔でセンサにより得られた連続的な測定値など、或るデータ源に関する経時的な一連のデータ点またはデータレコードを含むことができる。データ源は、時系列データなどのデータレコードを生成でき且つ生成するよう構成された様々な適切なデバイス、センサ、システム、コンポーネント、および／または他の適切なシステムのいずれかを含むことができる。例えば時系列データ１０２は、ＩｏＴデバイスにより生成可能であり、ＩｏＴデバイスとは例えば、センサ、コンポーネント、およびデバイスなどであって、それらのまたは周囲環境の現状の特徴１つ以上を測定して当該測定値をデータとしてインターネット（および／またはローカルエリアネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）、ワイドエリアネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）、仮想プライベートネットワーク（ＶＰＮ：ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）、無線ネットワーク（例えばＷｉ−Ｆｉネットワーク、ＢＬＵＥＴＯＯＴＨネットワーク、モバイルデータネットワーク）、またはその任意の組み合わせなどの他の通信ネットワーク）を介して（有線および／または無線）伝達できるものである。
【００２２】
例えば時系列データ１０２は、温度の測定値、回転率、圧力、流量、制御信号の受信、制御信号の送信、および／または他の適切な測定値など、エンジンの様々な構成部分の動作および性能に関する測定値を得るエンジンセンサにより得られた測定値とすることができる。そのような例示の時系列データを使用して、例えば、エンジンのデータモデルを生成でき、それを使用して、エンジンに関する問題点が発生する前にそれらを予め特定し是正する（例えばベルトが摩耗しており交換が必要であるとの指標を特定する）こと、および／またはエンジンのどの構成部分（単数または複数）が故障を発生させたか（例えばどの構成部品が低速時に振動を発生させているか）を事後に判断することができる。
【００２３】
複数変数変換１０４を時系列データ１０２に対して実行して、変換済みデータ（複数変数変換により複数変数空間へと変換されたデータレコード）を含む変数行列１０６を生成することができる。変数変換１０４は、データレコードを統計的変数空間へと変換することができる統計的変換、データレコードを時間領域変数空間へと変換することができる時間領域変換、データレコードを周波数領域変数空間へと変換することができる周波数領域変換、および／またはデータレコードを形状領域変数空間へと変換することができる形状領域変換などのいくつかの異なるタイプの変換を含むことができる。異なる各タイプの複数変換を、時系列データ１０２に対して実行できる。システム１００は、変数変換１０４の大きなセットを使用することができ、これにより、時系列データ１０２からデータモデルを構成および／または改良するときに変数の大きな集合を考慮可能にすることができる。これにより、これらの変数のうち評価対象の特定の時系列データ１０２に関連性がありそうなサブセットを予め選択するために領域知識（例えばセンサの示度とエンジンの状態との関係に関するエンジンセンサについての知識）を使用することに依存しなくなる。
【００２４】
図２Ａを参照する。この例では、時系列データ１０２が、データレコード１〜ｍを含むＩｏＴデータであるものとして示されている。例示の複数タイプのデータ変換１０４ａ〜ｃが、それぞれ変数行列１０６を生成するためにデータ１０２に適用される異なる複数変換（例えば統計的変換Ａ〜Ｎ、時間領域変換Ａ〜Ｎ、周波数領域変換Ａ〜Ｎ、形状領域変換Ａ〜Ｎ）を含むものとして示されている。示されている例示の変数行列１０６は変数Ｖ１〜Ｖｎを含み、各変数はデータ１０２に適用される変数変換１０４の１つに対応することができ、インスタンス１〜インスタンスｍにわたるデータ値ｘ１１〜ｘｍｎを備え、各インスタンスはデータレコード１０２の１つに対応する。例えば、変数変換１０４のうちＶ１に対応するものを各データレコード１〜ｍに適用することにより、変数Ｖ１に対するデータ値ｘ１１〜ｘｍ１が生成される。これを変数変換１０４ごとに実行でき、その結果、データモデル生成のために考慮されるべきデータ値の数に、データレコード１０２に適用される変数変換１０４の数と同じまたは近い因数が乗じられることになり得る。例えば、ｍ個のデータレコード、ならびにｎ個の変換および対応する変換済み変数がある場合、行列１０６のデータ値の数はｍ＊ｎと等しい。これにデータ源の数をさらに乗じることもできる。例えば、ｍ個のデータレコードをそれぞれ発生させるｐ個のデータ源（例えばセンサ）がある場合、行列１０６の大きさは積ｍ＊ｎ＊ｐに拡大し得る。
【００２５】
ＩｏＴデバイスにより生成可能なデータなどの時系列データは、一連のデータレコード１０２の中に有益な情報が含まれ得ること、およびそれらの値が経時的に変化することに基づく特有の課題を提示することがある。システム１００は、データレコード１０２を時系列型のデータとして扱う変換を適用でき、データレコード１０２に対して算術演算を実行して間接時系列変数を得て時系列データを失うリスクをさらに低減することができ、これは、変数行列１０６が複数計算ユニットでの評価のために複数のサブセットへと分割される場合に有益となり得る。
【００２６】
図２Ａに示されている例示のタイプの変換１０４ａ〜ｃなど、様々な異なるタイプの変数および変数変換の任意のものが変数行列１０６に含まれ得る。下記表１〜４は、システム１００の一部として使用される各タイプの変換１０４ａ〜ｃに含まれ得る種々の変数変換の説明的な例を提供する。下記表１は、統計的変換１０４ａの例を示す。他の統計的変換も使用可能である。
【００２７】
【表１】
0006588566.tif 000002
【００２８】
下記表２は、時間領域変換１０４ｂの例を示す。
他の時間領域変換も使用可能である。
【００２９】
【表２】
0006588566.tif 000003
【００３０】
下記表３は、周波数領域変換１０４ｃの例を示す。他の周波数領域変換も使用可能である。
【００３１】
【表３】
0006588566.tif 000004
【００３２】
下記表４は、形状領域変換１０４ｄの例を示す。他の形状領域変換も使用可能である。
【００３３】
【表４】
0006588566.tif 000005
【００３４】
表１〜４に記載された変換に対して様々な組み合わせ、置換、変更、および／または追加をして、変数行列１０６を生成するためにデータレコード１０２に適用される変換１０４として使用できる。広範な変換の集合を使用して変数の大きなセットを作り出すことにより、システム１００によって、データレコード１０２の領域知識なしに、考慮対象の変数および変数の組み合わせの多さに基づいて、データモデルを生成できる。例えば、表１〜４に記載された例示の各変換を適用すると、結果として２０９個の変数が生じ得る。
【００３５】
データレコード１０２に関する領域知識が利用可能な場合には、変数行列１０６内の適切な変数に対して１つ以上の重み付けスキームを適用できる。例えば、領域知識に基づきデータレコード１０２の正確なモデリングを提供する可能性の高い変数は、より大きな重みを受けることができる。領域知識がなければ、重み付けは行列１０６の変数に適用されなくてもよい。
【００３６】
図１を再び参照する。変数行列１０６に水平データ並列化１０８が適用されることで、水平並列化変数データ１１０を生成できる。水平データ並列化は、行列１０６を複数のサブセットへと、データインスタンスの水平軸に沿って分割することを伴うことができる。データインスタンスがランダムに順序変更された（配列し直された）後に一部または全部のデータインスタンスが複数サブセットにわたって冗長的に出現するサブセットが生成されるランダム冗長サンプリングによるなど、様々な方式のいずれかで行列１０６の分割を実行できる。そのようなランダム冗長サンプリングは、偏りのあるデータを発生させそれを使用してデータモデルを生成するリスクを低減することができ、システム１００が実行するモデリングのロバスト性を向上させることができる。例えば、偏りのあるデータセットは、データモデル生成に使用される特定のデータセットに対するデータモデルの過剰適合など、データモデルにおいて様々な問題のいずれかを生じる可能性がある。ランダム冗長サンプリングはさらに、不均衡な分布を有する変数からデータにもたらされ得る偏りを低減することができる。
【００３７】
図２Ｂを参照する。例示の変数行列１０６を例示の水平並列化変数データサブセット１１０ａ〜ｃへと水平分割するランダム冗長サンプリングの例が示されている。この簡略な例では、変数行列１０６は、変数Ｖ１〜Ｖ６にわたってインスタンス１〜インスタンス５のデータ値ｘ１１〜ｘ５６を含み、ランダムに順序変更されて、インスタンス１〜インスタンス５の行がランダムに配列し直された順序変更済みの変数行列１０７が生成される。候補順序変更済みの変数行列１０７は、データインスタンスの一部が水平データサブセット１１０ａ〜ｃの複数のものにわたって冗長的に含まれるように冗長的に分割できる。これは、この事例では分割線にあるインスタンスが隣接したデータセット双方に含まれるなど、様々な適切な方式のうちいずれかで実行することができる。例えば、データインスタンス３は、第１データサブセット１１０ａと第２データサブセット１１０ｂとの間の分割部にあり、これらサブセット１１０ａおよび１１０ｂ双方に含まれる。水平データサブセット１１０ａ〜ｃは、それぞれ、いくつかのデータインスタンスのいずれかを含むことができ（例えば２、３、１０、５０、１００）、大きさは一定であっても且つ／または変化してもよい。データインスタンスの一部または全部は、複数データサブセット１１０ａ〜ｃに含まれてもよく（例えば２つのサブセット、３つのサブセット、５つのサブセット、１０個のサブセットに含まれる）、データインスタンスの冗長性は、変数行列１０６の各インスタンスで均一であってもなくてもよい。
【００３８】
変数行列１０６からのインスタンスを水平並列化変数データ１１０内の水平データサブセットにランダムに割り当てるなど、他の様々な手法のいずれかが実行されて、水平並列化変数データ１１０を生成できる。水平並列化変数データ１１０を生成する他の手法もあり得る。
【００３９】
上述のとおり、システム１００に入力される元データ１０２からの時系列情報は実行される変数変換１０４で維持でき、変数行列１０６に含められることができる。例えば周波数領域変換は、行列１０６の各インスタンスに含まれた時系列データを提供することができる。このデータは、インスタンスがランダムに配列し直され冗長的に各分割にグループ化されても、水平並列化変数データ１１０に維持される。
【００４０】
再び図１を参照する。垂直データ並列化１１２が水平並列化変数データ１１０に対して実行されて、垂直並列化変数データ１１４が生成され得る。垂直データ並列化１１２は、水平並列化変数データ１１０のデータセットを、各水平インスタンスが複数のデータインスタンスへと分割されるように変数の垂直軸に沿って分割することにより実行される。水平並列化のように、垂直データ並列化は、ランダム且つ冗長的にデータインスタンスをサブセットへとグループ化することを含むことができる。１つ以上の変数をランダムに選択して、次に、選択された変数と密接に関連する他の一連の変数を特定することを含む、ランダムシーケンシャルサンプリングなど、様々な適切な手法のうち任意のものが実行されて、水平変数データ１１０をランダム且つ冗長的にグループ化することができる。例えば、変数間の密接な関連は、他の変数からの情報に基づき生成された（依存した）変数を含むことができる。そのほかの変数間の密接な関連もあり得る。変数をランダムに選択して、他の関係する一連の変数を複数特定することにより、水平並列化変数データ１１０の場合と似た垂直並列化変数データ１１６のランダム性および冗長性を得ることができる。
【００４１】
水平データ並列化１０８および垂直データ並列化１１２は、各データセットが直ちにクラウドコンピューティングシステムのクラウドノードなどの計算ユニットにより処理可能なように、変数行列１０６をより小さいデータセット（計算パッケージ）へと分割するよう実行できる。例えば、変数行列１０６の水平軸、次に垂直軸に沿ってデータを分割することにより、各計算パッケージに含まれるインスタンスの数および変数の数の双方を削減するようにデータを下位区分することができる。これは、各計算パッケージに対して、より低い技術仕様の計算ユニット（例えばメモリ、処理速度、現在利用可能な処理能力およびストレージ容量）を使用できるようにし、多数の計算リソースが存在しても最高峰のスペックをもつのはそのうちわずかであろう分散型計算環境におけるデータモデルの生成を、効率的且つ実用的なものとすることができる。
【００４２】
図２Ｃを参照する。図２Ｂに示された、結果として生じた例示の水平データサブセット１１０ａ〜ｃの１つを垂直分割する、ランダム冗長サンプリングの例が示されている。示されている例では、データサブセット１１０ｃが垂直分割されるものとして示される。同じ垂直分割を、他の水平データサブセット１１０ａ〜ｂ（ならびに変数行列１０６から生じる示されていない他の水平データサブセット）に対しても実行可能である。示されている例では、変数Ｖ１〜Ｖ６が、ランダムシーケンシャル変数サンプリングによって変数の例示のグループ１１３ａ〜ｂに分割される。例えば、例示のグループ１１３ａでは、変数Ｖ２およびＶ３がランダムに選択され、次にこのランダムに選択された変数Ｖ２およびＶ３の１つ以上に基づき変数Ｖ１およびＶ４が特定される。（例えば変数Ｖ２および／またはＶ３は変数Ｖ１およびＶ４に基づき生成されている）。同様に、例示のグループ１１３ｂでは、変数Ｖ１、Ｖ５、およびＶ６がランダムに選択され、次に第１レベルの他の変数Ｖ１およびＶ３がランダムに選択された変数Ｖ１、Ｖ５、およびＶ６の１つ以上に基づき特定され（例えば変数Ｖ１、Ｖ５および／またはＶ６は変数Ｖ１およびＶ３に基づき生成されている）、さらに続いて第２レベルの他の変数Ｖ３およびＶ６が第１レベルの他の変数Ｖ１およびＶ３に基づき特定される（例えば変数Ｖ１および／またはＶ３は変数Ｖ３およびＶ６に基づき生成されている）。
【００４３】
グループ１１３ａ〜ｂは、変数が含められたレベル（ランダムに選択された変数であるかまたは依存関係により特定されたシーケンシャル変数であるか）に関係なく各グループの中に含められた変数を含む。変数のランダムおよびシーケンシャル分割により、変数グループに冗長性をもたらすことができる。例えば、変数Ｖ１およびＶ３は、グループ１１３ａおよびグループ１１３ｂの双方に出現する。データ１０２に関する領域知識がある場合など変数が重み付けされる場合には、重み付けを使用してグループ１１３ａ〜ｂの変数を選択することができる。例えば、或るグループの変数のランダム選択は、より大きく重み付けされた変数（より有意な変数）が選択される可能性が高くなるよう、重み付けを含むことができる。場合によっては、重み付けは、より有意な変数同士が、別々のグループに分散される可能性をより高くすることができる。場合によっては、重み付けは、より有意な変数が同じグループにグループ化される可能性をより高くしてもよい。
【００４４】
次に、例示の水平データサブセット１１０ｃが、グループ１１３ａ〜ｂに基づきさらに区分され、計算パッケージ１１４ａ〜ｂ（水平・垂直分割データセット）が作り出される。例えば計算パッケージ１１４ａは、サブセット１１０ｃからの各データインスタンス（インスタンス１、インスタンス２、およびインスタンス５）にわたる変数Ｖ１〜４のデータ値を含み、計算パッケージ１１４ｂは、サブセット１１０ｃからの同じデータインスタンスのデータ値Ｖ１、Ｖ３、Ｖ５、およびＶ６を含む。各計算パッケージ１１４ａ〜ｂを、図２Ｄ〜Ｆに関して後述される処理のために計算ユニットに提供できる。
【００４５】
再び図１を参照する。垂直並列化変数データ１１４に含まれる計算パッケージは、変数のスコアを求めるために使用可能な回帰／分類決定ツリー１１８を生成するべく、ツリーベースの変数評価１１６をするために計算ユニットに提供できる。スコアは、データ１０２を適切にモデリングする上での変数の重要度および／または正確度のレベルを示すことができる。ツリーベースの変数評価１１６は、各計算パッケージに対してツリーをランダムに生成すること、ツリーから変数を個々に削除すること、および変数の当該削除がツリーにより生成される結果に対して有する影響を評価することを伴うことができる。削除されると著しく劣化した結果をもたらす変数は、データ１０２のモデリングにおいてより重要且つ有意であると判断できる。ツリーベースの変数評価１１６は、さらにおよび／または代わりに、各変数と目標変数との相関を求めることを含むことができる。他の判断も、ツリーベースの評価１１６の一環として行われ得る。変数のスコアは、変数の重要度／有意性のレベル、および／または目標変数に対する変数の相関に少なくとも部分的に基づき求めることができる。単一の目標変数を使用して、一般性を失うことなく簡潔性を提供できる。複数目標変数が使用される場合、それらは、ｘ＝（ｘ１，ｘ２，…）などの組変数に組み合わせることができるが、より大きな複雑性を生じ得る。
【００４６】
図２Ｄを参照する。例示のツリー１１８ａ〜ｂが計算パッケージ１１４ａ〜ｂの変数グループ１１３ａ〜ｂから生成されるものとして示されている。例示のツリー１１８ａ〜ｂを使用して、テーブル１１９ａ〜ｂに表されたスコアを求めることができ、スコアは本例では、ツリーベースの重要度スコア、相関測定、およびツリーベースの重要度スコアと相関測定とを組み合わせた総合重要度スコアである。ツリー１１８ａ〜ｂは、グループ１１３ａ〜ｂからランダムに生成可能である。例えば、ツリー１１８ａ〜ｂの各ノードにて変数がランダムに選択され得る。重要度スコアは、各変数のツリー１１８ａ〜ｂに対する影響レベルに基づき生成可能であり、これは例えば、評価中の変数のデータ（対応する計算パッケージ１１４ａ〜ｂからのデータ）を削除し且つ／またはノイズデータに置き換えて、次にそれが発生させた変化、例えば発生した正確度の低下などを確認することにより行うことができる。正確度の低下のレベルが大きいほど、その変数の重要度のレベルがより高いこと、ひいてはより高い重要度スコアを示すことができる。統計上の相関測定値を、カイ二乗検定（離散変数の場合）および／または相関比（連続変数の場合）を使用するなど、様々な適切な方式のうちいずれかで求めることができる。テーブル１１９ａ〜ｂに示されるように、重要度スコアおよび相関測定を組み合わせて、総合重要度スコアをもたらすことができる。
【００４７】
例示のツリー１１８ａ〜ｂは、評価のために生成可能なランダムツリーを例示する。一部の実装では、例示のツリー１１８ａから除外されている変数Ｖ３により示されるように、グループ１１３〜ａｂの１つ以上の変数がツリー１１８ａ〜ｂから除外されてもよい。一部の実装では、グループ１１３ａ〜ｂの各変数が各ツリー１１８ａ〜ｂに含まれる。評価対象の特定の変数に対応するツリー１１８ａ〜ｂのノードは、対応する評価対象の変数の影響を求めるべくノードを評価中のときに削除および／または置換されてもよく、これはノードがツリー１１８ａ〜ｂに存在しないことにより表現できる。例示のスコアが、０．０〜１．０の正規化された値でテーブル１１９ａ〜ｂに示される。異種混合のスコア範囲を含め、他の範囲のスコアも可能である。テーブルは、総合重要度スコアが各変数の重要度スコアと相関測定との平均である単純な例を示す。他の組み合わせも使用可能である。
【００４８】
重要度スコアおよび相関値を求める例示の手法について以下記載する。一例では、各変数ｘｉの重要度スコアＳｉは、ｘｉに対応するツリー内のノードを削除した後の成長したツリーの正確度の低下を確認することにより計算できる。目標変数ｙに対する変換された各変数ｘｉの相関値Ｃｉは、例えばｘｉおよびｙの特徴などに基づき求めることができる。例えば、ｘｉおよびｙがいずれも定量的であれば、ピアソン相関係数を使用でき、一方が定量的で他方が定性的であれば、相関比を使用でき、双方が定性的であれば、カイ二乗検定のｐ値の逆数を使用できる。
【００４９】
総合重要度スコアは、様々な適切な方式のいずれかで求めることができる。例えば、総合重要度値Ｐｉは下記の式により計算できる。一部の事例では、係数ａがゼロに設定されない場合、異なる相関測定値を使用する変数の総合重要度スコアを比較するのは不正確かもしれない。
【００５０】
Ｐｉ＝ａ＊Ｃｉ＋（１−ａ）＊Ｓｉ，０≦ａ≦１
【００５１】
スコアを求めるために使用されたデータセットの大きさ、各ツリー１１８ａ〜ｂの変数の数、および／または求めたスコアに関する他の関連要素など、テーブル１１９ａ〜ｂに含まれる情報に関連するメタ情報も生成可能である。
【００５２】
図１を参照する。ツリー１１８を使用して求めたスコアが集約および評価１２０されて、集約された変数重要度スコア１２２を生成することができる。例えば、計算ユニットにより求められたスコアは、スコアを統合および集約して総合スコアを評価し、例えばデータモデルに含められる変数（例えばデータ１０２を正確にモデリングすると思われる変数）および除外される他の変数（例えば、データ１０２を正確にモデリングすると思われない変数）などに関する決定を行う、中央システムにおいて受信され得る。平均、中央値、平均誤差率計算、および／または他の適切なメトリクスのような統計的手法を使用するなど、様々な適切な手法のいずれかを使用して、スコアを集約および統合できる。さらに、および／または代わりに、分布メタ情報を使用して、組み合わせる対象の各スコアの有意性を評価することができる。例えばスコアは、各スコアを生成したデータセットの大きさにより重み付けされて（例えばより大きなデータセットから生成されたスコアほどより大きな重み付けを受ける）、その後に組み合わされてもよい。評価１２０はさらに、（例えば仮説検定に基づき、素点に基づき、他の変数との比較スコアに基づき）データ１０２に関して少なくとも閾値レベルの有意性を有しない変数を破棄することを含むことができる。
【００５３】
図２Ｅを参照する。テーブル１１９ａ〜ｂが、計算ユニット（ノード）から、例えば分散型コンピューティング環境の受信ユニット（ノード）により受信されて、集約されたスコアリストを提供するテーブル１２１により示されるように統合される。この例では、Ｖ１のスコアが、組み合わされるテーブル１１９ａ〜ｂの唯一重複するスコアである。上述のとおり、これらのスコアは、いくつかの方式のうちいずれかで組み合わせることができる。値を平均する単純な例がテーブル１２１に示されている。値を組み合わせる他の方式も可能である。スコアを組み合わせるのに加えて、メタ情報もテーブル１２１に含められて組み合わされることが可能である。スコアおよび他のメタ情報がテーブル１２１に集約されると、この情報を使用して統計的検定（例えばｔ−仮説検定）を実行して、スコアの有意性レベルを求めることができる。変数Ｖ１およびＶ６の取り消し線で示されているように、無意味と判断された変数は破棄される。偽の重要変数を選択するリスクが低減されるように統計的仮説検定を実行することができる。結果として生じる、評価中のデータ１０２に関して少なくとも閾値レベルの有意性を有する変数のリストは、集約された変数重要度スコア１２２に含められる。
【００５４】
図１を再び参照する。集約された変数重要度スコア１２２を使用して、モデル１２４を生成および／または微調整することができ、その結果、使用に適したデータモデル１２６を生じることができる。例えば、データモデルの訓練に使用される変数のセットはさらに、最高ランクを有する変数のサブセット（例えば変数の上位０．１％、変数の上位１％、変数の上位５％）のみに削ることができ、それを１つ以上のモデリングアルゴリズムに供給することができる。一部の実装では、上位にランクする変数を使用して複数モデリングアルゴリズムを実行でき、その結果、複数候補データモデルを生じさせることができ、それらを相互に評価して最良のデータモデルを特定することができる。
【００５５】
図２Ｆを参照する。有意変数１２２からモデル１２４を生成する例が示されている。例えば、上位変数Ｖ４およびＶ５が有意変数１２２のセットから選択されて、本例ではサポートベクタマシン、ロジスティック回帰、人工ニューラルネットワーク、および決定ツリーを含む異なる複数モデリングアルゴリズム１２３へと供給される。他のモデリングアルゴリズムも使用可能である。これら各モデリングアルゴリズム１２３が、１つ以上の候補データモデル１２４を生成でき、それらが相互におよび／または過去／以前のデータモデルと比較されて、その後使用する最良のデータモデルを特定することができる。例えば、図１〜２で例示のシステム１００に関して記載された手法を定期的に実行して、システム（例えばエンジン、医療患者の健康状態、財務システム、業績）の新規データモデルが、例えば時間とともに変化した可能性のあるシステムを、より良好に表現するかどうか判断することができる。当該判断を下すために、候補モデル１２４の中から最良のモデルを特定することができ、それを過去の最良モデルに対して比較することができる。
【００５６】
システム１００は、領域知識がほとんどまたはまったくない状況を含む、様々な異なるコンテキストのうちのいずれかにおいて使用可能である。例えばシステム１００は、利用可能なエンジンデータ（例えばエンジンセンサデータ）に基づきエンジンの問題を診断して、将来そのような問題を回避するために様々なアクションをとるようユーザに予め促すべく、データモデルを生成するために使用できる。別の例では、システム１００を医療業界で使用して、ユーザに関する利用可能な健康情報（例えば病歴、フィットネストラッカーデータ、バイタルサインデータ）に基づき患者の健康状態を診断するためのデータモデルを生成することができる。さらなる例では、システム１００を使用して、ビジネスに関するデータ（例えば売上、在庫、価格）に基づきビジネスの収益を予測するためのデータモデルを生成することができる。他の用途も可能である。
【００５７】
図３は、１つ以上のデータ源により生成されたデータからデータモデルを生成する例示のシステム３００の図である。例示のシステム３００は、図１〜２に示されたシステム１００に類似のものとすることができ、それに関して上述したものと類似の動作を実行することができる。
【００５８】
例示のシステム３００は、データ（例えば時系列データ）を様々なデータ源（例えばＩｏＴデバイス）から受信し、データモデルを生成し、次に、生成されたデータモデルを使用するユーザアクセス可能な機能を提供する（例えば様々な問題に関するユーザのクエリに対し診断サービスを提供する）ようプログラムされたコンピュータシステム３０２を含む。コンピュータシステム３０２は、システム３００が動作できる分散型コンピューティングプラットフォームを実際におよび／または仮想的に提供できる、１つ以上のコンピューティングデバイス（例えばサーバ、パーソナルコンピューティングデバイス）を含むことができる。例えばコンピュータシステム３０２は、コンピューティングデバイスの集合にわたって動作する仮想コンピューティングデバイスであってもよい計算ユニットが必要に応じて展開およびスケールされることを可能にするネットワーク化されたコンピューティングデバイスの集合を使用する、クラウドコンピューティングシステムとすることができる。他の構成も可能である。
【００５９】
例示のコンピュータシステム３０２は、インターネットおよび／または他のネットワーク上でデータを送信するＩｏＴデバイスからなど、コンピュータシステム３０２の外部のデータ源から、データを取得および収集するようプログラムされたデータ収集サブシステム３０４を含む。データ収集サブシステム３０４は、バッチセンサデータ３２８などの大量データを受信するバッチ受信ユニット３２６と、リアルタイムセンサデータ３３２などのリアルタイム（または実質的にリアルタイム）のデータを受信するストリーム受信ユニット３３０とを含む。
【００６０】
コンピュータシステム３０２はさらに、データ収集サブシステム３０４により取得されたデータを受信して、図１〜２に関して上述されたシステム１００を実装するようプログラムされた解析モデル構築エンジン（ＡＭＥ：ａｎａｌｙｔｉｃｓ  ｍｏｄｅｌ−ｂｕｉｌｄｉｎｇ  ｅｎｇｉｎｅ）３０６をも含む。例えばＡＭＥ３０６は、上述された個々の動作を実行するようそれぞれプログラムされた、変数変換ユニット１０４、水平並列化ユニット１０８、垂直並列化ユニット１１２、ツリーベースの評価ユニット１１６、集約および評価ユニット１２０、ならびにモデル生成器ユニット１２２を含む。ＡＭＥ３０６は、垂直並列化ユニット１１２により生成された各計算パッケージの処理などをするために分散型プラットフォーム内の計算ユニットおよび他のコンピューティングリソースの展開を制御する１つ以上の中央プロセスを含むことができる、分散型コンピューティングプラットフォーム（例えばクラウドベースのコンピュータシステム）上に提供することができる。
【００６１】
ＡＭＥ３０６は、データ収集サブシステム３０４により取得されたデータからデータモデル１２６を生成することができ、データモデルは、データモデル１２６を使用してデータを分析するようプログラムされた解析エンジン３０８に提供され得る。解析エンジン３０８は、ＡＭＥ３０６により作り出されたデータモデル１２６に基づきデータの所与のセットに対する推論解３３８を生成するようプログラムされた推論エンジン３３６を含む。例えばＡＭＥ３０６は、エンジンに位置するセンサからデータ収集サブシステム３０４を介してエンジンデータを受信することができ、エンジン空間について特殊な領域知識なしにエンジンの性能をモデリングするため受信されたデータに基づきデータモデル１２６を生成することができ、それらを解析エンジン３０８に提供することができ、解析エンジン３０８はそのデータモデル１２６を使用して、エンジンに起きている問題に対する解を推論すること、および／または近い将来生じそうに思われるエンジン問題を防ぐために実行されるべきメンテナンスを推論することができる。
【００６２】
解析エンジン３０８は、データモデル１２６が適用される対象のデータを、データ収集サブシステム３０４から、および／または解析エンジン３０８により分析されるクエリのユーザによる提出が可能なフロントエンドシステム３１０から、受信することができる。例えば解析エンジン３０８は、データ収集サブシステム３０４を介して受信されるデータを絶えず評価するバックグラウンドプロセスを実行してもよく、対処が必要な問題点が特定されると、問題および推論解に関して１つ以上の適切な存在（例えばデバイス、ユーザアカウント）に警報を提供することができる。別の例では、解析エンジン３０８は、要求に基づいて（例えばユーザからクエリが受信されるのに伴い）フロントエンドシステム３１０を介して受信される特定のクエリを処理することができる。
【００６３】
フロントエンドシステム３１０は、クエリを受信し、クエリの処理（例えばクエリのテキスト分析、必要に応じて解析エンジン３０８との相互作用）をし、結果を１つ以上のネットワーク３４６（例えばインターネット、ＬＡＮ、ＷＡＮ、ワイヤレスネットワーク、ＶＰＮ、その組み合わせ）上でクエリを提出したクライアントコンピューティングデバイス３４４に提供するようプログラムされたクエリエンジン３４０を含むことができる。クエリエンジン３４０は、以前に解析エンジン３０８により特定された解のキャッシュ３４２を維持することができ、クエリが受信されるとまずこれを参照することができる。クエリに対する適切な解がキャッシュ３４２に含まれていれば、解析エンジン３０８と通信して解析エンジン３０８によるクエリの評価をリクエストすることなく、解をクライアントコンピューティングデバイス３４４に返すことができる。適切な解がキャッシュ３４２に含まれていなければ、クエリエンジン３０８は、解を求めて提供するよう解析エンジン３０８にリクエストでき、その解がクライアントコンピューティングデバイス３４４に供給されることができ、さらにキャッシュ３４２に追加することができる。キャッシュ３４２の使用は、リソース（例えばＣＰＵサイクル、ＲＡＭ使用量）集中的な演算であるかもしれない演算が重複して解析エンジン３０８により実行されるのを回避することにより、コンピュータシステム３０２の効率を改善できる。
【００６４】
クライアントコンピューティングデバイス３４４は、ラップトップ、デスクトップコンピュータ、モバイルコンピューティングデバイス（例えばスマートフォン、タブレットコンピューティングデバイス、ウェアラブルコンピューティングデバイス）、組み込み型コンピューティングデバイス（例えば診断デバイス）、および／または他の適切なコンピューティングデバイスなど、様々な適切なコンピューティングデバイスのうちのいずれかとすることができる。クライアントコンピューティングデバイス３４４は、データ収集サブシステム３０４に提供されるデータに類似したデータを、データゲートウェイ３１６を介して受信することができ、データゲートウェイ３１６は、ゲートウェイサーバ３１８を含むことができ、データサーバ３１８を介して、クライアントコンピューティングデバイス３４４のうちの適切なものおよび／またはデータ収集サブシステム３０４にデータがルーティングされ得る。データは、センサ３１４などのＩｏＴデバイス３１２など、様々なデータ源により生成可能である。データゲートウェイ３１６はさらに、記憶されてバッチ配送され得る過去データ３２２などのデータベース３２０に記憶された情報を、データ収集サブシステム３０４および／またはクライアントコンピューティングデバイス３４４に伝達可能にすることができる。データゲートウェイ３１６は、ネットワーク３４６と類似した、または同じ、または異なるものであり得るネットワーク３２４上でデータ収集サブシステム３０４と通信することができる。
【００６５】
図４は、データモデルを生成および使用してエンジンの問題点に対処する例示のシステム４００の図である。システム４００は、エンジンに適用されたシステム３００の例示のユースケースである。システム３００は、他の様々なコンテキストの任意のものにおいても適用可能である。
【００６６】
システム４００は、ＩｏＴデータをインターネット４０８（例示のネットワーク）上でコンピュータシステム４１０（コンピュータシステム３０２に類似）に提供する１つ以上のエンジンをそれぞれ含む車両４０２〜４０６を含む。車両４０２〜４０６内の各エンジンは、インターネット４０８（および／または他のネットワーク）を介してコンピュータデバイス４１０に時系列データをそれぞれ提供する、異なる複数データ源（例えばセンサ、監視デバイス）を含むことができる。
【００６７】
コンピュータシステム４１０は、コンピュータシステム３０２に類似しており、データを受信してそれを分散型プラットフォーム４１６上で実行されているＡＭＥ４１４（ＡＭＥ３０６に類似）、および予想システム４１８（エンジンに将来発生しそうな問題点を事前に診断し修復する、解析エンジン３０８の具体的なユースケース）、および診断システム４２０（エンジンに既に発生した問題点を事後に診断し修復する、解析エンジン３０８の具体的なユースケース）に配送する、通信ゲートウェイ４１２（データ収集サブシステム３０４に類似）を含む。ＡＭＥ４１４は、ＡＭＥ３０６と同じく、車両４０２〜４０６からのデータに基づきデータモデルを生成でき、モデルを解析システム４１８〜４２０に提供することができる。
【００６８】
予想システム４１８は、予防アクション判定４２４（推論解３３８に類似）を生成できる健全性状態予測エンジン４２２（推論エンジン３３６に類似）を含む。診断システム４２０は、修理アクション判定４２８（推論解３３８に類似）を生成できる故障原因推論エンジン４２６（推論エンジン３３６に類似）を含む。判定４２４および４２８は、決定されたアクション／修理をスケジュールするようプログラムされたタスクスケジューラ４３０と、決定されたアクション／修理についての情報をインターネット４３４（および／または別のネットワーク）上で適切な予防サービスプロバイダ４３６および／または適切な修理サービスプロバイダ４３８に関連するコンピューティングデバイスおよび／またはコンピュータシステムに伝送するメッセージディスパッチャ４３２とに提供できる。
【００６９】
図５は、時系列データのデータモデルを生成する例示の手法５００のフローチャートである。例示の手法５００は、部分的に１つ以上の中央デバイス／システム５０２によって、且つ部分的に複数のノード５０４によって実行されるものとして示される。中央デバイス／システム５０２およびノード５０４は、クラウドコンピューティングシステムなどの分散型コンピューティングプラットフォームの一部として実装可能である。例えば、手法５００、中央デバイス／システム５０２、およびノード５０４は、解析モデル構築エンジン３０６および／または４１４、より一般的にはシステム３００および／または４００、システム１００、および／または他の適切なコンピュータシステムにより実装可能である。
【００７０】
中央デバイス／システム５０２は、時系列データを受信でき（５０６）、複数の変数変換を時系列データに適用できる（５０８）。例えば図１、２Ａ、および３の変数変換ユニット１０４に関して上述したとおり、複数の変数変換が時系列データに適用されて、変数行列１０６が生成され得る。一部の実装では、時系列データに対する複数の変数変換（５０８）は、ノード５０４を使用するなど、別個の分散型システムを使用して、代わりにおよび／または追加的に実行され得る。
【００７１】
そのような変数行列を、まず、データセットを生成するために行列の第１の次元に沿って分割できる（５１０）。例えば図１、２Ｂ、および３に関して上述したとおり、水平並列化ユニット１０８は、変数行列１０６を複数のデータセットへと、ランダムな形で且ついくらかの冗長性をもって水平分割することができる。一部の実装では、変数行列の第１の分割は、図１、２Ｃ、および３で垂直並列化ユニット１１２に関して記載した、データセットを生成する垂直分割（水平分割の代わり）であってもよい。
【００７２】
次にデータセットは、データサブセットを生成するための第２の次元に沿った分配とすることができる（５１２）。例えば垂直並列化ユニット１１２が、図１、２Ｃ、および３に関して上述したように、水平並列化ユニット１０８からのデータセットを垂直分割してデータサブセットを生成することができる。第１の分割が垂直分割である実装では、第２の次元に沿った分割は、図１、２Ｂ、および３に関して上述した水平分割とすることができる。
【００７３】
第２の次元に沿った分割から生成されたデータサブセットが、評価のためにノード５０４に提供され得る（５１４）。各ノードは、データサブセットのうちの１つ以上を受信して（５１６）、データサブセットのツリー構造を構成して（５１８）、重要度スコア（５２０）、相関スコア（５２２）、および合成スコア（５２４）を求めることができる。例えば、図１、２Ｄ、および３に関して上述したように、ツリーベースの評価ユニット１１６が、上述のように、データサブセットからツリーを構成して、変数の重要度、相関、および合成スコアを求めることができる。スコアが生成されると、ノード５０４は、スコアを元の中央デバイス／システム５０２に提供することができる（５２６）。
【００７４】
中央デバイス／システム５０２は、スコアを受信して（５２８）、スコアに基づき、時系列データのモデルを生成するのに使用する変数の一部を選択することができる（５３０）。例えば、集約および評価ユニット１２０が、図１、２Ｅ、および３に関して上述したように、ノードからのスコアを集約して、最良スコアを有し最も正確に時系列データをモデリングする変数の一部を選択することができる。選択された変数を使用して、候補データモデルを生成でき（５３２）、生成されたデータモデルから１つ以上の最良のデータモデルを選択できる（５３４）。例えばモデル生成器１２４が、図１、２Ｆ、および３に関して上述したように、選択された変数および複数のモデリングアルゴリズムを使用してデータモデルを生成することができ、使用すべき１つ以上の最良のモデルを選択することができる。
【００７５】
図６は、例示的な汎用コンピュータシステム６００の概略図を示す。システム６００は、一部の実装によれば、手法５００に関連して記載された動作のために使用可能であり、システム１００、３００、および／または４００に含まれてもよい。
【００７６】
システム６００は、プロセッサ６１０、メモリ６２０、ストレージデバイス６３０、および入出力デバイス６４０を含む。コンポーネント６１０、６２０、６３０および６２０はそれぞれ、システムバス６５０を使用して相互接続されている。プロセッサ６１０は、システム６００内で実行される命令を処理できる。一実装では、プロセッサ６１０はシングルスレッドプロセッサである。別の実装では、プロセッサ６１０はマルチスレッドプロセッサである。プロセッサ６１０は、メモリ６２０内またはストレージデバイス６３０上に記憶された命令を処理して、入出力デバイス６４０上でユーザインターフェースのグラフィック情報を表示できる。
【００７７】
メモリ６２０は、情報をシステム６００内で記憶する。一実装では、メモリ６２０はコンピュータ可読媒体である。一実装では、メモリ６２０は揮発性メモリユニットである。別の実装では、メモリ６２０は不揮発性メモリユニットである。
【００７８】
ストレージデバイス６３０は、システム６００の大容量ストレージを提供できる。一実装では、ストレージデバイス６３０はコンピュータ可読媒体である。様々な異なる実装において、ストレージデバイス６３０は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイスとしてもよい。
【００７９】
入出力デバイス６４０は、システム６００に入出力動作を提供する。一実装では、入出力デバイス６４０はキーボードおよび／またはポインティングデバイスを含む。別の実装では、入出力デバイス６４０はグラフィカルユーザインターフェースを表示するディスプレイユニットを含む。
【００８０】
本主題の実施形態、本明細書に記載された機能動作およびプロセスは、デジタル電子回路において、有形に具現化されたコンピュータソフトウェアまたはファームウェアにおいて、本明細書で開示された構造およびその構造上の等価物を含むコンピュータハードウェアにおいて、またはそのうちの１つ以上の組み合わせにおいて実装できる。本明細書に記載された主題の実施形態は、１つ以上のコンピュータプログラムとして、すなわち、データ処理装置により実行されるよう、またはデータ処理装置の動作を制御するよう、有形・不揮発性のプログラムキャリアに符号化されたコンピュータプログラム命令の１つ以上のモジュールとして実装可能である。あるいは、または加えて、プログラム命令は、例えばデータ処理装置による実行のために適切な受信機装置に伝送されるよう情報を符号化するために生成される機械生成電気、光、または電磁信号など、人工的に生成された伝搬信号上に符号化可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうち１つ以上の組み合わせとすることができる。
【００８１】
「データ処理装置」という用語は、データを処理するあらゆる種類の装置、デバイス、および機械を包含し、例として、プログラマブルプロセッサ、コンピュータ、または複数プロセッサもしくは複数コンピュータを含む。装置は、例えばＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ：フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ：特定用途向け集積回路）などの専用論理回路を含むことができる。装置はさらに、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの１つ以上の組み合わせを構成するコードなどを含むことができる。
【００８２】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれることまたは記載されることもある）は、コンパイル型またはインタープリタ型言語、あるいは宣言型または手続き型言語を含む任意の形態のプログラミング言語で書かれることが可能であり、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、あるいはコンピューティング環境用に適した他のユニットとしてなど、任意の形態で展開可能である。コンピュータプログラムは、ファイルシステム内のファイルに対応してもよいが、する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部（例えばマークアップ言語ドキュメントに格納される１つ以上のスクリプト）、対象のプログラム専用の単一ファイル、または複数連携ファイル（例えば１つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル）に格納可能である。コンピュータプログラムは、１つのコンピュータ上で、または１つの場所に位置するかもしくは複数場所に分散し通信ネットワークにより相互接続された複数コンピュータ上で実行されるよう展開可能である。
【００８３】
本明細書に記載されたプロセスおよび論理フローは、入力データに作用し出力を生成することにより機能を実行する１つ以上のコンピュータプログラムを実行する１つ以上のプログラマブルコンピュータにより実行できる。プロセスおよび論理フローはさらに、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）、またはＡＳＩＣ（特定用途向け集積回路）などの専用論理回路により実行可能であり、装置はさらに、該専用論理回路として実装できる。
【００８４】
コンピュータプログラムを実行するのに適したコンピュータは、例として、汎用または専用マイクロプロセッサまたはその両方、あるいはその他任意の種類の中央処理ユニットに基づくことができる。一般に、中央処理ユニットは、読み取り専用メモリまたはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行する中央処理ユニット、ならびに命令およびデータを記憶する１つ以上のメモリデバイスである。一般に、コンピュータはさらに、例えば磁気、光磁気ディスク、もしくは光ディスクなど、データを記憶する１つ以上の大容量ストレージデバイスを含むか、または大容量ストレージデバイスからデータを受信しもしくは大容量ストレージデバイスへデータを転送するよう動作可能に結合されているか、またはその両方である。なお、コンピュータはそのようなデバイスを有する必要はない。さらにコンピュータは、ごく数例を挙げると、例えばモバイル電話、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、モバイルオーディオまたはビデオプレーヤ、ゲーム機、衛星航法システム（ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）受信機、またはポータブルストレージデバイス（例えばユニバーサルシリアルバス（ＵＳＢ：ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）フラッシュドライブ）など、別のデバイスに組み込まれることができる。
【００８５】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含み、例として、例えばＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内蔵ハードディスクまたは取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクなどが含まれる。プロセッサおよびメモリは、専用論理回路により補完されること、またはそれに組み込まれることが可能である。
【００８６】
ユーザとの相互作用を提供するために、本明細書に記載されている主題の実施形態は、ユーザに情報を表示するための、例えばＣＲＴ（ｃａｔｈｏｄｅ  ｒａｙ  ｔｕｂｅ：陰極線管）、またはＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ：液晶ディスプレイ）モニタなどのディスプレイデバイス、ならびに、ユーザが入力をコンピュータに提供できるキーボードおよび例えばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装できる。他の種類のデバイスを、同じくユーザとの相互作用を提供するために使用可能である。例えば、ユーザに提供されるフィードバックは、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、スピーチ、または触覚入力を含め、任意の形態で受信されることが可能である。さらに、コンピュータは、例えばユーザのクライアントデバイス上のウェブブラウザから受信されたリクエストに応答してウェブブラウザにウェブページを送信することにより、ユーザの使用するデバイスにドキュメントを送信しそれからドキュメントを受信することによりユーザと相互作用することができる。
【００８７】
本明細書に記載されている主題の実施形態は、例えばデータサーバとしてなど、バックエンドコンポーネントを含むコンピューティングシステム、または、例えばアプリケーションサーバなど、ミドルウェアコンポーネントを含むコンピューティングシステム、または、例えばユーザが本明細書に記載されている主題の実装と相互作用できるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータなど、フロントエンドコンポーネントを含むコンピューティングシステム、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネント１つ以上の任意の組み合わせにおいて実装されることができる。システムのコンポーネントは、例えば通信ネットワークなど、任意の形態または媒体のデジタルデータ通信により相互接続可能である。通信ネットワークの例は、ローカルエリアネットワーク（「ＬＡＮ」）、および例えばインターネットなどのワイドエリアネットワーク（「ＷＡＮ」）を含む。
【００８８】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔にあり、典型的には通信ネットワークを介して相互作用する。クライアントおよびサーバの関係は、個々のコンピュータ上で実行され互いにクライアント−サーバ関係を有するコンピュータプログラムにより生じる。
【００８９】
本明細書は特定の実装細部を多数含むが、これらは、特許請求の範囲に対する限定として解釈されるべきではなく、むしろ特定の実施形態に特有であり得る特徴の記載として解釈されるべきである。別々の実施形態との関連で本明細書に記載されている特定の特徴は、単一の実施形態において組み合わせて実装されることも可能である。逆に、単一の実施形態との関連で記載されている様々な特徴が、複数実施形態で別々に、または任意の適切な一部組み合わせで実装されることも可能である。さらに、各特徴は、特定の組み合わせで動作するよう上述されていることもあり、初期にそのように請求されていることもあるが、場合によっては、請求されている組み合わせの１つ以上の特徴が、その組み合わせから削除されることが可能であり、請求されている組み合わせは、一部組み合わせまたは一部組み合わせの変形物を対象とし得る。
【図１】
0006588566.tif 000006
【図２Ａ】
0006588566.tif 000007
【図２Ｂ】
0006588566.tif 000008
【図２Ｃ】
0006588566.tif 000009
【図２Ｄ】
0006588566.tif 000010
【図２Ｅ】
0006588566.tif 000011
【図２Ｆ】
0006588566.tif 000012
【図３】
0006588566.tif 000013
【図４】
0006588566.tif 000014
【図５】
0006588566.tif 000015
【図６】
0006588566.tif 000016