JP6376865B2 - 並列ツリー・ベースの予測のための、コンピュータにより実行される方法、ストレージ媒体、およびコンピュータ・システム - Google Patents

並列ツリー・ベースの予測のための、コンピュータにより実行される方法、ストレージ媒体、およびコンピュータ・システム Download PDF

Info

Publication number
JP6376865B2
JP6376865B2 JP2014139306A JP2014139306A JP6376865B2 JP 6376865 B2 JP6376865 B2 JP 6376865B2 JP 2014139306 A JP2014139306 A JP 2014139306A JP 2014139306 A JP2014139306 A JP 2014139306A JP 6376865 B2 JP6376865 B2 JP 6376865B2
Authority
JP
Japan
Prior art keywords
data
tree
input data
nodes
trees
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014139306A
Other languages
English (en)
Other versions
JP2015026372A (ja
Inventor
パヴェル、チホシュ
ミェチスワフ、クロポテク
クシシュトフ、スコフロンスキ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2015026372A publication Critical patent/JP2015026372A/ja
Application granted granted Critical
Publication of JP6376865B2 publication Critical patent/JP6376865B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示はコンピュータ実装による予測アプローチの分野に関する。さらに具体的には、本開示は、自動予測のためのディシジョン・ツリーまたは回帰ツリーの使用に関する。
ディシジョン・ツリーおよび回帰ツリーは広範に使われている予測モデルである。ディシジョン・ツリーは、入力データを、相異なる所定のクラスに分類するため使うことができるデータ構造体である。回帰ツリーは、入力データから、例えば整数などのデータ値の形で予測結果を計算するため使うことができるデータ構造体である。ある入力データからの結果データ値の計算および所定のクラスへの分類は、以降「予測」という。
正確さを向上させるため、予測の計算には、複数のディシジョン・ツリーまたは回帰ツリーの組み合わせを用いるのが一般的アプローチである。前記のツリーの集合体は、「ツリー・アンサンブル・モデル」または「アンサンブル・モデル」として知られる。アンサンブル・モデル中の各ツリーの予測は、例えば、ディシジョン・ツリー・アンサンブルに対しては、重み付け無しまた有りの投票関数、回帰ツリー・アンサンブルに対しては、重み付け無しまた有りの平均計算など、適切な組み合わせスキームを用いてそれら予測を組み合わせる必要がある。
予測のために単一のツリー・モデルを適用することは、通常、精巧なツリー・モデルに対してさえも高速な処理である。残念ながら、数千もの個別ツリーを含み得るアンサンブル・モデルではそうはいかない。N個のツリーのアンサンブルを用いて結果を予測するのに必要な時間は、単一ツリーのモデルを用いるときに必要な予測時間のN倍多い。かくして、複数のツリーを使って達成される正確さの利得は、高い計算コストによる不利益と結びついている。
また、アンサンブル・ツリー・ベースの予測の多大な計算コストは、かかるアルゴリズムを(解析)データベース中に実装するための障害となっており、データベースは、複数のデータベース・テーブルに亘る複雑な結合および他の計算的に厳しいタスクを実行するために十分な処理容量を備えなければならず、したがって、ツリー・ベースの予測に過剰なCPUパワーを消費する訳にはいかない。
IBM(IBM社の登録商標)のNetezza(R)Analyticsなど、一部のデータベース内解析環境は、既に、ある種のディシジョンおよび回帰ツリー・ベースの予測ロジックを含む。前記ロジックは、格納された手順およびユーザ定義の関数または集合体に基づいて実行される。前記ツリー・ベースの予測ロジックを適用することは、アンサンブル・モデルの相異なるツリー群のオペレーション対象の入力データのセットを重複して格納する必要があるので、相当なオーバーヘッドを要する。さらに、各ツリーに対する一時テーブルの生成、および格納された手順の呼び出しが計算のオーバーヘッドを増やす。また、後者の類のオーバーヘッドは、同じ入力データ・セットに対しツリー群が逐次的に処理される際にも発生し得る。結果として、入力データ・セットに対するテーブルおよびインデックス構造を、重複して作成、維持する必要がある。現在のデータベース内解析ソリューションでは、これが、処理コストを増加させ、ツリー・ベースの予測の速度を遅くしている。多くの場合、使われる入力データ・セットは小さなまたは中程度のサイズである。こうした場合、実際の予測の計算コストと比較して、入力データ・セットおよびそのコピーの処理コストがメモリおよびCPU消費の点で特にコスト高となる。
本発明の実施形態の目的は、自動予測のためにアンサンブル・モデルを使用するための改良されたアプローチを提供することである。前記の目的は、独立請求項の主題によって解決される。有益な実施形態が従属請求項に記載されている。明示的に別途述べられている場合を除き、本発明の諸実施形態は、相互に自由に組み合せることができる。
本明細書で用いる「データベース(database)」とは、データベース・マネジメント・システム(DBMS:database management system)によって管理される系統的なデータの集積である。具体的には、このDBMSは、列指向または関係DBMSとすることができる。DBMSの例には、MySQL(R)、PostgreSQL(R)、SQLite(R)、およびIBM(IBM社の登録商標)DB2(IBM社の登録商標)など周知のDBMSがある。DBMSは、ERPシステム、またはIBM(IBM社の登録商標)のNetezza(R)Analyticsのような解析プラットフォームに内蔵することが可能である。
本明細書で用いる「分岐基準(split criterion)」とは、入力データ記録の一つ以上の属性の属性値を評価するために用いられる、ディシジョン・ツリーまたは回帰ツリー中のあるノードに関連付けられた、任意の型のプログラム・ロジックであり得る。評価の結果に基づいて、前記入力データ記録は、前記ノードの一つ以上の子ノードの一つに割り当てられ(「引き渡され(handed down)」または「ディスパッチされ(dispatched)」)てよい。分岐基準は、例えば、特定の属性固有の閾値に基づいて作動する比較関数として実装することが可能である。入力記録の属性値が、前記閾値を超えている、それに等しい、あるいはそれを下回るかどうかによって、そのデータ記録を子ノードの一つに割り当てることができる。分岐基準は、例えば、等価条件、サブセット成員条件、離散型属性値に対する値条件(各属性値が各ノードに対応する)、不等条件、区間分割条件などとすればよい。例えば、分岐基準は、マッチング関数と組み合わせた、一つ以上の基準値または一つ以上の互いに素な基準値範囲とすることも可能である。このマッチング関数は、入力データ記録の属性値をその属性値固有の基準値または値範囲と比較することが可能である。各々の基準値または値範囲は、当該分岐基準を含む現在ノードの子ノードの一つを表わし、入力データ記録は、その入力データ記録の属性値に一致する基準値または基準値範囲を有する一つの子ノードに再割り当てされることになる。これに換えて、分岐基準は、例えば、指数もしくは対数関数、サポート・ベクター・マシン(SVM:support vector machine)、ニューラル・ネットワーク、統計関数、または任意の他の適切な関数など、一つ以上の属性値を評価し、どの子ノードにデータ記録を割り当てるべきかの判定を返してくれる、さらに複雑な関数とすることもできる。
本明細書で用いる「並列データベース・システム(parallel database system)」とは、そのオペレーション、具体的には、データをストレージからロードする、インデックスを構築する、およびクエリを評価するなどのオペレーションの少なくとも一部の並列化を用いるDBMSである。並列DBMSは、データおよび処理を自動的に複数のストレージ・デバイスとCPUとに分配するよう動作可能である。このデータおよび処理の分配は、並列DBMSによって、パフォーマンスの考慮に基づき自動的に管理することができる。並列DBMSは、例えば、マルチプロセッサ・アーキテクチャまたはハイブリッド・アーキテクチャに基づくものとすることが可能である。
本明細書で用いる「データ・スライス(data slice)」とは、例えばハード・ドライブなど専用のストレージ・ユニット上に所在するデータ・コンテナであり、前記ストレージ・ユニットは、1対1の関係で処理ユニットに関連付けられている。この関係は、処理ユニットが、それが関連付けられたストレージ・ユニットのデータ・コンテナ中のデータだけを処理し、他のストレージ・ユニットに所在する他のデータ・コンテナのデータは処理しないことを意味する。マルチプロセッサ環境では、各プロセッサは、割り当てられた、厳密に一つのストレージ・ユニットおよびそれぞれのデータ・スライスを有することができる。
本明細書で用いる「入力データ・セット(input data set)」は、複数のデータ記録を含む。各データ記録(「入力データ記録」ともいう)は、データベースのテーブル中に格納された記録であってよく、オブジェクト指向プログラミング言語のデータ・オブジェクト、またはデータの任意の他の論理および機能ユニットであってもよい。各データ記録は、割り当てられたそれぞれの属性値を有する一つ以上の属性を含む。あるデータ記録は、例えば、ある機械、ある患者、ある動物、製造または販売されるある製品を表し得る。属性は、例えば、機械状態のパラメータ、あるいは、温度または湿度などの環境パラメータ、前記患者に同定された遺伝子変異または健康状態パラメータ、製品の価格、色、特徴または部品などとすることができる。
「テーブル(table)とは、データベース・テーブル、または、リスト・オブジェクト、配列オブジェクト、ベクトル・オブジェクトなど、一般的な表形式データ構造体とすることが可能である。
一つの態様において、本発明は、入力データ記録のセットについてアンサンブル・モデル・ベースの予測を行うためのコンピュータで実行される方法に関する。アンサンブル・モデルは、ディシジョン・ツリーまたは回帰ツリーであり得る複数のツリーを含む。本方法は、複数の処理ユニットを制御し、複数のデータ・スライスを制御しているDBMSの形態で実装される。このDBMSは、データ・スライスのいずれか一つに格納されたデータをそれぞれ処理ユニットの一つによって処理するよう動作可能である。本方法は、
− アンサンブル・モデル中のツリーの各々について割り当てテーブルを生成するステップであって、各割り当てテーブルは、入力データ・セット中の全てのデータ記録をツリーのそれぞれの一つのルート・ノードに割り当てる、該生成するステップと、
− 割り当てテーブルの各々を、互いに素なサブテーブルに分割するステップと、
− サブテーブルの各々をそれぞれデータ・スライスの一つに格納するステップであって、これにより、各データ・スライスは、相異なる割り当てテーブルから得られた二つ以上のサブテーブルを含むことができる、該格納するステップと、
− 全てのツリーのルート・ノードを、全ツリーの現在レベルに対応する現在ノードのセットとして用いるステップと、
を含む。
次いで、それぞれ自分のデータ・スライスが一つ以上のサブテーブルを含む、全ての処理ユニットは、
a)前記処理ユニットのデータ・スライス中に格納されたサブテーブルを通して単一パスを実施し、これにより、前記データ・スライスの一つ以上のデータ記録(これらはサブテーブル中に含められるか、またはサブテーブル中に示されることができる)に割り当てられている一つ以上の現在ノードを識別するステップであって、識別された現在ノードは一つ以上のツリーに所属し得る、ステップと、
b)識別された現在ノードの各々に割り当てられたデータ記録について、前記現在ノードの分岐条件を評価するステップであって、評価が行われたデータ記録は、前記データ・スライスに格納されたサブテーブル中に含められるかまたは提示されることが可能である、ステップと、
c)前記評価に基づいて、入力データ記録を前記現在ノードの各々から割り当て解除し、前記入力データ記録を前記現在ノードの一つ以上の子ノードの一つに再割り当てするステップと、
d)全ての現在ノードの子ノードを、全ツリーの現在レベルに対応する現在ノードのセットとして用いるステップと、
e)全ての割り当てテーブルの全ての入力データ記録が、これらツリーの葉ノードに割り当てられるまで、ステップa)〜d)を繰り返すステップと、
を並行して実行する。
本方法は、全てのツリーの葉ノードへのデータ記録の割り当てから予測結果を計算するステップをさらに含む。
前記の特徴は利点となり得る。というのは、互いに素なサブテーブルの形での、相異なるデータ・スライス(およびそれぞれの処理ユニット)への、現在ノードとデータ記録との割り当ての分配によって、これらツリーの並列処理が可能になるからである。いくつかの現状技術のアプローチに適用されているように入力データ・セットのコピーを相異なる処理ユニットに分配する代わりに、データ記録の割り当ての小部分(サブテーブル)とツリー・ノードとを、相異なるデータ・スライスおよび処理ユニットに分配する。これにより、全ツリーの現在レベル(現在森レベル)内の全ノードを並行して処理することによって、複数のツリーの処理をさらに高速化することができる。かくして、入力データを通した単一パス(例えば逐次スキャンである読み取りオペレーション)によって、全ツリーの現在ノード・レベルの全ノードを処理することができる。この結果、全ツリーの結果を計算するために必要な、データ記録に実施される読み取りオペレーションの合計回数が減少する。
諸実施形態によれば、割り当てテーブルの各々は、データ記録識別子および関連するポインタだけを含む。各割り当てテーブルのデータ記録識別子は、入力データ・セットの全入力データ記録の識別子から成り、関連するポインタの各々は、ツリーのうちの一つのツリーの、一つ以上の現在ノードの一つをポイントする。これら識別子の一つに関連付けられたポインタの各々は、前記識別子のデータ記録を、そのポインタによって参照される現在ノードに割り当てる。分配されたサブテーブルが、全データ記録のコピーでなく識別子とポインタとだけを含むことによって、データのトラフィックを削減し、入力データ・セットの重複したストレージおよび管理を回避することができる。かくして、必要なストレージ・スペース、およびツリー・ベースの予測の並列化に付随するデータ・トラフィックのサイズが縮小し、予測が高速化される。
諸実施形態によれば、互いに素なサブテーブルの各々は、入力データ記録のセットのデータ記録識別子の互いに素なサブセットを含む。これにより、一回の反復オペレーションでデータ記録識別子が2回パスされないことを確実にすることができ、転送されたサブテーブルが重複した情報を含まないことを確実にすることができる。
諸実施形態よれば、DBMSは、サブテーブルをデータ・スライスに転送し、それらを前記データ・スライスの中に格納する。
諸実施形態よれば、サブテーブルの転送は、ネットワーク接続を介して実行される。かくして、ネットワーク・トラフィックを低減でき、入力データ・セットの複数の処理ユニットへの展開が大幅に高速化される。
諸実施形態によれば、本方法は、同一の割り当てテーブルから導出された全てのサブテーブルを、相異なるデータ・スライス中に格納するステップをさらに含む。ステップc)の実行は、同一の割り当てテーブルから導出されたサブテーブルの各々の中に包含されたデータ記録の割り当ておよび現在ノードを、並行して更新するステップを含む。
諸実施形態によれば、データ・スライス中の一つ以上のデータ記録を割り当てられている一つ以上の現在ノードを識別することは、それぞれのデータ・スライスの処理ユニットが、前記データ・スライス中に格納されたサブテーブルを並行して評価することによって実施される。これは利点となり得る。というのは、更新が分散して並行に実行され、これにより、一つ以上の中央で管理される処理ユニットが手空きとなり、DBMSが、それらをデータベース・クエリの処理、インデックス構造の生成など、他のデータ管理タスクに使用することができるからである。
諸実施形態によれば、予測結果を計算するステップは、ツリーの各々について、前記ツリーの葉ノードへの入力データ記録の割り当ての派生として、ツリー固有の予測を計算するステップと、これらツリー固有の予測から最終的予測結果を計算するステップとを含む。
諸実施形態によれば、アンサンブル・モデルのツリーは、ディシジョン・ツリーから成り、ツリーの葉ノードは、割り当てられたクラス・ラベルまたはクラス確率分布を有する。ツリー固有の予測を計算するステップは、これら葉ノードのクラス・ラベルまたはクラス確率分布を、前記葉ノードに割り当てられた全ての入力データ記録に割り当てるステップを含む。最終的予測結果を計算するステップは、入力データ・セットのデータ記録の各々について、
− 割り当てテーブルに従って、前記データ記録が割り当てられたツリーの各々の中の一つの葉ノードを識別するステップと、
− 識別された葉ノード群の全クラス・ラベルまたは全クラス確率分布から、予測されるクラスを計算するステップであって、該予測されるクラスは複数の所定クラスのうちの一つであり、他の所定のクラスのいずれのものよりも高い確率を有する前記データ記録を含むと予測されているものである、該計算するステップと、
− 該予測されるクラスのクラス・ラベルを前記入力データ記録に割り当てるステップと、
を含み、
入力データ・セットの全入力データ記録の、それらのそれぞれに計算された予測されるクラスのクラス・ラベルへの割り当てが、最終的予測結果として返される。
例えば、予測されるクラスの計算には、前記識別された葉ノードの最高数に割り当てられているクラス・ラベルを識別するステップと、識別されたクラス・ラベルを予測されるクラスのラベルとして、入力データ・セットの前記データ記録に割り当てるステップとを含めることができる。
他の実施形態によれば、アンサンブル・モデルのツリーは、回帰ツリーから成り、ツリーの葉ノードは割り当てられた数値ターゲット属性値を有する。ツリー固有の予測を計算するステップは、葉ノードの数値ターゲット属性値を、前記葉ノードに割り当てられた全ての入力データ記録に割り当てるステップを含む。最終的予測結果を計算するステップは、入力データ・セットのデータ記録の各々について、
− 割り当てテーブルに従って、前記データ記録が割り当てられたツリーの各々の中の一つの葉ノードを識別するステップと、
− 全ての識別された葉ノードの数値ターゲット属性値から派生属性値を計算するステップと、
− その派生属性値を入力データ・セットの前記データ記録に割り当てるステップと、
を含み、
入力データ・セットの全入力データ記録の、それらのそれぞれに計算された派生属性値への割り当てが、最終的予測結果として返される。例えば、データ記録に割り当てられる派生属性値は、前記データ記録について識別された全ての葉ノードに割り当てられた属性値から計算された平均値とすることができる。あるいは、この派生属性値は、各ツリーに相異なる重み付けを割り当て、その重み付けをそれぞれのツリーの葉ノードの属性値に乗ずる、重み付け平均化アプローチを用いて計算することも可能である。派生属性値を計算するための複数のさらなるアプローチを同様に適用することができる。
他の実施形態によれば、全ツリーの葉ノードからの最終的予測結果の計算は、サブテーブルを含んだデータ・スライスのどれにも割り当てられていない、処理ユニットの一つによって実行される。これは利点となり得る。というのは、これによって、ツリーおよびツリーに関連する結果を一元的に管理することが可能になるからである。かくして、これらのツリーを相異なる処理ユニット/データ・スライスの間で分散させる必要がなくなり、むしろ一元的に維持し評価することが可能となり、これにより、データベース環境中にツリー構造体を維持するためのオーバーヘッドが削減される。
他の実施形態によれば、本方法は、データベース管理システムのモジュールによって実行され、該モジュールは、並列のデータベース・エンジンまたはデータ・マイニング・モジュールである。これは利点となり得る。というのは、これによって、レガシ・システムのデータを新規のDBMSのバージョンに移行する必要なしに、本発明の実施形態によるアンサンブル・ツリー・ベースの予測の高度な並列化を前記レガシ並列DBMSに実装することを可能にできるからである。
他の実施形態によれば、識別された現在ノードの一つに割り当てられたデータ記録について前記現在ノードの分岐条件の評価ステップは、割り当てテーブルまたは前記割り当てテーブルのサブテーブルにアクセスすることにより、入力データ・セット中の、前記現在ノードに現在割り当てられている全データ記録を識別するステップと、識別されたデータ記録の各々の一つ以上の属性値について分岐条件を評価するステップとを含む。
例えば、ある現在ノードが2つの子ノード、および特定の属性に対する閾値に基づく分岐条件を有し得る。評価された入力データ記録の前記属性の値が前記閾値よりも小さい場合、前記データ記録は、前記分岐基準に従って、第一の子ノードに再割り当てすることができる。データ記録の属性値が前記閾値以上の場合、データ記録は、第二の子ノードに再割り当てすればよい。他の例によれば、分岐条件には、マッチング関数、および一つ以上の基準値または互いに素な基準値範囲を含めることができる。データ記録の属性値が、基準値の一つに一致する場合または基準範囲の一つ内にある場合、前記データ記録は、前記基準値また値範囲によって表わされる子ノードに再割り当てされる。好ましくは、各基準値または値範囲は、子ノードの一つに対応しそれを表わす。かくして、各データ記録が厳密に子ノードの一つに割り当てられること、および各データ記録が、現在ノードの子ノードの一つに割り当てられるという必要条件を満たすことが確実になる。さらに別の例によれば、分岐基準には、データ記録が割り当てられている現在ノードの分岐条件と現在ノードの分岐基準によって評価されるデータ記録の属性値(群)とによって、現在ノードの子ノードのどの一つにデータ記録を再割り当てするかを判定するため、例えば、指数または対数関数などの複雑な関数含めることができる。
さらなる態様において、本発明は、ストレージ媒体上に具現化されたコンピュータ可読プログラム・コードを含むストレージ媒体に関する。該プログラム・コードは、複数の処理ユニットによって実行されたとき、それら処理ユニットに前述の実施形態のいずれかによる方法を実行させる。
さらなる態様において、本発明は、複数の処理ユニット、複数のストレージ・ユニット、およびDBMSを含むコンピュータ・システムに関する。ストレージ・ユニットは、それぞれ、データ・スライスを含む。これらデータ・スライスのいずれか一つの中に格納されたデータは、処理ユニットの一つによってそれぞれ選択的に処理される。本DBMSは、処理ユニットを制御しており、入力データ記録のセットについて、アンサンブル・モデル・ベースの予測を行うための方法を実行するよう動作可能である。アンサンブル・モデルは、ディシジョン・ツリーまたは回帰ツリーであり得る複数のツリーを含む。DBMSは、前述の実施形態のいずれか一つによる方法を実行するよう動作可能である。
さらなる実施形態によれば、入力データ・セットは、DBMSによって管理されるデータベース中に一元的に格納される。データ・スライスの一つをそれぞれ含むストレージ・ユニットの少なくとも一部は、ネットワークを介してデータ管理システムに接続される。サブテーブルの少なくとも一部は、前記ネットワークを介してデータ・スライスに転送される。
諸実施形態によれば、アンサンブル・モデルの全てのツリーは、DBMSを実行しているコンピュータ・システムの主メモリ中に格納される。かくして、これらツリーは、データ・スライス中にも、または、並列ツリー・ベースの予測のための一部のグリッド・ベースのアプローチなどにより周知のような並列化処理ノードの任意の他の形においても、重複および冗長して格納されることはない。割り当てテーブルが、異なったデータ・スライスおよび処理ユニットの間で展開されるだけである。これにより、ツリーをデータ・スライスに転送する必要がなくなるので、アンサンブル・モデルのツリーのためのオーバーヘッドおよび処理コストが削減され、またネットワーク・トラフィックが減少する。サブテーブル中の割り当ては、全データ・スライスの全サブテーブル中の全データ記録が葉ノードに割り当てられるまで、データ・スライスに割り当てられた処理ユニットによって、反復オペレーションごとに更新され続ける。次いで、前記分散型の並列的な割り当ても更新が終了し、全ツリーの全葉ノードが入力データ記録を割り当てられた後、更新されたサブテーブルが、中央で管理される処理ユニットによって最終的結果を計算するために、DBMSによって読み取られる。これは、中央処理ユニット/DBMSとデータ・スライスとの間の情報交換が、最初にサブテーブルをデータ・スライスに転送する際と、葉ノードへのデータ記録の最終的割り当てを含むサブテーブルを、DBMS/中央処理ユニットに読み戻す/返送する際とに必要なだけなので、ネットワーク・トラフィックを低減させる。
当業者には当然のことながら、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具現化することができる。したがって、本発明の態様は、全体がハードウェアの実施形態、全体がソフトウェアの実施形態(ファームウエア、常駐ソフトウェア、マイクロコードなどを含む)、あるいは、ソフトウェア態様およびハードウェア態様を組み合わせた実施形態の形を取ることができ、これらは一般に本明細書では全て「回路」、「モジュール」、または「システム」と称することがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードがその上に具現化されている一つ以上のコンピュータ可読媒体(群)の態様で具体化されたコンピュータ・プログラム製品の形を取ることも可能である。一つ以上のコンピュータ可読媒体(群)の任意の組み合わせを用いることができる。コンピュータ可読媒体は、本明細書では「ストレージ・ユニット」ともいう、コンピュータ可読ストレージ媒体とすることができる。
コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子的、磁気的、光学的、電磁気的、赤外的、もしくは半導体の、システム、装置、もしくはデバイス、またはこれらの任意の適切な組み合わせであり得る。コンピュータ可読ストレージ媒体のさらに具体的な例を示す非包括的なリストには、一つ以上の配線を有する電気接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read−only memoryまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述の任意の適切な組み合わせが含まれよう。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、またはデバイスによってあるいはこれらに関連させて使用するためのプログラムを、包含または格納できる任意の有形媒体であり得る。コンピュータ可読媒体上に具現化されたプログラム・コードは、以下に限らないが、無線、有線、光ファイバ・ケーブル、RFなど、または前述の任意の適した組み合わせを含め、任意の適切な媒体を用いて送信することができる。
本発明の態様のオペレーションを実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および、“C”プログラミング言語または類似のプログラミング言語などの従来式手続き型プログラミング言語を含め、一つ以上のプログラミング言語の任意の組み合わせで記述することができる。このプログラム・コードは、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うこともできる。
本発明の態様が、図面中の本発明の実施形態を参照しながら以下に説明される。当然のことながら、サービス・コンテナとして、標準的ビジネス処理エンジン、または他のモジュールとして表現された図のブロックは、コンピュータ・プログラム命令によって実施することができる。これらのコンピュータ・プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、ブロック中に特定されている機能/動作を実装するための手段を生成するようにすることができる。また、これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスに対し特定の仕方で機能するよう命令することができるコンピュータ可読媒体に格納し、そのコンピュータ可読媒体に格納された命令が、図の前記ブロック中に特定されている機能/動作を実装する命令を包含する製品を作り出せるようにすることができる。さらに、コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上、他のプログラム可能装置上、または他のデバイス上で一連のオペレーション・ステップを実行させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上または他のプログラム可能装置上で実行される命令が、前記ブロック中に特定されている機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。
ツリーを用いるアンサンブル・モデルを示す。 アンサンブル・ベースの予測のための現状技術アプローチを示す。 本発明のある実施形態による、ノードへのデータ記録割り当ての生成および分配を示す。 本発明のある実施形態による、コンピュータ・システムのブロック図である。 並列アンサンブル・モデル・ベースの予測の方法を示す。
本発明の前述のまたは他のアイテム、特徴、および利点は、図面と併せ、以下のさらに具体的な説明を読むことによってより良く理解されよう。
図1は、本発明の諸実施形態で用いられるアンサンブル・モデル100を示す。スペースの関係で、示されたモデルは3つのツリーT1〜T3を含む。実際は、一つのアンサンブル・モデルは数千のツリーを含み得る。各ツリーはそれぞれ、ツリーを使って予測を計算する際に、ツリーの最初の現在ノードの役割をするルート・ノードNOT1〜NOT3を有する。3つのツリーは各々、同一の入力データ・セットIDSに対し、ツリー固有の結果を提供する。最終的に、このアンサンブル・モデルの全てのツリーT1〜T3によって提供された結果が組み合わされて最終的な合成結果となる。例えば、これらのツリーがディシジョン・ツリーであり、アンサンブル・モデルのツリーの過半数が、入力データ・セット中のある特定のデータ記録にクラス・ラベル「A」を割り当てた場合(すなわち、ツリーの過半数が、前記データ記録に対しクラス「A」を「投票」し、前記モデル中のツリーの少数が、前記データ記録に対しクラス「B」を「投票」した場合)、該アンサンブル・モデルは、前記入力データ記録を、クラス「A」に属するとして最終的に分類することになる。このような仕方で、入力データ・セット中の全データ記録を分類することができ、入力データ記録の分類されたセット、あるいは少なくとも、入力データ記録への前記クラス・ラベルの割り当てを、アンサンブル・モデルの合成結果として返すことができる。本発明の実施形態によって、最終合成結果の効率的な計算をどのように達成するかを、図3〜5において説明する。
図2は、例えば、単一ツリー・ベース予測のグリッド・ベース並列実行などの現状技術アプローチによる、複数の処理ユニットへの入力データ・セットの分配を示す。入力データ・セットIDSはモデル中に存在するツリーの数の分だけコピーされ、データ・セットのコピーとそれぞれのツリーとを相異なるCPU群に分配することができる。かくして、CPUの各々は、一つのツリーを維持しなければならず、入力データ・セットのコピーを受信し格納しなければならない。
図3は、本発明の実施形態による、入力データの事前処理、分配、および並列処理を示す。このアンサンブル・ツリー・モデルのツリーT1〜T3の各々に対し、割り当てテーブルAT1〜AT3が生成される。各割り当てテーブルは、少なくとも、入力データ・セットIDSの各データ記録を、ツリーの一つの現在処理されているノード(現在ノード)に割り当てるために必要な全情報を含む。割り当てテーブルAT1は、入力データ・セットの全データ記録を、ツリーT1の一つ以上の現在ノードに割り当てる。割り当てテーブルAT2は、入力データ・セットの全データ記録を、ツリーT2の一つ以上の現在ノードに割り当て、他のテーブルも同様である。いくつかの実施形態によれば、割り当てテーブルには、入力データ・セットのデータ記録のコピーも含めることが可能である。しかしながら、さらに望ましくは、割り当てテーブルの各々は、入力データ・セットの全データ記録の識別子350、352、354の固有リストと、前記識別子を各自のツリーの現在ノードに割り当てるための、例えばポインタまたはリンクなどの何らかの情報と、だけを含む。この場合、割り当てテーブルのサイズは、入力データ・セットよりも大幅に小さい。かくして、割り当てテーブルが入力データ・セットのデータ記録のコピーを含む場合は、その割り当てテーブルは、入力データ・セットのコピーと見なすことができる。割り当てテーブルが、いくつかの現在ノードに割り当てられた記録識別子だけを含む場合、前記割り当てテーブルは、縮小されたサイズの「仮想入力データ・セット」と見なすことが可能である。現在ノードへの割り当ては、ノード識別子356、358、360に基づいて行うことができる。各割り当てテーブルにおいて、データ記録の各々は、それぞれのツリーの厳密に一つの現在ノードに割り当てられる(1:1割り当て)。
次いで、割り当てテーブルの各々は、複数の互いに素なサブテーブルに分割される。例えば、割り当てテーブルAT1は、サブテーブルAXT1.1〜AXT1.10に分割される。割り当てテーブルAT2は、サブテーブルAXT2.1〜AXT2.10に分割される。割り当てテーブルAT3は、サブテーブルAXT3.1〜AXT3.10に分割される。必須ではないが好ましくは、これらサブテーブルのサイズ(各サブテーブル中のデータ記録またはデータ記録識別子の数に対応する)は、同じかまたはほぼ同じサイズである。相異なるサブテーブルのデータ記録またはデータ記録識別子は、データ記録のいかなる重複した転送または処理をも回避するため、互いに素になっている。割り当てテーブルの生成および互いに素なサブテーブルへの分割は、実際のアンサンブル・モデル・ベースの予測に備えて、並列型DBMSのモジュールによって自動的に実行することが可能である。
同じ割り当てテーブルから導出されたサブテーブルは、例えば図4に示されるように、データベース管理システムによって相異なるデータ・スライスDSL1〜DSL10の間で展開される。前記データ・スライスの各々の中に格納されたデータは、DBMSによって前記データ・スライスに具体的に割り当てられた処理ユニットによってのみ処理することができるが、さらに随意的に、一つ以上の中央で管理される処理ユニットCPU_Cによって処理できるようにしてもよい。処理ユニットCPU1〜CPU10はDBMSの制御の下にあり、並行して作業するよう動作可能である。例えば、CPU1がサブテーブルAXT1.1、AXT2.1、およびAXT3.1の割り当てを処理および更新する一方、並行してCPU2がサブテーブルAXT1.2、AXT2.2、およびAXT3.2の割り当てを処理および更新することが可能である。各データ・スライスには、一つ以上のサブテーブルを含めることができる。但し、データ・スライスが複数のサブテーブルを含む場合には、前記サブテーブル群が相異なる割り当てテーブルから導出されたものであり、かくして、ツリーT1〜T3の相異なるツリーに対する割り当てを含んでいることが必要である。各処理ユニットCPU1〜CPU10、並びにそのそれぞれのストレージ・ユニットおよびデータ・スライスDSL1〜DSL10は、ネットワークを介してDBMSおよび一つ以上の中央処理ユニットCPU_Cに接続することが可能で、サブテーブルのそれぞれのデータ・スライスへの分配は、DBMSのモジュールによって前記ネットワークを介して実施することができる。
図4は、複数の処理ユニットCPU_Cと、CPU1〜CPU10と、データベース管理システム310と、主メモリ306と、を含むコンピュータ・システム300を示す。DBMS310のモジュール308は、ツリーT1〜T3を使った、処理ユニットCPU1〜CPU10による入力データ・セットIDSの並列処理を調整するよう動作可能である。処理ユニットCPU1〜CPU10は、前述のように、それらのそれぞれに割り当てられたデータ・スライスDSL1〜DSL10中に包含されているサブテーブルを選択的に処理、更新する。モジュール308は、CPU_Cとして示された一つ以上のさらなるCPUを用いることができ、これらのCPUは特定のデータ・スライスの専用ではない。むしろ、前記処理ユニット(群)CPU_Cは、ツリーT1〜T3を中央で管理するため、割り当てテーブルおよびサブテーブルを生成するため、図3に示したようにサブテーブルを分配するため、並びに個別のツリーT1〜T3より得られた予測結果から最終的アンサンブル・モデル結果を計算するために用いることができる。
ツリーT1〜T3は森を構成する。ツリーT1〜T3およびツリー固有の結果は、モジュール308によって、主メモリ306中に格納され中央で管理される。ツリー固有の予測結果もしくは最終的合成予測結果またはそれらの両方は、モジュール308によって、不揮発性ストレージ媒体に格納することができる。さらに、モジュール308は、処理ユニットCPU1〜CPU10によるツリー固有の予測結果の並列計算を一元的に調整することができ、これにより、前記並列計算が反復オペレーション式に実施される。各反復オペレーションは、現在の森レベル、すなわち、アンサンブル・モデルの全てのツリーT1〜T3によって共有される現在処理中の階層レベルの処理に対応する。これにより、全ての前記ツリーの現在ノードの全体が、前記現在の森レベルを構成する。各反復オペレーションにおいて、どの割り当てテーブルの全てのデータ記録または記録識別子も、厳密に一回パスされ、前記データ記録を現在ノードの子ノードの一つに再割り当てするために、それらのそれぞれに割り当てられた前記現在ノードの分岐基準に照らして評価される。前記子ノードの全体が、次の反復オペレーションにおける現在ノードの全体を構成し、かくして、次回反復オペレーションの現在森レベルを構成することになる。例えば、図1を参照すると、初回反復オペレーションにおける現在ノードのセットは、全てのツリーのルート・ノード(NOT1、NOT2、NOT3)から成る。各ルート・ノードは、入力データ記録の全体を割り当てられており、それにより、割り当て情報は、ツリー固有の割り当てテーブルのサブテーブル中に包含される。各々のルート・ノードの分岐基準が評価され、データ記録はそれらのそれぞれのルート・ノードから割り当て解除され、前記ルート・ノードの子ノードの一つに再割り当てされる。この再割り当ては、データ記録の一つ以上の属性値に基づいて行われ、これらデータ記録は、サブテーブルに格納しておくこともでき、あるいは、中央で管理されている入力データ・セットIDSから動的に読み出すことも可能である。第二回の反復オペレーションにおいて、現在の森レベルを構成する現在ノードのセットは、全ツリーのルート・ノードの子ノード(N1T1、N2T1、N1T2、N2T2、N1T3、N2T3、N3T3)から成る。第二回反復オペレーションでは、前記現在ノードのどの一つに割り当てられた全データ記録も、それらがそれぞれ割り当てられた現在ノードの分岐基準に照らして評価され、前記現在ノードの一つ以上の子ノードの一つに再割り当てされる。第三回の反復オペレーションにおいて、現在森レベルを構成する現在ノードのセットは、第二回反復オペレーションで処理された現在ノードの子ノード(N3T1、N3T2、N4T2、N4T3、N5T3、N6T3、N7T3)から成り、以下同様な反復オペレーションが続く。かくして、並列多重ツリー処理アルゴリズムは、各々のツリーに対し入力データ・セットの全てのデータ記録が前記ツリーの葉ノードの一つに割り当てられるまで、反復オペレーションごとに、データ記録を一つの現在森レベルから次のレベルに再割り当て(ディスパッチ)する。入力データ・セットの全データ記録の、ツリーの葉ノードへのツリー固有の割り当ては、ツリー固有の結果312、314、316として、コンピュータ・システムの主メモリに格納することができる。これらツリー固有の結果は、アンサンブル・ツリー・モデル100の最終的な合成予測結果を計算するために用いることができる。サブテーブルに格納された割り当て情報の更新は、並列処理ユニットCPU1〜CPU10によって実行でき、一方、ツリー固有の結果の格納およびさらなる処理は、一つ以上の中央処理ユニットCPU_Cによって実行することができる。これは、図3中に、ツリーT1およびT2に対して、読み取り/計算の矢印によって示されており、ツリーT3については、スペースの関係で省略されている。どのツリーのどの現在ノードに、特定のサブテーブルのデータ記録が割り当てられているかの情報を含むサブテーブルAXT1.1、・・・、AXT3.10が、個別のデータ・スライス中に格納され、各反復オペレーションにおいて、前記データ・スライスの専用処理ユニットCPU1〜CPU10によって継続的に更新される。
以下の一つの実装の変形例の疑似コードは、並列的森レベル方式による予測結果の計算を明らかにするためのものである。
定義:
x:入力データ記録
n:ノード
:葉ノード
Q:現在の森レベルの(処理前の)現在ノードのセット(アンサンブル・モデル中のツリーの各々からの一つ以上の現在ノードを含む)
Q’:次の反復オペレーションで処理されることになる森レベルの(処理前の)現在ノードのセット(アンサンブル・モデル中のツリーの各々からの一つ以上の現在ノードを含む)
cur,t:ツリーtの現在ノード
分散データを用いる森レベルに対する反復オペレーションによる複数ツリー式予測
1:ツリーの各々t=1;2;:::;mに対し、関連テーブルを生成し、各関連テーブルは、入力データ・セットIDSの全データ記録を前記ツリーtのルート・ノードに割り当てる;
2:関連テーブルの各々を互いに素なサブテーブルに分割する;
3:割り当てテーブルのいずれか一つから導出された全サブテーブルを相異なるデータ・スライスDSLd;d=1;2;:::;pの間で分配するが、データ・スライスはそれぞれ別個の処理ユニットによって処理可能である;
4:ツリーt=1;2;:::mのいずれか一つの現在処理されているノードのセットQを生成し、このQは全ツリーのルート・ノードから成る;
//ツリー群に対し並行して反復オペレーション処理し、これにより、全入力データ記録がこれらツリーの葉ノードに割り当てられるまで、森レベル方式で入力データ記録を再割り当てする:
5:実施条件(While) nが葉でなく、一つ以上の入力データ記録xがnに割り当てられているような一部のツリー−ノードのペア<t;n>が残っている
6: 全データ・スライスDSLd;d=1;2;:::;pに対し並行して:
//DSLd中の全サブテーブルに対し連続的にスキャンする:
7: ツリーtのいずれか1つへの入力データ記録x∈DSLdの全ての割り当てaxtに対し
8: xに割り当てられたツリーtの現在ノードncur,tを識別し、ここでncur,t∈Q;
9: xの一つ以上の属性値についてncur,tの分岐基準を評価し;
10: 前記評価に基づいて、ncur,tの一つ以上の子ノードからターゲット子ノードnctar,tを識別し;
11: ツリーtの現在ノードncur,tからxを割り当て解除し、xをツリーtのターゲット子ノードnctar,tに再割り当てし;
12: ツリーtのターゲット子ノードnctar,tをQ’に加える;
13: この段終了
14: この段終了
15: Q:=Q’;
16:実施条件終了
17:全データ・スライスDSLd;d=1;2;:::;pについて並行して:
18: ツリーtのいずれか1つへの入力データ記録x∈DSLdの全ての割り当てaxtに対し//DSLd中の全サブテーブルに対し連続的にスキャンする
19: xに割り当てられている全てのツリー−葉ノードのペア<t;nl>を識別し、個別のツリーによってxについて予測されたクラス・ラベルまたは数値ターゲット属性値を累積する:
20: この段終了
21:この段終了
22:入力データ・セットIDSの入力データ記録の各々に対し、全てのツリーによって予測されたクラス・ラベルまたは数値ターゲット属性値の累積結果から、最終的予測結果を計算する
図5は、入力データ記録のセットIDSについてアンサンブル・モデル・ベースの予測を実施するための、コンピュータにより実行される方法を示す。以下の説明において、図1、図3、および図4を再度参照することになる。というのは、この方法は、図4に示されるようなコンピュータ・システムの態様で実装することができ、図3に示されるようなサブテーブルへの分配を含み得るからである。本方法は、例えば、図3のデータベース管理システム310のモジュール308によって実行することが可能である。ステップ502で、アンサンブル・モデル100中のツリーT1〜T3の各々について、割り当てテーブルAT1〜AT3が生成される。各割り当てテーブルは、入力データ・セットの全データ記録を、各ツリーのルート・ノードNOT1、NOT2、NOT3に割り当てる。次のステップ504で、割り当てテーブルの各々は、互いに素なサブテーブルAXT1.1〜AXT1.10;AXT2.1〜AXT2.10;AXT3.1−AXT3.10に分割される。図3に示されるように、これらサブテーブルは、相異なるデータ・スライスに転送することができる。ステップ506で、サブテーブルの各々は、それぞれデータ・スライスの一つに格納される。ステップ510で、全ツリーのルート・ノードが現在ノードのセットとして用いられる。現在ノードのセットは、全ツリーの現在レベル(現在森レベル)に対応しこれを構成する。次いで、処理ユニット群は、並行して、
a)ステップ514で、前記処理ユニットのデータ・スライス中に格納されたサブテーブルを通して単一回のパスを行い、これにより、前記データ・スライスの一つ以上のデータ記録に割り当てられている一つ以上の現在ノードを識別し、
b)ステップ516で、識別された現在ノード各々に割り当てられたデータ記録について、前記現在ノードの分岐条件を評価し、
c)ステップ580で、前記評価に基づいて、前記現在ノードの各々から入力データ記録を割り当て解除し、前記入力データ記録を前記現在ノードの一つ以上の子ノードの一つに再割り当てすることを行い、
d)ステップ520で、全現在ノードの子ノードを、全ツリーの現在レベルに対応する現在ノードのセットとして用い、
e)全ての割り当てテーブルの全入力データ記録がツリーの葉ノードに割り当てられるまで、ステップa)〜d)を繰り返す
ことを実行する。最終の計算ステップ524で、全ツリーの葉ノードへのデータ記録の割り当てから、最終的な合成予測結果が計算される。前記割り当ては、例えば、個別のデータ記録の分類を可能にするクラス・ラベル情報を含むものであってもよいし、あるいは、一つ以上の最終的予測データ値の計算を可能にする数値ターゲット属性値であってもよい。
350、352、354 入力データ・セットIDSのデータ記録の識別子
356 ツリーT3の現在ノードの識別子
358 ツリーT2の現在ノードの識別子
360 ツリーT1の現在ノードの識別子
AT1〜AT3 割り当てテーブル
AXT1.1〜AXT3.10 サブテーブル
CPU1〜CPU10 処理ユニット
DSL1〜DSL10 データ・スライス

