第十二章、預測模式標記語言PMML(Predict Model Markup Language)

Download Report

Transcript 第十二章、預測模式標記語言PMML(Predict Model Markup Language)

第十二章、預測模式標記語言
PMML(Predict Model Markup
Language)
•何謂PMML
•資料探勘
•資料探勘的技術
•PMML的元件
•PMML DTD
何謂PMML
•是一種以XML為標準的標記語言
•用來表達資料探勘(Data Mining)的結果
•由於是以XML為標準,所以具有所有XML所
具備的優點
–簡單性及跨平台開放性
–具延伸性及自我描述性
–分離資料儲存及呈現方式
何謂PMML(續)
•是由國際資料探勘協會(Nation Center for Data
Mining)所推行的標準
•相關網址:www.dmg.org
•目前已有許多相關的資料探勘標準
–DMG PMML
–OMG CWM DM
–SQL/MM Part 6 for Data Mining
–JSR-073 Java Data Mining API
–Microsoft OLE DB for Data Mining
Data Mining Group
•PMML Version 1.1相關團體:
–Angoss, IBM, Magnify, Microsoft, NCR, Oracle,
SPSS, University of Illinois at Chicago
–Focused group to expedite process
•PMML Version 1.2 包含Xchange,和其它部份
–Open to any qualified vendor selling data mining
products
–Augmented by experts reviewers
•屬於xml.org組織所負責的一部份
PMML的特點
•PMML可以描述資料探勘及統計模式的標記
語言
•PMML 1.0可以描述大部份的模式(Model),
不是只有預測模式
–像是群組分類、關聯規則等等…
•PMML可以用來表達MetaData的資料及參數
–應用軟體可以使用資料探勘的模式
–可以表達資料探勘模式
PMML的特點(續)
•Open standard for Data Mining Models
•Not is concerned with the process of
creating a model
•Provides independence from application,
platform, and operating system
•Simplifies use of data mining models by
other applications (consumers of data
mining models)
資料探勘
•資料探勘的工作(Data Mining)是近年來資料庫
應用領域中,相當熱門的議題。Data Mining是一
個浮現中的新領域。在範圍和定義上、推理和期
望上有一些不同。挖掘的資訊和知識從巨大的資
料庫而來,它被許多研究者在資料庫系統和機器
學習當作關鍵研究議題,而且也被企業體當作主
要利基的重要所在。有許多不同領域的專家,對
Data Mining展現出極大興趣,例如在資訊服務業
中,浮現一些應用,如在Internet之資料倉儲和
線上服務,並且增加企業的許多生機。
資料探勘(續)
•所謂Data Mining就是從資料中發掘資訊或知
識。目前已被許多研究人員視為結合資料庫系
統與機器學習技術的重要領域,許多產業界人
士也認為此領域是一項增加各企業潛能的重要
指標。此領域蓬勃發展的原因:現代的企業體
經常蒐集了大量資料,包括市場、客戶、供應
商、競爭對手以及未來趨勢等重要資訊,但是
資訊超載與無結構化,使得企業決策單位無法
有效利用現存的資訊,甚至使決策行為產生混
亂與誤用。如果能透過資料發掘技術,從巨量
的資料庫中,發掘出不同的資訊與知識出來,
作為決策支援之用,必能產生企業的競爭優勢。
資料探勘的功能
‧分類(classification)
‧推估(estimation)
‧預測(prediction)
‧關聯分組(affinity grouping)
‧同質分組(clustering)
資料探勘的技術
•關聯規則分析(Association Rule)
•自動群集偵測(Automatic Cluster
Detection)
•決策樹(Decision Tree)
•類神經網路(artificial neural
network)
•遺傳基因演算法(Genetic Algorithm)
•即時線上分析(Online Analytical
Processing)
PMML的元件(v1.1)
• Schemas
– Data dictionary (data schema, including
outliers, missing values)
– Mining schema
• Infrastructure
– Univariate statistics
– Normalization and transformation (very
basic)
• Models
PMML的模式(v1.1)
•
•
•
•
•
•
•
Polynomial regression
General regression
Trees
Center based clusters
Density based clusters
Associations
Neural nets
– more to be added in v1.2
範例: PMML (v1.1)
<TreeModel modelName="golfing">
<MiningSchema>
<MiningField name="temperature"/>
<MiningField name="humidity"/>
...
</MiningSchema>
<Node score="play">
<Predicate field="outlook" operator="equal"
value="sunny"/>
<Node score="play">
<CompoundPredicate booleanOperator="and" >
<Predicate field="temperature operator="lessThan"
value="90F" />
<Predicate field="temperature" operator="greaterThan"
value="50F" />
PMML DTD_v1_1
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!ENTITY % A-PMML-MODEL '(TreeModel | NeuralNetwork |
ClusteringModel |
RegressionModel | GeneralRegressionModel |
AssociationModel )' >
<!ELEMENT PMML ( Header, DataDictionary, (%A-PMMLMODEL;)+, Extension* ) >
<!ATTLIST PMML version CDATA #REQUIRED>
<!ELEMENT Extension ANY >
<!ATTLIST Extension
extender CDATA # IMPLIED
name CDATA # IMPLIED
value CDATA # IMPLIED >
PMML DTD_v1_1(續)
<!ENTITY % NUMBER "CDATA" >
<!ENTITY % INT-NUMBER "CDATA">
<!-- content must be an integer, no fractions or exponent -->
<!ENTITY % REAL-NUMBER "CDATA">
<!-- content can be any number
covers C/C++ types 'float','long','double'
scientific notation, eg 1.23e4, is allowed -->
<!ENTITY % PROB-NUMBER "CDATA">
<!-- a REAL-NUMBER between 0.0 and 1.0
usually describing a probability -->
<!ENTITY % PERCENTAGE-NUMBER "CDATA">
<!-- a REAL-NUMBER between 0.0 and 100.0 -->
PMML DTD_v1_1(續)
<!ENTITY % FIELD-NAME "CDATA">
<!ELEMENT Array (#PCDATA) >
<!ATTLIST Array
n %INT-NUMBER; #IMPLIED
type ( int| real| string ) #IMPLIED>
<!ENTITY % NUM-ARRAY "Array">
<!-- an array of numbers -->
<!ENTITY % INT-ARRAY "Array">
<!-- an array of integers -->
<!ENTITY % REAL-ARRAY "Array">
<!-- an array of reals -->
<!ENTITY % STRING-ARRAY "Array">
<!-- an array of strings -->