第3章实践SQLServer数据挖掘-PPT精选

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用命名查询
对于数据挖掘来说,有用的典型查询是过滤、连接 和采样查询
基于列的值过滤行: Select * From [Movies] Where
[Movie] !='Star Wars'
使用命名查询
从嵌套表中过滤掉不常见的项
select [CustomerID],[Movie] from [Movies]
customers.*,Education.[Education Level] from Customers Join Education on Customers.[Education Id] =Education.[Education Id]
使用命名查询
采样一个SQL Server数据库中的行 select * from customers
指定列的用法
数据挖掘向导提供了“建议”功能,在选择预测列 时将启用该功能。
数据集包含的列经常多于生成挖掘模型时要使用的 列。“建议”功能可以计算出一个数值分数(介于 0 到 1 之间),用于说明数据集中的每一列与预测 列之间的关系。
根据此分数,该功能可以建议可用作挖掘模型的输 入的列。
如果使用了“建议”功能,您就可以使用建议的列, 修改选择的列以满足需要,也可以忽略建议。
提供相关列建议
提供相关列建议
单击“建议”打开“提供相关列建议”对话框,该 对话框列出与可预测列关系最密切的列。
“提供相关列建议”对话框按照各属性与可预测属 性的相关性对其进行排序。值大于 0.05 的列将被 自动选中,以包括在模型中。
4 CASE表达式 将一个属性从一个嵌套表转换到事例表:
CASE When Exists (Select [Movie] From [Movies] Where [Movie]='Star Wars' And Movies.CustomerID=Customers.CustomerID ) then 'True' ELSE 'False'
在“指定列的内容和数据类型”页上,单击“检 测”。
某个算法将运行此示例数字数据,并确定这些数字 列是包含连续值还是包含离散值。
在 SSAS中处理挖掘模型之前,可以为作为建模依 据的挖掘结构列定义数据类型。Analysis Services 支持以下挖掘结构列数据类型:
Text、Long、Boolean、Double、Date
使用命名计算
4 CASE表达式 减少有效状态的个数 CASE [Marital Status]
When 'Married' then 'Marital Status' When 'Never Married' then 'Marital Status' ELSE 'Other' END
使用命名计算
2 从外部文件导入数据
2 从外部文件导入数据
2 从外部文件导入数据
2 从外部文件导入数据
2 从外部文件导入数据
2 从外部文件导入数据
在解决方案中新建数据源 BI
新建数据源视图
为了使下一步顺利进行, 在数据挖掘项目节点上 单击右键选择“属性” 进行设置
将部署中的目标服务器更改

