论文部分内容阅读
摘要:使用SQL Server进行数据挖掘时,透彻理解相关技术及产品的使用特点、工作机制对提升挖掘效果具有重要意义。遵循CRISP-DM标准数据挖掘流程,以UCI数据集Adult分类任务为案例,研究了在MicrosoftBI技术框架下实现SQL Serv-er数据挖掘的基本过程、方法和特点,探索了重要图表工具的工作机制。实验表明SQLServer数据挖掘技术易于使用、性能良好,并能和SSIS等很好地协同工作。
关键词:数据挖掘;挖掘模型;决策树;提升图;分类矩阵;混淆矩阵;SQLServer;CRISP-DM
中图分类号:TP311.13 文献标识码:A
文章编号:1009-3044(2019)32-0027-03
1概述
SQL Server数据挖掘因具易于使用且效果良好等特点而受到欢迎,但易于使用的背后隐藏着复杂的内部机制,要获得最佳挖掘效果,需要对相关技术和产品的使用特点、工作机制等有较为透彻的理解,但目前这方面的研究较为缺乏。本文通过实例研究在Microsoft BI技术框架下实现SQL Server数据挖掘的基本过程、方法和特点,研究数据为UCI机器学习数据库中的Aduh数据集,研究内容贯穿整个CRISP-DM标准定义的数据挖掘项目生命周期(业务理解、数据理解、数据准备、建模、评估、部署),重点探索数据准备、建模、评估阶段的内容及重要图表工具的工作机制,最后对SQL Server数据挖掘的易用性、挖掘性能、与SSIS技术的配合等方面进行评价。
2业务理解、数据理解
本文数据挖掘任务是根据人口普查数据预测一个人的年收入是否超过5万美元。所选数据为UCI机器学习数据库中的Adult数据集,该数据集从美国1994年人口普查数据库中抽取而来,共48842条记录,已经划分为训练数据和测试数据,分别存储于平面文件adult.data(32561条)、adult.test(16281条)
该数据集属于分类数据集,可预测列为incomef年收入是否超過5万美元),可用作输入列的属性共有14个:age(年龄)、workclass(T作类别)、fnlwgt(序号)、education(受教育程度)、edu-cation_num(受教育时间)、marital_status(婚姻状况)、occupation(职业)、relationship(家庭关系)、race(种族)、sex!(性别)、capital_gain(资本收益)、capital_loss(资本损失)、hours_per_week(每周工作小时数)、naive_country(原籍)。
本文预测结果可用于很多场合,如:为政府研究居民收入状况并完善税收、社会保障以及各种民生制度提供一定的参考,针对高收入人群定制高端商业活动等。
3数据准备
首先将数据导入SQL Server数据库,然后进行数据预处理。
1)建立SQL Server数据库
建立SQL Server数据库,在库中建立保存训练数据和测试数据的表Adult及Adult_test,表结构和数据源结构一一对应,另外增加IDENTITY自增型字段id用作表的主键。因为每个人的id不能重复,因此两张表id字段的标识种子需要根据数据量设置足够大的间隔。
2)数据导入及预处理
使用SSDT(SQL Server Data Toolsl建立Integration Services项目,该项目包含二个SSIS包,分别用于训练数据和测试数据的导人及预处理,流程见图1。
(1)将数据导人SQL Server数据库。名为“数据导人”的控制流节点是一个数据流任务。首先使用“平面文件流”控件连接要导入的平面文件adult.data(adult.test),然后通过“数据转换”控件将其中的文本列转换为Unicode字符串,最后使用“OLE DB目标”控件将数据导入表Adult(Adult_test)。
(2)数据预处理。通过对数据的浏览及探索,了解数据的分布及质量情况,然后针对发现的问题对数据进行清洗、转换、规格化等处理。
①删除字符串前后空格。用于删除income字段数据的前导空格。
②处理缺失项。缺失值已用“?”代替,直接删除有缺失值的记录。
③处理不一致.1生数据。Adult_test表中income字段值是“
关键词:数据挖掘;挖掘模型;决策树;提升图;分类矩阵;混淆矩阵;SQLServer;CRISP-DM
中图分类号:TP311.13 文献标识码:A
文章编号:1009-3044(2019)32-0027-03
1概述
SQL Server数据挖掘因具易于使用且效果良好等特点而受到欢迎,但易于使用的背后隐藏着复杂的内部机制,要获得最佳挖掘效果,需要对相关技术和产品的使用特点、工作机制等有较为透彻的理解,但目前这方面的研究较为缺乏。本文通过实例研究在Microsoft BI技术框架下实现SQL Server数据挖掘的基本过程、方法和特点,研究数据为UCI机器学习数据库中的Aduh数据集,研究内容贯穿整个CRISP-DM标准定义的数据挖掘项目生命周期(业务理解、数据理解、数据准备、建模、评估、部署),重点探索数据准备、建模、评估阶段的内容及重要图表工具的工作机制,最后对SQL Server数据挖掘的易用性、挖掘性能、与SSIS技术的配合等方面进行评价。
2业务理解、数据理解
本文数据挖掘任务是根据人口普查数据预测一个人的年收入是否超过5万美元。所选数据为UCI机器学习数据库中的Adult数据集,该数据集从美国1994年人口普查数据库中抽取而来,共48842条记录,已经划分为训练数据和测试数据,分别存储于平面文件adult.data(32561条)、adult.test(16281条)
该数据集属于分类数据集,可预测列为incomef年收入是否超過5万美元),可用作输入列的属性共有14个:age(年龄)、workclass(T作类别)、fnlwgt(序号)、education(受教育程度)、edu-cation_num(受教育时间)、marital_status(婚姻状况)、occupation(职业)、relationship(家庭关系)、race(种族)、sex!(性别)、capital_gain(资本收益)、capital_loss(资本损失)、hours_per_week(每周工作小时数)、naive_country(原籍)。
本文预测结果可用于很多场合,如:为政府研究居民收入状况并完善税收、社会保障以及各种民生制度提供一定的参考,针对高收入人群定制高端商业活动等。
3数据准备
首先将数据导入SQL Server数据库,然后进行数据预处理。
1)建立SQL Server数据库
建立SQL Server数据库,在库中建立保存训练数据和测试数据的表Adult及Adult_test,表结构和数据源结构一一对应,另外增加IDENTITY自增型字段id用作表的主键。因为每个人的id不能重复,因此两张表id字段的标识种子需要根据数据量设置足够大的间隔。
2)数据导入及预处理
使用SSDT(SQL Server Data Toolsl建立Integration Services项目,该项目包含二个SSIS包,分别用于训练数据和测试数据的导人及预处理,流程见图1。
(1)将数据导人SQL Server数据库。名为“数据导人”的控制流节点是一个数据流任务。首先使用“平面文件流”控件连接要导入的平面文件adult.data(adult.test),然后通过“数据转换”控件将其中的文本列转换为Unicode字符串,最后使用“OLE DB目标”控件将数据导入表Adult(Adult_test)。
(2)数据预处理。通过对数据的浏览及探索,了解数据的分布及质量情况,然后针对发现的问题对数据进行清洗、转换、规格化等处理。
①删除字符串前后空格。用于删除income字段数据的前导空格。
②处理缺失项。缺失值已用“?”代替,直接删除有缺失值的记录。
③处理不一致.1生数据。Adult_test表中income字段值是“