属性子集选择的基本启发方法_一文看懂数据预处理最重要的3种思想和方法

导读:本文我们考虑应当采用哪些预处理步骤,让数据更加适合挖掘。数据预处理是一个广泛的领域,包含大量以复杂的方式相关联的不同策略和技术。我们将讨论一些最重要的思想和方法,并试图指出它们之间的相互联系。

作者:陈封能(Pang-Ning Tan)、迈克尔·斯坦巴赫(Michael Steinbach)等

来源:华章科技

7a72f6a42ed570eae7b8bdf893684812.png

这些重要的思想和方法,具体地说包括:

  • 聚集
  • 抽样
  • 维归约
  • 特征子集选择
  • 特征创建
  • 离散化和二元化
  • 变量变换

粗略地说,这些主题分为两类,即选择分析所需要的数据对象和属性,以及创建/改变属性。这两种情况的目标都是改善数据挖掘分析工作,减少时间,降低成本,提高质量。

本文将讨论聚集、抽样、维归约的细节,其余主题请关注大数据DT后续文章,或阅读《数据挖掘导论》(原书第2版)一书第2.3节。

术语注记:在下面的内容中,我们有时根据习惯用法,使用特征(feature)或变量(variable)指代属性(attribute)。

01 聚集

有时,“少就是多”,而聚集就是如此。聚集(aggregation)将两个或多个对象合并成单个对象。考虑一个由事务(数据对象)组成的数据集,它记录一年中不同日期在各地(Minneapolis Chicago……)商店的商品日销售情况,见表2.4。

对该数据集的事务进行聚集的一种方法是,用一个商店的事务替换该商店的所有事务。这把每天出现在一个商店的成百上千个事务记录归约成单个日事务,而每天的数据对象的个数减少为商店的个数。

3dd5161a5d733c133f3f74e6b26b3e44.png

▲表2.4 包含顾客购买信息的数据集

在这里,一个显而易见的问题是如何创建聚集事务,即在创建代表单个商店或日期的聚集事务时,如何合并所有记录的每个属性的值。定量属性(如价格)通常通过求和或求平均值进行聚集。定性属性(如商品)可以忽略,也可以用更高层次的类别来概括,例如电视和电子产品。

表2.4中的数据也可以看作多维数组,其中每个属性是一个维。从这个角度,聚集是删除属性(如商品类型)的过程,或者是压缩特定属性不同值个数的过程,如将日期的可能值从365天压缩到12个月。这种类型的聚集通常用于联机分析处理(OnLine Analytical Processing,OLAP),OLAP的引用在参考文献中给出。

聚集的动机有多种。

首先,数据归约导致的较小数据集需要较少的内存和处理时间,因此可以使用开销更大的数据挖掘算法。

其次,通过高层而不是低层数据视图,聚集起到了范围或标度转换的作用。在前面的例子中,在商店位置和月份上的聚集给出数据按月、按商店,而不是按天、按商品的视图。

最后,对象或属性群的行为通常比单个对象或属性的行为更加稳定。这反映了统计学事实:相对于被聚集的单个对象,诸如平均值、总数等聚集量具有较小的变异性。

对于总数,实际变差大于单个对象的(平均)变差,但是变差的百分比较小;而对于均值,实际变差小于单个对象的(平均)变差。聚集的缺点是可能丢失有趣的细节。在商店的例子中,按月的聚集就丢失了星期几具有最高销售额的信息。

例2.7 澳大利亚降水量

该例基于澳大利亚从1982年到1993年的降水量。我们把澳大利亚国土按经纬度0.5°乘以0.5°大小分成3030个网格。图2.8a的直方图显示了这些网格单元上的平均月降水量的标准差。而图2.8b的直方图显示了相同位置的平均年降水量的标准差。可见,平均年降水量比平均月降水量的变异性小。所有降水量的测量(以及它们的标准差)都以厘米(cm)为单位。

