Data Dictionary
データ・ディクショナリーは複数のモデルによって共有されることが可能\です。統計や他の情報は一つのモデルの中に格納されています。統計およびマイニングフィールドに関しては、さらにDTDを参照してください。
<!ENTITY % FIELD-NAME "CDATA" > <!ELEMENT DataDictionary (Extension*, DataField+, Taxonomy* ) > <!ATTLIST DataDictionary numberOfFields %INT-NUMBER; #IMPLIED > <!ELEMENT DataField ( Extension*, (Interval*| Value*) ) > <!ATTLIST DataField name %FIELD-NAME; #REQUIRED displayName CDATA #IMPLIED optype (categorical|ordinal|continuous) #REQUIRED taxonomy CDATA #IMPLIED isCyclic ( 0 | 1 ) "0" > |
値numberOfFieldsはDataDictionaryの内容によって定義されるフィールドの数です。この数は一貫性チェックのために加えることができます。データ・フィールド名はデータ・ディクショナリーにおいて一意でなければなりません。displayNameはそのフィールドを参照するためにアプリケーションによって使用されるであろう文字列です。XMLドキュメント内では、名前の値だけが重要です。displayNameが与えられない場合、名前はデフォルト値です。
そのフィールドは、値に対して定義される演算に依存して異なるタイプに分けられます。これは属性optypeによって定義されます。Categoricalフィールドは演算子「=」を持っています。順序フィールドはそれに加えて「<」持っています。また、連続フィールドはさらに演算子を持っています。Cyclicフィールドは、最大の値および最小の値で閉じていることを考慮される距離の測度を持っています。
オプションの属性「taxonomy」は、値の分類を参照します。値は分類の名前です。それは、値の階層について記述します。属性はcategoricalフィールドにのみ適用可能\です。
DataFieldの内容は、妥当でありうる値の集合を定義します。
マイニングモデルは、値の3つの特性を区別します:
Missing value(欠損値):例えば、データ・ベースのカラムがnull値を含んでいる場合、入力値は見当たりません。欠損値として解釈される値を明示的に定義することは可能\です。
Invalid value(無効値):入力値は欠損しているわけではありません。しかし、ある妥当な値の範囲には属しません。有効値の範囲は各々のフィールドに対して定義することができます。
Valid value(有効):欠損値でも無効値でもない値。
値とintervalに対する次の要素定義は、データ・ディクショナリー内のフィールドに対する型と値の範囲を定義するために使われます。有効値の範囲は、集合自体の指定により、あるいは補集合の指定により定義することができます。
categoricalな入力値中の末尾のブランクは意味を持ちません。PMMLの中のcategoricalな値は末尾にブランクは持てません。接頭のブランクは意味を持ちます。
モデルのインタープリターがどのように現実に無効値や欠損値を表\わすかという事をPMMLは定義しないことに注意してください。これはアプリケーション環境に依存します。
連続フィールドは、有効値の範囲を定義する多くても2つのintervalを持つ程度でしょう。intervalが存在するなら、intervalの外にあるどんなデータも無効であると考えられます。いかなるintervalも存在しないなら、(個別のmissing値を除いた)実数全体の軸は有効な値で作られています。intervalは非連続フィールドのために許可されません。
有効な値のシーケンスがintervalの範囲の代わりに指定される連続フィールドは存在します。たとえば、これは、グレードの表\現に値1、2、3、4、5、6の固定集合を持つ格付システムの中で、使用することができます。これらの数より他の値は無効の入力と見なされます。その演算タイプは、値の合計と中間値の計算を許可しています。
値範囲が与えられ、厳密に2つの有効値だけを含んでいるcategoricalフィールドとして2値(binary)フィールドがモデル化されることに注意してください。2値フィールドに対する特定のoptype値は存在しません
順序と連続フィールドはcyclicかもしれません。これらは、類似性や値の距離がcyclicな特性に依存するクラスタリングモデルに使用されます。cyclic順序フィールドに対する「値」要素の列が、一つのcycleの最初と最後の値を定義します。cyclicな連続フィールドのための値範囲は、interval、もしくは「値」要素の列によって定義することが出来ます。フィールドが一つのintervalを持っている場合、確実に一つ存在しなければなりません。このintervalは、cycleの最初と最後の値のデフォルト値を定義します。そうでなければ、これらは「値」要素によって与えられた最小値と最大値です。
順序フィールドに対しての順序付けは、カテゴリー要素の列によって指定されます。 順序付けが、その要素で指定されないなら、表\記タイプ(文字列、日付、数など)上のデフォルトの順序も、マイニングモデル中のフィールド値の順序を定義します。モデルのあるクラス用のアプリケーションアルゴリズムが順序フィールドの任意の特定の扱いを要請しないならば、それらはcategoricalフィールドとして解釈することができます。
<!ELEMENT Value (Extension*) > <!ATTLIST Value value CDATA #REQUIRED displayValue CDATA #IMPLIED property (valid | invalid | missing ) "valid" > |
要素Intervalは 数(numeric)の値の範囲を定義します。
<!ELEMENT Interval EMPTY> <!ATTLIST Interval closure (openClosed|openOpen| closedOpen|closedClosed) #REQUIRED leftMargin %NUMBER; #IMPLIED rightMargin %NUMBER; #IMPLIED > |
属性leftMarginおよびrightMarginはオプションです。しかし、少なくとも1つの値が定義される。マージンが見当たらないならば、それぞれ正もしくは負の無限が仮定されます。
適合
順序フィールドの、およびcyclicな値範囲のサポートは、PMMLのコアな必要条件ではありません。欠損値や無効値、値範囲の詳細なサポートもPMMLのコアの範疇ではありません。「DataField」の内容を参照。