Claims (15)

  1. 入力データ記録のセット(IDS)についてアンサンブル・モデル(100)ベースの予測を行うための、コンピュータにより実行される方法であって、前記アンサンブル・モデルは複数のツリー(T1〜T3)を含み、前記ツリーはディシジョン・ツリーまたは回帰ツリーであり、前記方法は、複数の処理ユニット(CPU1〜CPU10)および複数のデータ・スライスを(DSL1〜DSL10)を制御するデータベース管理システムの態様で実装されており、前記データベース管理システムは、前記データ・スライスのいずれか一つに格納されているデータをそれぞれ前記処理ユニットの一つによって処理するよう動作可能であり、前記方法は、
    − 前記アンサンブル・モデル中の前記ツリー(T1〜T3)の各々について割り当てテーブル(AT1〜AT3)を生成するステップ(502)であって、各割り当てテーブルは、前記入力データ・セット中の全てのデータ記録を前記ツリーのルート・ノード(NOT1、NOT2、NOT3)に割り当てる、前記生成するステップと、
    − 前記割り当てテーブルの各々を、互いに素なサブテーブル(AXT1.1〜AXT1.10;AXT2.1〜AXT2.10;AXT3.1〜AXT3.10)に分割するステップ(504)と、
    − 前記サブテーブルの各々をそれぞれ前記データ・スライスの一つに格納するステップ(506)と、
    − 全てのツリーの前記ルート・ノード(NOT1、NOT2、NOT3)を、前記全ツリーの現在レベルに対応する現在ノードのセットとして用いるステップ(510)と、
    − それぞれ自分のデータ・スライスが一つ以上の前記サブテーブルを含む、全ての前記処理ユニットによって、
    a)前記処理ユニットの前記データ・スライス中に格納された前記サブテーブルを通して単一パスを実施し(514)、これにより、前記データ・スライスの一つ以上の前記データ記録に割り当てられている一つ以上の前記現在ノードを識別するステップ、
    b)前記識別された現在ノード各々に割り当てられた前記データ記録に対し、前記現在ノードの分岐条件を評価するステップ(516)、
    c)前記評価に基づいて、入力データ記録を前記現在ノードの各々から割り当て解除し(518)、前記入力データ記録を前記現在ノードの一つ以上の子ノードの一つに再割り当てするステップ、
    d)全現在ノードの前記子ノードを、全ての前記ツリーの現在レベルに対応する現在ノードのセットとして用いるステップ(520)、および
    e)全ての前記割り当てテーブルの全ての入力データ記録が、前記ツリーの葉ノードに割り当てられるまで、ステップa)〜d)を繰り返すステップ、
    を並行して実行するステップ(512)と、
    − 全ての前記ツリーの前記葉ノードへのデータ記録の前記割り当てから予測結果を計算するステップ(524)と、
    を含む、
    コンピュータにより実行される方法。
  2. 前記割り当てテーブルの各々が、データ記録識別子と関連するポインタとだけを含み、各割り当てテーブルの前記データ記録識別子群が、前記入力データ・セット(IDS)の全入力データ記録の前記識別子から成り、前記関連するポインタの各々が、前記ツリーのうちの一つのツリーの、前記一つ以上の現在ノードの一つをポイントし、前記識別子の一つに関連付けられた前記ポインタの各々が、前記識別子の前記データ記録を前記ポインタによって参照される前記現在ノードに割り当てる、請求項1に記載のコンピュータにより実行される方法。
  3. 前記互いに素なサブテーブルの各々が、入力データ記録の前記セット(IDS)の前記データ記録識別子の互いに素なサブセットを含む、請求項1または2に記載のコンピュータにより実行される方法。
  4. 前記データベース管理システムによって、前記サブテーブルを前記データ・スライスに転送し、それらを前記データ・スライスに格納するステップをさらに含む、請求項1〜3のいずれか一項に記載のコンピュータにより実行される方法。
  5. 前記転送するステップがネットワーク接続を介して実行される、請求項4に記載のコンピュータにより実行される方法。
  6. 同一の前記割り当てテーブルから導出された全てのサブテーブル(AXT1.1〜AXT1.10;AXT2.1〜AXT2.10;AXT3.1〜AXT3.10)を、前記データ・スライスの相異なるものに格納するステップをさらに含み、前記ステップc)の実行は、前記同一の割り当てテーブルから導出された前記サブテーブルの各々の中に包含された、データ記録の前記割り当ておよび現在ノードを並行して更新するステップを含む、請求項1〜5のいずれか一項に記載のコンピュータにより実行される方法。
  7. 前記データ・スライス中の前記データ記録の一つ以上を割り当てられている前記一つ以上の前記現在ノードを識別することは、前記それぞれのデータ・スライスの前記処理ユニットにより、前記データ・スライス中に格納された前記サブテーブル(AXT1.1〜AXT3.10)を並行して評価することによって実施される、請求項1〜6のいずれか一項に記載のコンピュータにより実行される方法。
  8. 前記予測結果を計算するステップが、
    − 前記ツリーの各々について、前記ツリーの前記葉ノードへの入力データ記録の前記割り当ての派生として、ツリー固有の予測を計算するステップと、
    − 前記ツリー固有の予測から最終的予測結果を計算するステップと、
    を含む、請求項1〜7のいずれか一項に記載のコンピュータにより実行される方法。
  9. 前記ツリーの前記葉ノードが、割り当てられたクラス・ラベルまたはクラス確率分布を有し、前記ツリーはディシジョン・ツリーであり、前記ツリー固有の予測を計算するステップは、
    − 前記葉ノードの前記クラス・ラベルまたは前記クラス確率分布を、前記葉ノード群に割り当てられた全ての入力データ記録に割り当てるステップ、
    を含み、
    前記最終的予測結果を計算するステップは、前記入力データ・セット(IDS)の前記データ記録の各々について、
    − 前記割り当てテーブルに従って、前記データ記録が割り当てられた前記ツリーの各々の中の一つの葉ノードを識別するステップと、
    − 前記識別された葉ノード群の全クラス・ラベルまたは全クラス確率分布から、予測されるクラスを計算するステップであって、前記予測されるクラスは複数の所定クラスのうちの一つであり、他の所定のクラスのいずれよりも高い確率を有する前記データ記録を含むように計算されるものである、前記計算するステップと、
    − 前記予測されるクラスのクラス・ラベルを前記入力データ記録に割り当てるステップと、
    を含み、
    前記入力データ・セットの全入力データ記録の、それらのそれぞれに計算されたクラス・ラベルへの前記割り当てが、前記最終的予測結果として返される、
    請求項8に記載のコンピュータにより実行される方法。
  10. 前記ツリーの前記葉ノードが、割り当てられた数値ターゲット属性値を有し、前記ツリーは回帰ツリーであり、前記ツリー固有の予測を計算するステップは、
    − 前記葉ノードの前記数値ターゲット属性値を、前記葉ノードに割り当てられた全ての入力データ記録に割り当てるステップ、
    を含み、
    前記最終的予測結果を計算するステップは、前記入力データ・セット(IDS)の前記データ記録の各々について、
    − 前記割り当てテーブルに従って、前記データ記録が割り当てられたツリーの各々の中の一つの葉ノードを識別するステップと、
    − 全ての識別された葉ノードの前記数値ターゲット属性値から派生属性値を計算するステップと、
    − 前記派生属性値を前記入力データ・セットの前記データ記録に割り当てるステップと、
    を含み、
    前記入力データ・セットの全入力データ記録の、それらのそれぞれに計算された派生属性値への割り当てが、前記最終的予測結果として返される、
    請求項8に記載のコンピュータにより実行される方法。
  11. 前記方法が、前記データベース管理システムのモジュールによって実行され、前記モジュールは、並列のデータベース・エンジンまたはデータ・マイニング・モジュールである、請求項1〜10のいずれか一項に記載のコンピュータにより実行される方法。
  12. 前記識別された現在ノードの一つに割り当てられた前記データ記録について前記現在ノードの前記分岐条件を評価するステップが、
    − 前記割り当てテーブルまたは前記割り当てテーブルのサブテーブルにアクセスすることにより、前記入力データ・セット(IDS)中の、前記現在ノードに現在割り当てられている全データ記録を識別するステップと、
    − 前記識別されたデータ記録の各々の一つ以上の属性値について前記分岐条件を評価するステップと、
    を含む、請求項1〜11のいずれか一項に記載のコンピュータにより実行される方法。
  13. ストレージ媒体上に具現化されたコンピュータ可読プログラム・コードを含むストレージ媒体であって、前記プログラム・コードは、複数の処理ユニット(CPU1〜CPU10)によって実行されると、前記処理ユニットに請求項1〜12のいずれか一項に記載の方法を実行させる、ストレージ媒体。
  14. − 複数の処理ユニット(CPU1〜CPU10)と、
    − それぞれがデータ・スライス(DSL1〜DSL10)を含む複数のストレージ・ユニットであって、前記データ・スライスのいずれか一つに格納されたデータは、前記処理ユニットの一つによってそれぞれ選択的に処理される、前記ストレージ・ユニットと、
    − 前記処理ユニットを制御しているデータベース管理システム(310)と、
    を含むコンピュータ・システム(300)であって、
    前記データベース管理システムは、入力データ記録のセット(IDS)についてアンサンブル・モデル(100)ベースの予測を行うための方法を実行するよう動作可能であり、前記アンサンブル・モデルは複数のツリー(T1〜T3)を含み、前記ツリーはディシジョン・ツリーまたは回帰ツリーであり、前記方法は、
    − 前記アンサンブル・モデル中の前記ツリー(T1〜T3)の各々について割り当てテーブル(AT1〜AT3)を生成するステップ(502)であって、各割り当てテーブルは、前記入力データ・セット中の全てのデータ記録を前記ツリーのルート・ノード(NOT1、NOT2、NOT3)に割り当てる、前記生成するステップ(502)と、
    − 前記割り当てテーブルの各々を、互いに素なサブテーブル(AXT1.1〜AXT1.10;AXT2.1〜AXT2.10;AXT3.1〜AXT3.10)に分割するステップ(504)と、
    − 前記サブテーブルの各々をそれぞれ前記データ・スライスの一つに格納するステップ(506)と、
    − 全てのツリーの前記ルート・ノード(NOT1、NOT2、NOT3)を、前記全ツリーの現在レベルに対応する現在ノードのセットとして用いるステップ(510)と、
    − それぞれ自分のデータ・スライスが一つ以上の前記サブテーブルを含む、全ての前記処理ユニットによって、
    a)前記処理ユニットの前記データ・スライス中に格納された前記サブテーブルを通して単一パスを実施し(514)、これにより、前記データ・スライスの一つ以上の前記データ記録に割り当てられている一つ以上の前記現在ノードを識別するステップ、
    b)前記識別された現在ノード各々に割り当てられた前記データ記録について、前記現在ノードの分岐条件を評価するステップ(516)、
    c)前記評価に基づいて、入力データ記録を前記現在ノードの各々から割り当て解除し(518)、前記入力データ記録を前記現在ノードの一つ以上の子ノードの一つに再割り当てするステップ、
    d)全現在ノードの前記子ノードを、前記全ツリーの現在レベルに対応する現在ノードのセットとして用いるステップ(520)、および
    e)全ての前記割り当てテーブルの全ての入力データ記録が、前記ツリーの葉ノードに割り当てられるまで、ステップa)〜d)を繰り返すステップ、
    を並行して実行するステップ(512)と、
    − 全ての前記ツリーの前記葉ノードへのデータ記録の前記割り当てから予測結果を計算するステップ(524)と、
    を含む、
    コンピュータ・システム(300)。
  15. 前記入力データ・セットは、前記データベース管理システムによって管理されるデータベース中に一元的に格納され、前記データ・スライスの一つをそれぞれ含む前記ストレージ・ユニットの少なくとも一部は、ネットワークを介して前記データ管理システムに接続され、前記サブテーブルの少なくとも一部は、前記ネットワークを介して前記データ・スライスに転送される、請求項14に記載のコンピュータ・システム。