f97fe0f4d65b85e41c65967b12e3244b.png

▲图2.8 澳大利亚从1982年到1993年月和年降水量标准差的直方图

02 抽样

抽样是一种选择数据对象子集进行分析的常用方法。在统计学中,抽样长期用于数据的事先调查和最终的数据分析。在数据挖掘中,抽样也非常有用。

然而,在统计学和数据挖掘中,抽样的动机并不相同。统计学家使用抽样的原因是获取感兴趣的整个数据集的代价太高并且太费时间,而数据挖掘人员进行抽样,通常是因为处理所有数据所需的内存或时间方面的计算成本太高。在某些情况下,使用抽样的算法可以压缩数据量,以便可以使用更好但开销较大的数据挖掘算法。

有效抽样的主要原理如下:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。反过来说,若样本近似地具有与原数据集相同的(感兴趣的)性质,则称样本是有代表性的。如果数据对象的均值(平均值)是感兴趣的性质,而样本具有近似于原数据集的均值,则样本就是有代表性的。

由于抽样是一个统计过程,特定样本的代表性是不一样的,因此最好能做的就是选择一个抽样方案,以确保以很高的概率得到有代表性的样本。如下所述,这涉及选择适当的样本容量以及抽样技术。

1. 抽样方法

有许多抽样技术,但是这里只介绍少量最基本的抽样技术及其变种。最简单的抽样是简单随机抽样(simple random sampling)。对于这种抽样,选取任何特定项的概率相等。

随机抽样有两种变种(其他抽样技术也一样):

  1. 无放回抽样——每个选中项立即从构成总体的所有对象集中删除;
  2. 有放回抽样——对象被选中时不从总体中删除。在有放回抽样中,相同的对象可能被多次抽出。

当样本与数据集相比相对较小时,两种方法产生的样本差别不大。但是对于分析,有放回抽样较为简单,因为在抽样过程中,每个对象被选中的概率保持不变。

当总体由不同类型的对象组成并且每种类型的对象数量差别很大时,简单随机抽样不能充分地代表不太频繁出现的对象类型。在分析需要所有类型的代表时,这可能出现问题。例如,当为稀有类构建分类模型时,样本中适当地提供稀有类是至关重要的,因此需要提供具有不同频率的感兴趣的项的抽样方案。

分层抽样(stratified sampling)就是这样的方法,它从预先指定的组开始抽样。在最简单的情况下,尽管每组的大小不同,但是从每组抽取的对象个数相同。另一种变种是从每一组对象抽取的样本数量正比于该组的大小。

例2.8抽样与信息损失

一旦选定抽样技术,就需要选择样本容量。较大的样本容量增大了样本具有代表性的概率,但也抵消了抽样带来的许多好处。反过来,使用较小容量的样本,可能丢失模式或检测出错误的模式。

图2.9a显示了包含8000个二维点的数据集,而图2.9b和图2.9c显示了从该数据集抽取的容量分别为2000和500的样本。该数据集的大部分结构都出现在2000个点的样本中,但是许多结构在500个点的样本中丢失了。

7b15f009a71b0bde92fe14fd0905ce7f.png

▲图2.9 抽样丢失结构的例子

例2.9确定合适的样本容量

为了说明确定合适的样本容量需要系统的方法,考虑下面的任务。

给定一个数据集,它包含少量容量大致相等的组。从每组至少找出一个代表点。假定每个组内的对象高度相似,但是不同组中的对象不太相似。图2.10a显示了一个理想簇(组)的集合,这些点可能从中抽取。

a656bb7f6f51cde61204309ccc1b11a5.png

▲图2.10 从10个组中找出具有代表性的点

使用抽样可以有效地解决该问题。一种方法是取数据点的一个小样本,逐对计算点之间的相似性,然后形成高度相似的点组。从每个点组取一个点,则可以得到具有代表性的点的集合。然而,按照该方法,我们需要确定样本的容量,它以很高的概率确保得到期望的结果,即从每个簇至少找出一个代表点。