where [Movie] in
对记录按照
(select distinct [Movie] Movie字段分组
from [Movies] Group by [Movie]
Having count([Movie])>20)
对分组按照组的 聚合结果作过滤
使用命名查询
从一个外表中连接信息: select
命名查询是以表的形式表示的 SQL 表达式。 在命名查询中,可以指定一个 SQL 表达式来选择
从一个或多个数据源的一个或多个表返回的行和列。 命名查询基于一个表达式,除此之外,它在行和关
系方面都与数据源视图中的其他表相似。 该表达式作为表显示在数据源视图中,其行为也与
表相同。
使用命名查询
向导中的最后一步是对挖掘结构和关联的挖掘模型 进行命名。如果选择“允许钻取”,则会在模型中 启用钻取功能。这样,您就可以浏览用于生成模型 的源数据。
3.3.4 使用数据挖掘设计器
有些操作在向导中无法实现,需要在数据挖掘设计 器中进行
设置离散化属性:若所选择的数据挖掘算法不支持 连续的属性,在数据挖掘向导中系统会自动将连续 的列内容类型改为Discretized。若要指定离散的 方法和参数,可以在挖掘结构的列列表中单击,然 后在属性窗口中设置DiscretizationMethod和 DiscretiztionBuckets属性
创建命名查询时,需要为 SQL 查询返回的此表的 列和数据指定名称,并根据需要对命名查询进行说 明。
SQL 表达式可以引用数据源视图中的其他表。 命名查询允许不修改基础数据源即可扩展数据源视
图中现有表的关系架构。
例如,可以使用一系列命名查询将一个复杂的维 度表分割为几个较小、较简单的维度表以便在数 据库维度中使用。
使用命名计算
3 组合表达式 将婚姻状况和是否有孩子的属性进行组合 [Marital Status]+' '+[Has Children] 4 CASE表达式 CASE表达式可以创建有意义的变量,可以达到如
下的目的:
改变值的标签 手动离散化列 减少有效状态的个数 将一个属性从一个嵌套表中转换为一个事例级属性
数据挖掘列可以为下列四种类型之一:键列、输入 列、可预测列或输入列和可预测列的组合。
键列包含表中每个行的唯一标识符。 某些挖掘模型(如顺序分析和聚类分析以及时序模
型)可能包含多个键列。 预测列包含要在挖掘模型中预测的信息。
指定列的用法
例如,一系列表可能包含客户 ID、人口统计信息 以及每位客户在某个特定商店消费的金额。
使用命名计算
4 CASE表达式 改变值的标签 CASE [Category]
When 1 then 'food' When 2 then 'Beverage' When 3 then 'goods' END CASE
使用命名计算
4 CASE表达式 手动离散化列: CASE
When [Age]<20 then 'Under 20' When [Age]<=30 then 'Berween 20 and 30' When [Age]<=40 then 'Between 30 and 40' ELSE 'Over 40' END
END
在Customers表上创建一个命名计算
下面创建一个命名计算离散化并减少Num Bedrooms列中的状态。
在DSV中右击Customers表,选择“新建命名计 算”
在Customers表上创建一个命名计算
在对话框中输入计算列名Bedrooms、描述和表达 式
在Customers表上创建一个命名计 算
Case WHEN [NUM BEDROOMS] =1 THEN 'ONE' WHEN [NUM BEDROOMS] <=3 THEN 'TWO OR THREE' WHEN [NUM BEDROOMS] >=4 THEN 'FOUR OR MORE' ELSE 'NONE'
END
使用命名查询
可以使用数据源视图设计器中的“创建命名查询” 对话框向数据源视图添加命名查询。
内容包括
您最喜欢的导演
您最喜欢的男演员和女演员
年龄
性别
婚姻状况 有几个小孩 您家里有多少张床
•您的房子中有多少间浴室 •您最喜欢的爱好、兴趣领域是什么
您拥有多少辆汽车 •您的学历
在ssms中创建数据库
1 在ssms中创建数据库
2 从外部文件导入数据
2 从外部文件导入数据
从DSV中将列拖到结构树种即可实现多次将同一个 列添加到模型中
创建属性层次
若两个列间存在相关关系,在DMX中可以使用结 构Related to来说明。
改为本机上的数据库 服务器的名称
创建MovieClick数据源
在SSMS中创建MovieClick数据库,导入数据表 在BI Dev Studio中创建项目MovieClick 在MovieClick项目中建立数据源 建立数据源视图:本例的要点是建立数据源中多张
表之间的嵌套关系
如果一个事例表和一个嵌套表之间的关系不存在于 关系数据库中,则必须在DSV中指定该关系,否则 将无法将嵌套表添加到模型中
客户 ID 可以唯一地标识客户,并且使事例表与嵌 套表相关,因此,一般会将客户 ID 作为键列。
可以使用从人口统计信息中选择的列作为输入列, 将说明每位客户消费金额的列作为预测列。
可以生成一个挖掘模型,该模型可将人口统计信息 与某位客户在商店中的消费金额关联起来。可以使 用此模型作为有针对性的营销的基础。
3.3.2 使用数据挖掘向导
使用数据挖掘向导与使用DMX语言创建数据挖掘 结构/模型所需要的信息是相同的:选择算法、选 择数据源并指定源表的用法、选择表中的列并制定 这些列的用法、对数据挖掘模型命名。
指定表的类型:事例表或嵌套表
指定列的用法
指定了事例表和嵌套表后,可以确定要包括在挖掘 结构中的表的每一列的使用类型。如果没有指定列 的使用类型,则挖掘结构中将不会包含该列。
大家可以尝试在SSMS的相应数据库中通过建立数 据库关系图来建立表之间的关系
MovieClick数据源视图
使用DSV来浏览数据
使用命名计算
在DSV中可以创建命名计算、命名查询和视图,这 些操作并不会影响到原数据库中的数据
在DSV中,命名计算列是表中附加的虚列,所以可 以在自己的数据中挖掘派生信息,而不需要改变源 数据
tablesample (30 precent) pepeatable(1)
基于Customers表创建命名查询
在Customers表上创建一个命名查询,该 Customers表之包含拥有房子的客户。
由于这个表包含一个命名计算,所以必须将命名计 算手动添加到查询中
首先复制Bedrooms Named Calculation中的代 码
第3章 实践SQL Server数据挖掘
创建数据挖掘项目
在SQL Server 2019的程序目录中打开 进入BI Dev Studio,在文件菜单中选择“新
建”—“项目”
注意项目文件是保存在“我的文档”文件夹中的
新建项目对话框
打开解决方案资源管理器查看
MovieClick数据集
命名计算列包含一个名称、一个包含计算的SQL表 达式和一个可选的描述
使用命名计算
1 算术操作 可以使用+,-,*,/和%(求模)。例如创建利润列 [Sales Price]-[Item Cost] 2 数学函数 例:以对数的方法来规范化一个以指数级别增长的
列 Log([Sales Quantity]) 创建一个标志,判断实际值高于还是低于季度预算 Sign([Actual Expenses]-[Budgeted Expenses])
其次在DSV中右击然后选择“新建命名查询”
3.3 创建和编辑模型
3.3.1 结构和模型 挖掘结构包含所有列的数据类型和内容类型的定义,
但没有包含列的用法定义和使用的算法 挖掘模型包括挖掘算法及其相关的参数,还有来自
挖掘结构的列 有了挖掘结构的概念,可以很容易地对同一数据集
测试不同的假定
2019年11月,对微软的雇员进行调查。 调查询问了被调查者的电影观看行为、人口统计信
爱所喜欢的电影、演员和导演。 内容包括
多久看一次电影 多久租一次影片 家里有多少台电视机 谁通常会选择您观看的电影 您最喜欢的电影
MovieClick数据集
2019年11月,对微软的雇员进行调查。
设置属性的类型和离散化参数
多次将同一列添加到挖掘结构中
一个挖掘结构中可以包含多个模型,可能要用多种 不同的方法来针对某一特殊的列创建多个模型,目 的是为了查看这一列如何影响预测的结果。
例如可能想采用下面的方式来比较Age列是如何影 响预测结果的 把Age列作为连续的值 将Age列离散化为3桶、5桶或7桶
相关文档
最新文档