创建预测(数据挖掘基础教程)
在测试挖掘模型的准确性并确定对结果感到满意后,可以使用数据挖掘Designer“挖掘模型预测”选项卡上的“预测查询生成器”生成预测。
预测查询生成器有三个视图。 使用“设计和查询”视图,可以生成和检查查询。 然后,可以运行查询并在“ 结果 ”视图中查看结果。
所有预测查询均使用 DMX,DMX 是数据挖掘扩展 (DMX) 语言的简称。 DMX 的语法与 T-SQL 的语法相似,但用于对数据挖掘对象的查询。 尽管 DMX 语法并不复杂,但使用此类查询生成器或 office SQL Server 数据挖掘Add-Ins中的查询生成器可以更轻松地选择输入和生成表达式,因此强烈建议你了解基础知识。
创建查询
创建预测查询的第一步是选择挖掘模型和输入表。
选择模型和输入表
在“数据挖掘Designer的”挖掘模型预测“选项卡上的”挖掘模型“框中,单击”选择模型”。
在 “选择挖掘模型 ”对话框中,在树中导航到 “目标邮件” 结构,展开结构,选择
TM_Decision_Tree
,然后单击“ 确定”。在 “选择输入表 () 框中,单击” 选择事例表”。
在 “选择表 ”对话框的“ 数据源 ”列表中,选择数据源视图 Adventure Works DW Multidimensional 2012。
在 “表/视图名称”中,选择 “ProspectiveBuyer (dbo) 表”,然后单击“ 确定”。
该
ProspectiveBuyer
表最类似于 vTargetMail 案例表。
映射列
选择输入表之后,预测查询生成器便会根据各列的名称在挖掘模型和输入表之间创建默认映射。 结构中至少有一列必须与外部数据中的某列相匹配。
重要
用于确定模型准确性的数据必须包含一个可以映射到可预测列的列。 如果不存在这种列,您可以使用空值创建一列,但该列的数据类型必须与可预测列相同。
将输入内容映射到模型
右键单击将“ 挖掘模型” 窗口连接到 “选择输入表” 窗口的线条,然后选择“ 修改连接”。
请注意,并非每个列都映射。 我们将添加多个 表列的映射。 我们还将基于当前的日期列生成新的出生日期列,以便更好地匹配列。
在“ 表列”下,单击单元格
Bike Buyer
,然后从下拉列表中选择“潜在购买.未知”。这样便将可预测列 [Bike Buyer] 映射到一个输入表列。
单击“确定”。
在“解决方案资源管理器”中,右键单击“目标邮件”数据源视图,然后选择“查看Designer”。
右键单击表“ProspectiveBuyer”,然后选择“ 新建命名计算”。
在“ 创建命名计算 ”对话框中,为 “列名称”键入
calcAge
。对于 “说明”,请键入 “基于出生日期计算年龄”。
在“ 表达式 ”框中,键入
DATEDIFF(YYYY,[BirthDate],getdate())
,然后单击“ 确定”。由于输入表没有对应于模型中的 Age 列,因此可以使用此表达式从输入表中的 BirthDate 列计算客户年龄。 由于 Age 被确定为预测自行车购买的最有影响力的列,因此它必须同时存在于模型和输入表中。
在“数据挖掘Designer”中,选择“挖掘模型预测”选项卡,然后重新打开“修改连接”窗口。
在“ 表列”下,单击“ 年龄 ”单元格,然后从下拉列表中选择“ProspectiveBuyer.calcAge”。
警告
如果在列表中看不到该列,则可能必须刷新设计器中加载的数据源视图的定义。 为此,请在“ 文件 ”菜单中选择“ 全部保存”,然后在设计器中关闭并重新打开该项目。
单击“确定”。
设计预测查询
“ 挖掘模型预测 ”选项卡工具栏上的第一个按钮是 “切换到设计视图/切换到结果视图/切换到查询视图 ”按钮。 单击此按钮上的向下箭头,然后选择“ 设计”。
在“ 挖掘模型预测 ”选项卡的网格中,单击 “源 ”列中第一个空行中的单元格,然后选择“ 预测函数”。
在“预测函数”行的“字段”列中,选择 。
PredictProbability
在同一行的 “别名” 列中,键入 “结果概率”。
在上面的 “挖掘模型 ”窗口中,选择“[自行车购买者]”并将其拖到 “条件/参数 ”单元格中。
放手时,[TM_Decision_Tree]。[Bike Buyer] 显示在 “条件/参数” 单元格中。
这将指定
PredictProbability
函数的目标列。 有关函数的详细信息,请参阅 数据挖掘扩展插件 (DMX) 函数参考。单击“ 源 ”列中的下一个空行,然后选择 “TM_Decision_Tree 挖掘模型”。
在行
TM_Decision_Tree
的 “字段” 列中,选择Bike Buyer
。在行
TM_Decision_Tree
的 “条件/参数” 列中,键入=1
。单击“ 源 ”列中的下一个空行,然后选择“ 潜在购买者表”。
在行
ProspectiveBuyer
的 “字段 ”列中,选择“ ProspectiveBuyerKey”。这会将唯一标识符添加到预测查询中,以便您可以标识谁可能购买自行车,以及谁不可能购买自行车。
向网格中添加五个以上的行。 对于每一行,选择“ 前瞻性Buyer 表 ”作为 “源 ”,然后在 “字段” 单元格中添加以下列:
calcAge
LastName
FirstName
AddressLine1
AddressLine2
最后,运行查询并浏览结果。
预测查询生成器还包括以下控件:
显示检查框
可以允许您从查询中移除子句而不从设计器中删除它们。 当您使用复杂查询并想要保留语法而不必将 DMX 复制和粘贴到窗口时,这很有用。
组
在所选行的开头插入一个左括号,或在当前行的结尾插入一个右括号。
AND/OR
紧接在
AND
当前函数或OR
列之后插入 运算符或 运算符。
运行查询并查看结果
在“ 挖掘模型预测 ”选项卡中,选择“ 结果 ”按钮。
运行查询并显示结果后,您可以查看结果。
“ 挖掘模型预测 ”选项卡显示可能是自行车购买者的潜在客户的联系信息。 结果的概率列指示预测正确概率。 您可以使用这些结果来确定向哪些潜在客户发送电子邮件。
此时您可以保存结果。 您有三种选择:
右键单击结果中的一行数据,然后选择“ 复制 ”以仅将该值 (和列标题) 保存到剪贴板。
右键单击结果中的任何行,然后选择“ 全部复制 ”,将整个结果集(包括列标题)复制到剪贴板。
单击“ 保存查询结果 ”,将结果直接保存到数据库,如下所示:
在“ 保存数据挖掘查询结果 ”对话框中,选择数据源或定义新的数据源。
键入将包含查询结果的表的名称。
使用“ 添加到 DSV”选项创建表并将其添加到现有数据源视图。 如果要在同一数据源视图中保留模型的所有相关表(例如训练数据、预测源数据和查询结果),这非常有用。
使用选项 “如果存在,则覆盖”以使用最新结果更新现有表。
如果您将任何列添加到了预测查询、更改了预测查询中任何列的名称或数据类型,或者对目标表运行了任何 ALTER 语句,必须使用此选项来覆盖表。
此外,例如,如果多个列具有相同的名称 (,则默认列名 Expression) 必须为名称重复的列创建别名,否则当设计器尝试将结果保存到SQL Server时,将引发错误。 原因是 SQL Server 不允许多个列具有相同的名称。
有关详细信息,请参阅 保存数据挖掘查询结果对话框 (挖掘模型预测视图) 。