图2.10b显示了随着样本容量从10变化到60,从10个组的每一个组中得到一个对象的概率。有趣的是,使用容量为20的样本,只有很小的机会(20%)得到包含所有10个组的样本。即便使用容量为30的样本,得到不包含所有10个组中对象的样本的概率也很高(几乎40%)。

2. 渐进抽样

由于可能很难确定合适的样本容量,因此有时需要使用自适应(adaptive)或渐进抽样(progressive sampling)方法。这些方法从一个小样本开始,然后增加样本容量直至得到足够容量的样本。尽管这种技术不需要在一开始就确定正确的样本容量,但是需要评估样本的方法,确定它是否足够大。

例如,假定使用渐进抽样来学习一个预测模型。尽管预测模型的准确率随样本容量的增加而增加,但是在某一点准确率的增加趋于稳定。我们希望在稳定点停止增加样本容量。通过掌握模型准确率随样本逐渐增大的变化情况,并通过选取接近于当前容量的其他样本,我们可以估计出与稳定点的接近程度,从而停止抽样。

03 维归约

数据集可能包含大量特征。考虑一个文档的集合,其中每个文档是一个向量,其分量是文档中每个词出现的频率。在这种情况下,通常有成千上万的属性(分量),每个代表词汇表中的一个词。

再看一个例子,考虑包含过去30年各种股票日收盘价的时间序列数据集。在这种情况下,属性是特定日期的价格,也数以千计。

维归约有多方面的好处。关键的好处是,如果维度(数据属性的个数)较低,许多数据挖掘算法的效果就会更好。部分是因为维归约可以删除不相关的特征并降低噪声,另一部分是因为维灾难。(维灾难在下面解释。)

还有一个好处是维归约可以使模型更容易理解,因为模型可能只涉及较少的属性。此外,维归约也可以更容易让数据可视化。即使维归约没有将数据归约到二维或三维,数据也可以通过观察属性对或三元组属性达到可视化,并且这种组合的数目也会大大减少。最后,使用维归约降低了数据挖掘算法的时间和内存需求。

术语“维归约”通常用于这样的技术:通过创建新属性,将一些旧属性合并在一起以降低数据集的维度。通过选择旧属性的子集得到新属性,这种维归约称为特征子集选择或特征选择。

下面简单介绍两个重要的主题:维灾难和基于线性代数方法(如主成分分析)的维归约技术。

1. 维灾难

维灾难是指这样的现象:随着数据维度的增加,许多数据分析变得非常困难。特别是随着维度增加,数据在它所占据的空间中越来越稀疏。因此,我们观测到的数据对象很可能不是总体数据对象的代表性样本。

对于分类,这可能意味着没有足够的数据对象来创建模型,将所有可能的对象可靠地指派到一个类。对于聚类,点之间的密度和距离的定义(对聚类是至关重要的)失去了意义。

结果是,对于高维数据,许多分类和聚类算法(以及其他的数据分析算法)都麻烦缠身——分类准确率降低,聚类质量下降。

2. 维归约的线性代数技术

维归约的一些最常用的方法是使用线性代数技术,将数据由高维空间投影到低维空间,特别是对于连续数据。

主成分分析(Principal Component Analysis,PCA)是一种用于连续属性的线性代数技术,它找出新的属性(主成分),这些属性是原属性的线性组合,是相互正交的(orthogonal),并且捕获了数据的最大变差。例如,前两个主成分是两个正交属性,是原属性的线性组合,尽可能多地捕获了数据的变差。

奇异值分解(Singular Value Decomposition,SVD)是一种线性代数技术,它与PCA有关,并且也用于维归约。请参考附录A和B获取更多细节。

关于作者:陈封能(Pang-Ning Tan) ,密歇根州立大学计算机科学与工程系教授,主要研究方向是数据挖掘、数据库系统、网络空间安全、网络分析等。