JP2014139306A 2013-07-25 2014-07-07 並列ツリー・ベースの予測のための、コンピュータにより実行される方法、ストレージ媒体、およびコンピュータ・システム Expired - Fee Related JP6376865B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1313245.1A GB2516493A (en) 2013-07-25 2013-07-25 Parallel tree based prediction
GB1313245.1 2013-07-25

Publications (2)

Publication Number Publication Date
JP2015026372A JP2015026372A (ja) 2015-02-05
JP6376865B2 true JP6376865B2 (ja) 2018-08-22

Family

ID=49166883

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014139306A Expired - Fee Related JP6376865B2 (ja) 2013-07-25 2014-07-07 並列ツリー・ベースの予測のための、コンピュータにより実行される方法、ストレージ媒体、およびコンピュータ・システム

Country Status (5)

Country Link
US (1) US9710751B2 (ja)
JP (1) JP6376865B2 (ja)
CN (1) CN104345974B (ja)
GB (1) GB2516493A (ja)
TW (1) TW201512864A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10762517B2 (en) 2015-07-01 2020-09-01 Ebay Inc. Subscription churn prediction
US10394779B2 (en) * 2015-09-14 2019-08-27 International Business Machines Corporation Detecting interesting decision rules in tree ensembles
KR20180070103A (ko) 2016-12-16 2018-06-26 삼성전자주식회사 인식 방법 및 인식 장치
US20180373760A1 (en) * 2017-06-23 2018-12-27 Xilinx, Inc. Parallel compute offload to database accelerator
US10325022B1 (en) * 2018-03-13 2019-06-18 Appian Corporation Automated expression parallelization
KR102062531B1 (ko) 2018-06-25 2020-01-06 주식회사 티맥스 소프트 결정 테이블을 결정 트리로 변환하는 데이터베이스 서버 및 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램
US10990575B2 (en) 2019-03-22 2021-04-27 Richard E Barry Reorganization of databases by sectioning
CN110210233B (zh) * 2019-04-19 2024-05-24 平安科技(深圳)有限公司 预测模型的联合构建方法、装置、存储介质及计算机设备
CN110944011B (zh) * 2019-12-16 2021-12-07 支付宝(杭州)信息技术有限公司 一种基于树模型的联合预测方法和系统
CN111178408B (zh) * 2019-12-19 2023-06-20 中国科学院计算技术研究所 基于联邦随机森林学习的健康监护模型构建方法、系统
US11568272B2 (en) 2020-06-09 2023-01-31 International Business Machines Corporation Generating native code with dynamic reoptimization for ensemble tree model prediction
US11551099B1 (en) * 2020-06-27 2023-01-10 Unicorn Labs Llc Smart sensor
US11823077B2 (en) 2020-08-13 2023-11-21 International Business Machines Corporation Parallelized scoring for ensemble model
US20220092437A1 (en) * 2020-09-21 2022-03-24 International Business Machines Corporation Efficient execution of a decision tree
KR20240035663A (ko) * 2022-09-08 2024-03-18 재단법인 아산사회복지재단 트리 기반의 앙상블 모델을 이용하여 시퀀스 모델의 입력 데이터의 피처를 선택하는 방법 및 장치
KR20240054645A (ko) 2022-10-19 2024-04-26 주식회사 케이티 복수의 단일 모델에 대한 앙상블 모델을 관리하는 서버, 방법 및 컴퓨터 프로그램

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0764793A (ja) * 1993-08-30 1995-03-10 Nippon Telegr & Teleph Corp <Ntt> 多数決型クラスタリング装置
US5870735A (en) * 1996-05-01 1999-02-09 International Business Machines Corporation Method and system for generating a decision-tree classifier in parallel in a multi-processor system
US6546379B1 (en) 1999-10-26 2003-04-08 International Business Machines Corporation Cascade boosting of predictive models
US6938049B2 (en) 2002-06-11 2005-08-30 The Regents Of The University Of California Creating ensembles of decision trees through sampling
CN1145901C (zh) 2003-02-24 2004-04-14 杨炳儒 一种基于信息挖掘的智能决策支持构造方法
JP2006155344A (ja) 2004-11-30 2006-06-15 Toshiba Corp データ分析装置、データ分析プログラム及びデータ分析方法
US8290882B2 (en) * 2008-10-09 2012-10-16 Microsoft Corporation Evaluating decision trees on a GPU
US8078642B1 (en) * 2009-07-24 2011-12-13 Yahoo! Inc. Concurrent traversal of multiple binary trees
US8768944B2 (en) * 2010-08-18 2014-07-01 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US8571924B2 (en) * 2011-07-05 2013-10-29 Yahoo! Inc. High performance personalized advertisement serving by exploiting thread assignments in a multiple core computing environment
US9953270B2 (en) * 2013-05-07 2018-04-24 Wise Io, Inc. Scalable, memory-efficient machine learning and prediction for ensembles of decision trees for homogeneous and heterogeneous datasets

