CREATE MINING MODEL (DMX)
在数据库中同时创建一个新的挖掘模型和一个挖掘结构。通过在语句中定义新模型,或者通过使用预测模型标记语言 (PMML),均可以创建模型。第二种选择只适用于高级用户。
挖掘结构的命名方式是在模型名称后追加 "_structure",这样可以确保将结构名称与模型名称进行区分。
若要为现有挖掘结构创建挖掘模型,请使用 ALTER MINING STRUCTURE (DMX) 语句。
语法
CREATE [SESSION] MINING MODEL <model>
(
[(<column definition list>)]
)
USING <algorithm> [(<parameter list>)] [WITH DRILLTHROUGH]
CREATE MINING MODEL <model> FROM PMML <xml string>
参数
model
模型的唯一名称。column definition list
列定义的逗号分隔列表。algorithm
当前提供程序定义的数据挖掘算法的名称。注意 通过使用 DMSCHEMA_MINING_SERVICES 行集 可检索当前提供程序支持的算法的列表。若要查看当前 Analysis Services 实例支持的算法,请参阅数据挖掘属性。
parameter list
可选。由提供程序定义的算法所需参数的逗号分隔列表。XML string
(仅适用于高级用户。)XML 编码的模型 (PMML)。字符串必须以单引号 (') 引起。
使用 SESSION 子句创建的挖掘模型,可以在连接关闭或会话超时时被自动从服务器上删除。SESSION 挖掘模型是非常有用的,因为它们不要求用户为数据库管理员,而且它们只在连接打开期间使用磁盘空间。
使用 WITH DRILLTHROUGH 子句可以对新挖掘模型进行钻取。只有在创建模型时,才能启用钻取功能。对于某些模型类型,在自定义查看器中浏览模型时需要进行钻取。对于预测或使用 Microsoft 一般内容树查看器浏览,钻取则不是必需的。
使用 CREATE MINING MODEL 语句可以创建基于列定义列表、算法和算法参数列表的新挖掘模型。
列定义列表
通过包含各列的以下信息,可以使用列定义列表定义模型的结构:
名称(必需)
日期类型(必需)
分发
建模标志列表
内容类型(必需)
由 PREDICT 或 PREDICT_ONLY 子句指示的预测请求,用于指示算法对该列进行预测
与属性列的关系(仅在适用时为必需),由 RELATED TO 子句指示
使用以下列定义列表的语法,定义单个列:
<column name> <data type> [<Distribution>] [<Modeling Flags>] <Content Type> [<prediction>] [<column relationship>]
使用以下列定义列表的语法,定义嵌套表列:
<column name> TABLE [<prediction>] ( <non-table column definition list> )
除了建模标志外,只能使用特定组的一个子句来定义列。可以为一个列定义多个建模标志。
有关可用于定义列的一组数据类型、内容类型、列分布和建模标志,请参阅下列主题:
您可以向语句中添加子句,以说明两个列之间的关系。Analysis Services 支持使用以下 <Column relationship> 子句。
- RELATED TO
此窗体指示值的层次结构。RELATED TO 列的目标可以是嵌套表的键列、事例行中具有离散值的列或另一个包含 RELATED TO 子句并指示更深层次结构的列。
使用预测子句可以说明使用预测列的方式。下表列出了两种可以使用的子句。
<prediction> 子句 |
说明 |
---|---|
PREDICT |
该列可以由模型预测,并且可以在输入事例中提供,以预测其他可预测列的值。 |
PREDICT_ONLY |
该列可以由模型预测,但其值不可用于输入事例来预测其他可预测列的值。 |
参数定义列表
可以使用参数列表调整挖掘模型的性能和功能。参数列的表语法如下:
[<parameter> = <value>, <parameter> = <value>,…]
有关与每种算法关联的一组参数,请参阅数据挖掘算法(Analysis Services – 数据挖掘)。
注释
如果要创建具有内置测试数据集的模型,则应当使用 CREATE MINING STRUCTURE 语句,然后再使用 ALTER MINING STRUCTURE 语句。但是,并非所有挖掘模型类型都支持维持数据集。有关详细信息,请参阅 CREATE MINING STRUCTURE (DMX)。
有关如何使用 CREATEMODEL 语句创建挖掘模型的演练,请参阅时序预测 DMX 教程。
Naive Bayes 示例
以下示例使用 Microsoft Naive Bayes 算法创建新的挖掘模型。Bike Buyer 列定义为可预测属性。
CREATE MINING MODEL [NBSample]
(
CustomerKey LONG KEY,
Gender TEXT DISCRETE,
[Number Cars Owned] LONG DISCRETE,
[Bike Buyer] LONG DISCRETE PREDICT
)
USING Microsoft_Naive_Bayes
关联模型示例
以下示例使用 Microsoft 关联算法创建新的挖掘模型。该语句通过使用表列,充分利用了在模型定义中嵌套表的能力。可以使用 MINIMUM_PROBABILITY 和 MINIMUM_SUPPORT 参数修改该模型。
CREATE MINING MODEL MyAssociationModel (
OrderNumber TEXT KEY,
[Products] TABLE PREDICT (
[Model] TEXT KEY
)
)
USING Microsoft_Association_Rules (Minimum_Probability = 0.1, MINIMUM_SUPPORT = 0.01)
顺序分析和聚类分析示例
以下示例使用 Microsoft 顺序分析和聚类分析算法创建新的挖掘模型。定义模型时使用了两个键。OrderNumber 列用作事例键,指定各个订单。LineNumber 列用作嵌套表键,指定项添加到订单的顺序。
CREATE MINING MODEL BuyingSequence (
[Order Number] TEXT KEY,
[Products] TABLE
(
[Line Number] LONG KEY SEQUENCE,
[Model] TEXT DISCRETE PREDICT
)
)
USING Microsoft_Sequence_Clustering
时间序列示例
下面的示例使用 Microsoft 时序算法和 ARTxp 算法创建新的挖掘模型。ReportingDate 是时序的键列,ModelRegion 是数据序列的键列。在此示例中,假定数据出现的频率为每 12 个月一次。因此,将 PERIODICITY_HINT 参数设置为 12。
注意 |
---|
必须使用大括号字符指定 PERIODICITY_HINT 参数。而且,由于值是字符串,因此必须使用单引号引起来,即 "{<数值>}"。 |
CREATE MINING MODEL SalesForecast (
ReportingDate DATE KEY TIME,
ModelRegion TEXT KEY,
Amount LONG CONTINUOUS PREDICT,
Quantity LONG CONTINUOUS PREDICT
)
USING Microsoft_Time_Series (PERIODICITY_HINT = '{12}', FORECAST_METHOD = 'ARTXP')