本文摘编自《数据挖掘导论》(原书第2版),经出版方授权发布。

dc817b9f21a2c362d87a39a63d47ca72.png

延伸阅读《数据挖掘导论》(原书第2版)

推荐语:本书为斯坦福大学、密歇根州立大学、明尼苏达大学、得克萨斯大学等知名高校的数据挖掘课程教材。从算法的角度介绍数据挖掘所使用的主要原理与技术。所涵盖的主题包括:数据预处理、预测建模、关联分析、聚类分析、异常检测和避免错误发现。通过介绍每个主题的基本概念和算法,为读者提供将数据挖掘应用于实际问题所需的必要背景以及方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/525921.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

荣耀系统更新服务器不可用,荣耀确认系统更新方式 4月1日前发布的机型固件升级由华为负责...

近期,根据华为陆续发布的荣耀老机型鸿蒙HarmonyOS的路线图来看,荣耀手机 、平板等12款机型已经赫然在列。而随后,也引起了网友们对于荣耀产品系统更新的讨论,毕竟华为与荣耀分家之后,对于荣耀产品的系统更新一直是不少…

西建大历年电子与通信工程复试真题_学姐分享2020年西安电子科技大学电子与通信工程考研初复试经验指导...

大家好,我是西安电子科技大学电子工程学院上岸的研一学姐,专业是电子与通信工程,考研一路走来,通过自己摸索,掌握了一些必不可少的经验,写此经验贴,如果看到的学弟学妹读完之后会有一点收获&…

一个服务器上放多个网站,一个云服务器放多个网站吗

一个云服务器放多个网站吗 内容精选换一换如果您使用华为云云速邮箱作为企业邮箱,并在Web端管理使用,此时需要为邮箱绑定域名,通过域名访问网页版邮箱。本节介绍使用华为云云速邮箱,且网站域名解析至中国大陆节点服务器的网站备案…

electron开发_基于Electron+React的跨平台应用程序基础开发框架

介绍Electron React Boilerplate是Github上超过12kstar的可扩展跨平台应用程序开发框架,Electron 是基于HTMLCSSJavascript等 Web 技术创建原生程序的框架,它已经帮我们搞定了最难搞的部分,而Electron React Boilerplate在其基础上进行了扩展…

挂机宝和网站服务器,挂机宝SSD硬盘vs普通硬盘访问官网哪个快?

原标题:挂机宝SSD硬盘vs普通硬盘访问官网哪个快?秒开云硬盘篇:SSD固态硬盘vs机械硬盘硬盘读写速度越快结构类型。网络服务器中的固态盘(SSD)比SATA磁盘驱动器给予更高的电脑磁盘读/写强度,也称之为键入/导出(I/O)性能指标。具备SS…

++递归 字符串全排列_超全递归技巧整理,这次一起拿下递归

0. 前言大家好,我是多选参数的程序锅,一个正在 neng 操作系统、学数据结构和算法以及 Java 的硬核菜鸡。本篇将主要介绍递归相关的内容,下面是本篇的内容提纲。1. 递归基础★ 争哥:从我自己学习数据结构和算法的经历来看&#xff…

图片合成gif_谈谈有哪些好用的制作GIF的方式

今天咱们谈谈计算机上几种制作 GIF 的方式,而且他们都是免费的,但可能需要你会一点计算机操作技能。本文会简单的介绍一些常用的GIF软件,比较一下功能和上手程度。常见的GIF录制方式大概有这么几种方式: 直接录制 , 视频转GIF &am…

提权命令_利用Linux文本操作命令ed进行提权

本文我将为大家介绍一个面向行的文本编辑器命令“ed”,它主要用于生成,显示,更改和操作文本文件。所有ed命令都在行或行范围内执行操作;例如,“d”命令删除行;“m”命令移动行,“t”命令复制行等…