Also Published As

Publication number Publication date
GB2516493A (en) 2015-01-28
TW201512864A (zh) 2015-04-01
JP2015026372A (ja) 2015-02-05
US9710751B2 (en) 2017-07-18
CN104345974A (zh) 2015-02-11
US20150032680A1 (en) 2015-01-29
CN104345974B (zh) 2017-10-13
GB201313245D0 (en) 2013-09-11

Similar Documents

Publication Publication Date Title
JP6376865B2 (ja) 並列ツリー・ベースの予測のための、コンピュータにより実行される方法、ストレージ媒体、およびコンピュータ・システム
KR102198680B1 (ko) 확장 가능한 멀티-스테이지 데이터 처리 시스템들에서의 효율적인 데이터 캐싱 관리
US11372869B2 (en) Frequent pattern mining
US11175953B2 (en) Determining an allocation of computing resources for a job
US7941804B1 (en) Allocating resources among tiered partitions of different types
CN107239335B (zh) 分布式系统的作业调度系统及方法
US9740706B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
US9684874B2 (en) Parallel decision or regression tree growing
CN113015970B (zh) 划分知识图谱的方法、系统和介质
WO2016078008A1 (zh) 调度数据流任务的方法和装置
US20130151535A1 (en) Distributed indexing of data
EP1524599B1 (en) A method of reassigning objects to processing units
CN115564204B (zh) 供应链中的需求资源配置并行处理方法
US10296227B2 (en) System and method for dynamic cache distribution for in-memory data grids
JPH0844577A (ja) データ分割方法及びマルチプロセッサシステム
Shabeera et al. A novel approach for improving data locality of mapreduce applications in cloud environment through intelligent data placement
Babu et al. Dynamic colocation algorithm for Hadoop
Noon et al. Scheduling parallel data transfers in multi-tiered persistent storage
CN116755893B (zh) 面向深度学习的分布式计算系统的作业调度方法和装置
US20230075114A1 (en) Resource allocation in cloud computing systems
Idris et al. In-map/in-reduce: Concurrent job execution in MapReduce
Osei-Bryson et al. Applications of sequential set partitioning: a set of technical information systems problems
Ghannane Mapping Neural Network Inference Onto Heterogeneous Hardware Platforms
Moni et al. AI Based Cloud Failure Detection and Prevention Algorithm
Martınez Parallel Task Graphs Scheduling Based on the Internal Structure

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180525

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180724

R150 Certificate of patent or registration of utility model

Ref document number: 6376865

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees