Excel是大家非常熟悉的表格工具,借助它可以实现日程工作中最原始的数据处理的基本的功能,此外通过 SQL Server插件的支持,我们也可以在Excel中实现数据挖掘的功能。
此篇将先介绍Excel数据挖掘中的数据准备工作下的相关功能。
对于Excel 2010和2013来说,需要安装SQL Server的Excel数据挖掘插件才可以实现数据挖掘的功能,下载地址:
http://www.microsoft.com/en-us/download/details.aspx?id=35578
下载的时候需要注意的是下载的语言版本和x86以及x64的版本要对应得上。
安装完成后,可以在开始屏幕找到示例数据链接:
打开示例数据,可以看到在Excel文件下示例数据在不同的Sheet中。
点击其中的Sheet,可以看到此篇演示需要用到的示例数据。这是一张经过组织的客户信息表,里面包含了客户的基本信息,比如婚姻状况,性别,收入以及教育程度等信息。此外还包含一个状态列记录这个用户是否购买了自行车。
在Ribbon工具栏中可以找到数据挖掘工具集DATA MINING。
此篇介绍的是Data Preparation数据准备下的三个功能:Explorer Data浏览数据, Clean Data清除数据(这里我不太认同官方的翻译,清理数据在这里可能更贴切些。)和Sample Data示例数据。
首先点击浏览数据,浏览数据可以帮助我们在第一时间内通过这个功能对数据进行很方便的浏览。
在第一个界面中指定数据的范围。默认选择第一个选项,是一个sheet下的所有数据,如果是第二个选项的意思是选中的数据。这里选择默认选项,点击下一步。
在接下来的界面中,任意指定数据的一列,比如Region,然后点击下一步。
可以看到根据此列生成的数据图表。
此外,如果在先前选择的是连续类型的列,这个图标会自动组织成离散样式的。
留意到Buckets,可以指定数值被打散成几列。
打散之后的列可以通过点击界面右下角的Add New Column按钮将离散的列附加到工作表中。
此外,留意界面做小角的两个按钮:
左边的按钮是让数据以离散的方式显示,所以当前面如果选中的是Age列的话,它会认为每一个年龄信息都是一个离散的值,所以编程了这个样子。右面的按钮是以连续的方式显示,选中这个方式后系统会认为数字列是连续类型的,所以会自动将连续类型的数字打散成离散的分组。
以上是对浏览数据的介绍,通过这个工具可以快速的对数据的情况有一个大体的了解,此外也可以通过离散化的方式向数据表中填加附加的列。
接下来介绍的是数据清理功能,分别是Outliers和Re-label。
首先介绍Outliers功能,这个功能可以帮助我们清理一些边缘数据,具体的功能请先看喜爱安的实现步骤。
点击Outliers,跟前面一样指定好范围之后,选中一个列。
跟浏览数据一样,可以看到不同Distance的数量分布。
通过拖动*的滑块,可以指定尾部的哪部分数据被清理掉。
继续往前滑动,可以扩大清理数据的范围。
点击下一步,指定如何处理这些数据,这里有三个选项,默认的是将值转换成Other,让它们都合并为一类,第二个选项是将值清空,第三个是将数据删除。这里选择第一个。
最后,指定划分划分之后的数据如何处理,也是有三个选项,一个是作为一个新列填加,第二个是将变更的数据拷贝到一个新的工作簿中,最后一个是直接在数据表中修改。这里默认选择第一个。
点击完成之后,可以看到根据Distance列附加的新列被加到了工作表中,并且,刚才指定清理掉的数据全部被转换成了Other以方便后续的处理。
这个功能可以理解为清理长尾数据,记得有一本书是书长尾理论的,它讲的是如何关注长尾部分的数据从而获取更大的收益。当然还有很多时候我们为了初步就获得数据的直观和大体的认识是不需要关注长尾部分的数据的,所以这个时候就可以借助这个功能来将其清理掉。
除了对长尾部分数据的清理,对于连续型的值,比如年龄,通常只有年龄段中间部分的数据才是我们需要关注的,所以当我们选择年龄时,可以看到界面变成下面的样子。
通过拖动两边的滑块,可以指定把哪部分数据划分到需要清理的数据。
接下来介绍Re-Label功能,这是一个很实用的功能,通过这个功能我们可以将数据打成另一个标签。
点击Re-Label,指定好数据范围之后,还是跟以前一样,选中一个列。
在下面的界面中,可以将这一列不同的值指定为新的标签。
比如,像下图一样将不同的距离指定成不同的远近标记。
最后,跟上一个功能一样,指定新标签的填加方式。
点击完成,可以看到新的列作为新标签列填加到了数据表中。
这里有一个问题是,对于连续型的数据,比如年龄要如何设定,因为我们不可能将每一个岁数,比如21岁另启一个标签,22岁再指定一个标签。所以对于这类连续型数据我们首先要做的是利用前面介绍的浏览数据功能将数据先转换成离散的,然后再通过这个功能将离散的值指派为另一个标签,比如0-6幼年,7-15少年等。
最后,介绍示例数据功能,再次吐槽一下官方翻译,Sample这里根据环境应该是样本才对,所以这个功能翻译成样本数据更贴切,因为它本身就是抽取样本数据的。
点击这个按钮后,在第一个界面中会给我们两个选择,一个是随机样本数据抽取,一个是过度样本数据抽取。
先来看第一个抽取方式,很简单,根据一定的百分比或者指定的行数来进行抽取。
设定好之后,可以指定把样本数据放到哪里,同时也可以指定将没有抽中的数据放到哪里。
点击完成之后,可以看到被抽中和没有被抽中的数据。
接下来过度样本数据抽取介绍起来可能比较绕口,但我们可以这样理解,比如当我们收到这样的需求,让你从数据中抽取1000行数据,但是要求这1000行数据中,已婚的比例要占到30%,当然,实际数据集中的数据,已婚的比例有可能是15%,也有可能是50%。所以如何让这1000行数据中恰巧占30%的比例,就可以通过这个功能来实现。
比如根据上面的例子,我们将已婚比例设置成30%,样本大小设置为10,这里为了演示没有设置成1000主要是为了后面方便结果的验证。
点击下一步,抽样的数据会被填加到一个新的工作表中,这里为其取一个名字。
点击完成之后,我们可以通过这10行数据看到这个功能的结果。
相信通过此篇的阅读,你已经对Excel数据挖掘插件有了大概的了解。数据的准备是数据挖掘中最初始的阶段,这一篇简单的介绍了在Excel的数据挖掘插件中的这三个功能。值得一提的是,此篇介绍的这些功能是完全在Excel中作为Client端完成的,不需要SQL Server分析服务的支持。下篇将要介绍的数据挖掘功能是需要SQL Server分析服务做支持的。