接口有个电池标志_有人说手机快充毁电池,真的假的?电池快充的原理是什么?...

出门只带一部手机,已成为多数人的生活现状,电池作为手机的心脏,最怕的就是找不到地方“补充能量”但越来越先进的手机“快充”技术,让“充电5分钟,通话2小时”逐渐成为了现实。那么用手机快充时,充电头和充…

c++ string 回文串_C++刷题——2802: 判断字符串是否为回文

Description编写程序,判断输入的一个字符串是否为回文。若是则输出“Yes”,否则输出“No”。所谓回文是指順读和倒读都是一样的字符串。InputOutputSample InputabcddcbaSample OutputYes/* Copyright (c) 2014, 烟台大学计算机学院* All rights reserve…

python 网络运维框架scape_“python scape 教程“求PhotoScape X Pro for Mac软件

ArcGIS知乎上有哪些干货可以推荐埃里克.卡普《本书书名无法描述本书内容一场逗你玩的探险》(英文名Does Santa Exist?——A Philosophical Investigation》)推荐理由:本书的作者是《生活大爆炸》的编剧,如果你喜欢《生活大爆炸》,那么这本书…

KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(32)

接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(31) 上一回完成了对drm_gem_open函数的解析。本回开始对drm_gem_handle_create_tail函数进行解析。 为什么突然出现了个drm_gem_handle_create_tail函数?别忘了当初我们是在KWin、libdrm、DRM从上到下…

v8引擎和v12引擎_v8和v12发动机的区别

v12发动机的汽缸数量更多,运转平顺性更好。v12发动机与v8发动机的排量是无法对比的,有些v8发动机的排量比v12发动机的排量都要大。v8发动机和v12发动机只能在一些超跑或高性能汽车上见到。v12和v8发动机的v代表这种发动机的汽缸呈v字形排列,并…

python二重积分0到正无穷_python函数的数值二重积分

我有点困在一个函数上,我试图通过scipy,python进行数值积分。在为了简单起见,我将函数定义为:integral f(x,y) SUM[double integral(axby)dxdy]a和b是常数,但对于每个积分的方程,它们是不同的。我已经将每个…

10进制转换16进制补足0_信息技术教师资格必考内容——进制换算(一)

前两天给大家整理了信息技术教师资格笔试科目三的必考内容,戳蓝字回顾弄懂这些,信息技术教师资格笔试提高30分!信息技术教师资格笔试——这道20分的题居然这么简单!有小伙伴问还有哪些必考内容进制换算也是必考内容,来…

mysql中正则表达式的用法_mysql之正则表达式的用法

正则表达式用来匹配文本的特殊字符集合格式:在where查询中使用regexp关键字,后面接正则表达式字符正则表达式与like的区别like匹配整列数据regexp可以匹配列中任意位置的字符,更加灵活,更强大。用like模糊匹配,查询字段…

mysql more命令_more命令

more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字…

mysql 删除数据表中数据_Mysql-删除数据表-三种方式详解

Mysql 删除数据表的三种方式详解用法:1、当你不再需要该表时, 用 drop;2、当你仍要保留该表,但要删除所有记录时, 用 truncate;3、当你要删除部分记录或者有可能会后悔的话, 用 delete。删除程度可从强到弱如下排列&am…

mysql 如何添加索引_MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】...

MySQL如何创建一个好索引?创建索引的5条建议过滤效率高的放前面对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样。查询时,如果第一列能够排除的越多,那么后面列需要判断的行…

mysql的存储引擎详解_MySQL常见存储引擎详解

通过执行show engines命令查看MySQL中支持哪些存储引擎MySQL存储引擎属性对比设置表的存储引擎的方法在my.cnf配置文件中设置default-storage-engine参数表示设置默认存储引擎在MySQL的连接上设置当前连接的默认存储引擎mysql> set default_storage_engineinnodb;创建表的时…