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

提供程序定义的数据挖掘提供程序的名称。

parameter list

可选。由提供程序定义的算法所需参数的逗号分隔列表。

XML string

(仅适用于高级用户。)XML 编码的模型 (PMML)。字符串必须以单引号 (') 引起。

备注

使用 SESSION 子句,可以创建在连接关闭或会话超时自动从服务器删除的挖掘模型。SESSION 挖掘模型不要求用户是数据库管理员,并且只在连接打开时使用磁盘空间,因此很有用。

使用 WITH DRILLTHROUGH 子句可以对新挖掘模型进行钻取。只有在创建模型时才能启用钻取功能。

使用 CREATE MINING MODEL 语句可以创建基于列定义列表、算法和算法参数列表的新挖掘模型。

列定义列表

通过包含各列的以下信息,可以使用列定义列表定义模型的结构:

  • 名称(必需)
  • 日期类型(必需)
  • 分发
  • 建模标志列表
  • 内容类型(必需)
  • PREDICTPREDICT_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>,…]

有关与每种算法关联的一组参数,请参阅数据挖掘算法

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_ProbabilityMinimum_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 顺序分析和聚类分析算法创建新的挖掘模型。定义模型时使用了两个键。Order Number 指定各个订单。Line Number 指定项目添加到订单的顺序。

CREATE MINING MODEL BuyingSequence (
    [Order Number] TEXT KEY,
    [Products] TABLE (
        [Line Number] LONG KEY SEQUENCE,
        [Model] TEXT DISCRETE PREDICT
)
)
Using Microsoft_Sequence_Clustering

时间序列示例

下面的示例使用 Microsoft 时序算法创建新的挖掘模型。由于时序模型可以包含多个键,因此将 TimeIndex 和 ModelRegion 都指定为键列。在此示例中,假定数据出现的频率为每 12 个月一次,因此将 PERIODICITY_HINT 参数设置为 12。

ms131986.note(zh-cn,SQL.90).gif注意:
必须使用花括号字符“{}”指定 PERIODICITY_HINT 参数。
CREATE MINING MODEL SalesForcast (
        TimeIndex LONG KEY TIME,
        ModelRegion TEXT KEY,
        Amount LONG CONTINUOUS PREDICT,
        Quantity LONG CONTINUOUS PREDICT
)
Using Microsoft_Time_Series (PERIODICITY_HINT = '{12}')

请参阅

参考

数据挖掘扩展插件 (DMX) 数据定义语句
数据挖掘扩展插件 (DMX) 数据操作语句
数据挖掘扩展插件 (DMX) 语句参考

帮助和信息

获取 SQL Server 2005 帮助