プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

タプルIDの伝播とは何ですか?


タプルID伝播は、仮想結合を実装するためのアプローチであり、マルチリレーショナル分類の有効性を大幅に向上させます。リレーションを物理的に結合するのではなく、ターゲットタプルのIDを非ターゲットリレーションのタプルに接続することで、仮想的に結合されます。

この方法では、物理的な結合が実装されているかのように述語を計算できます。タプルIDの伝播は柔軟で効果的です。これは、IDをいくつかの2つのリレーション間で簡単に伝播でき、少量のデータ転送とより多くのストレージスペースしか必要としないためです。そうすることで、複数の関係にある述語を小さな冗長な計算で計算できます。

タプルIDの伝播は、特定の制約を適用して実施する必要があります。そのような伝播が逆効果になる可能性がある2つのケースがあります-

  • 大規模なファンアウトを介した伝播

  • 長くて弱いリンクを介した伝播。

最初のケースは、IDをリレーションRに伝播した後、Rの各タプルがいくつかのターゲットタプルと結合され、各ターゲットタプルがRのいくつかのタプルと結合されていることが検出された場合に表示されます。Rとターゲットリレーションの間のセマンティック接続接続が非選択的であるため、非常に弱いです。

たとえば、出生国のリンクを介した人々の間の伝播は生産的ではありません。 2番目のケースは、伝播が長い接続を通過する場合に発生します(たとえば、学生と自動車販売店のペットを接続することは生産的ではありません)。効率と確実性の利点から、このような接続を介した伝播は推奨されません。

CrossMineは、マルチリレーショナル分類のためにタプルIDの伝播を必要とするメソッドです。 ID伝播のデータをより適切に組み合わせることができ、CrossMineはルールのコンポーネントとして複雑な述語を必要とします。複雑な述語pには、次の2つの部分が含まれます-

prop-path −これはIDを伝播する方法を示します。たとえば、パス「ローン。 account_ID→Account.account_ID」は、account_IDを使用してローンからアカウントにIDを伝播することを示します。 ID伝播が含まれていない場合、prop-pathはnullです。

制約 −これは、IDが伝播される関係の制約を示す述語です。カテゴリまたは数値にすることができます。

CrossMineは、一連のルールを含む分類子を構築します。各ルールには、複雑な述語のリストとクラスラベルが含まれます。 CrossMineは、FOILなどのシーケンシャルカバーアルゴリズムです。一度に1つずつルールを作成できます。ルールrが作成された後、rを満たすすべての正のターゲットタプルがデータセットから削除されます。

CrossMineは、停止基準が組み立てられるまで、定期的に最適な複雑な述語を検索し、それを最新のルールに追加します。リレーションは、現在のルールで発生する場合にアクティブになります。次の最良の述語を検索する前に、各アクティブなリレーションは、そのタプルごとに伝播されたIDのIDセットを持っている必要があります。


  1. Pythonでのタプル宣言の構文は何ですか?

    タプルは、カンマで区切られたアイテムのシーケンスです。シーケンスは、オプションで括弧内に入れることができます。 >>> t1=(1, "Ravi", 23, 546) >>> t1 (1, 'Ravi', 23, 546) >>> type(t1) <class 'tuple'> >>> t1=1, "Ravi", 23, 546 >>> t1 (1, 'Ravi', 23, 546) >>&g

  2. Pythonタプルを作成するための正しい構文は何ですか?

    Pythonでは、タプルオブジェクトは不変のアイテムのコレクションであり、必ずしも同じタイプである必要はありません。項目はコンマで区切られ、括弧内に配置されますが、オプションです。 >>> T1 = (1,one,3.45,[1,2,3]) >>> T2 = 1,2,3,4 空のタプルオブジェクトは、括弧内に何も含まずに作成されます >>> T3 = () >>> T3 () タプルに含めるアイテムが1つだけの場合は、その後ろに追加のコンマが配置されます。 >>> T4 = 10, >