【机器学习】数据预处理 整理

加深理解数据挖掘概念及数据的一些理论内容,会让你对数据有直观的认识,保持清晰的目的性,在之后的数据挖掘工作中如鱼得水。

数据挖掘到底是啥?官方定义,在大型数据存储库中,自动地发现有用信息的过程。

数据挖掘的一般过程:
  1、 数据预处理
  2、 数据挖掘
  3、 后处理

1、预处理。通常数据挖掘需要较大的数据量,这些数据可能格式不同,存在缺失值或无效值,即是数据清洗处理这些‘脏’数据。
数据预处理是不可或缺的一步。通常会占用很大部分时间,但必须细心去做,保证数据输入的质量。

至于数据挖掘和后处理相对来说就容易理解多了。
完成数据预处理,通常进行的特征的构造,然后放到特定的模型中去计算,利用某种标准去评判不同模型或组合模型的表现,
最后确定一个最合适的模型用于后处理。后处理的过程相当于已经发现了我们想要的模式,我们会去应用它或者用合适的方式将其表示出来。

数据挖掘的任务:数据挖掘的目标,那就是‘模式’。那具体它是啥?
一种是预测任务。
是给定的目标属性,预测目标的对应的一些特定属性。如果该属性是离散值,称为‘分类’,是连续值,称之为‘回归’。

另一种是描述任务。
指找出数据间的潜在的关联模式。比方说两个数据存在强关联的关系,这里就得提到那个大数据经常讲的啤酒尿布的故事,
通过数据分析,发现买尿布的男性通常也会买点啤酒,那么商家根据这个可以将这两种商品打包出售来提高业绩,
另外一个非常重要的就是聚类分析,是非常频繁的一种分析,旨在发现紧密相关的观测值组群,
可以再没有标签的情况下将所有的数据分为合适的几类来进行分析或降维。
其他的描述任务还有异常检测,其过程类似于聚类的反过程,聚类将相似的数据聚合在一起,而异常检测将离群太远的点给剔除出来。

====================================================================
数据的内容。
一、数据类型。

所谓的数据集通常是指一堆数据对象的集合,而所谓数据对象就是用一组刻画对象基本特征属性的描述。

数据对象,一组刻画对象基本特征属性的描述。
所谓属性,指对象的性质或特性,可以随对象或者时间的变化而变化。
对于属性的描述需要根据属性的类型来确定,最常见的属性类型包括以下四种:
  1、标称型。这种属性的值仅用作区分不同对象,不存在其他任何意义,比如说名字或者ID。
  2、序数型。这种属性的值提供了确定对象序的信息,比如说成绩或者街道号码。
  3、区间型。这种属性的值的差值是有意义的,比如说摄氏或者华氏温度。
  4、比率型。这种属性的值的差值和比率都是有意义的,比如说绝对温度和年龄等。

其中标称型和序数型,通常称为分类属性,
  标称型属性,由于其只用作区分,所以对该属性可进行任何一对一变换都可以
  序数型属性,由于它的值包含了对象序的信息,因此对其做变换的时候需要进行保序变换。
区间型和比率型则称之为定量属性,
  区间型属性,由于其只有差值存在意义,所以可以对其进行任意的线性变换,
  比率型属性,由于其比率存在意义,所以他可以接受的变换就是同乘一个数,这样比率的值不会变。

数据集最重要的属性就是维度、稀疏性和分辨率,这几个概念相对还是容易理解的。

维度,可以理解为数据对象属性的数目,维度越高,意味着信息浓度越高,维度太高,计算压力大,所以需要进行维归约的操作。
稀疏性,某些数据集,虽然属性很多,但绝大部分的属性值都为0,则称之为稀疏的。稀疏性不一定是缺点,只要存储非0项即可,比如说SVM分类又称为稀疏核机。
分辨率,指划分尺度的不同通常能带来不同的结果。举例:在10e-10量级观察物品,得到物质由分子和原子组成;
如果到10e-15量级,发现还可以分成原子核与电子,再往下走,又可以得到夸克,所以需要根据目标去选择合适的分辨率。

二、数据的质量
数据采集过程中,由于各种原因,会出现测量的误差,随机部分通常称之为噪声,而系统部分称之为伪像。
这些误差的存在,有可能对分析过程造成很大的影响。所以高质量的数据来源往往是数据挖掘成功重要的先决条件。
当然如果实在不行,也可以通过一些办法来努力提高数据的质量,这就是数据预处理。

三、数据预处理
主要目的是提高数据质量,进而改善数据挖掘工作,降低成本提高效率。
主要手段分两种:选择分析所需的数据对象和属性;创造或改变属性。接下来我们依次介绍常见的几种预处理方法。

1 聚集/聚合/聚类
把相关或类似的数据对象集合到一起,常用在数据探索阶段;
比如做一个客户购买行为预测,通常会给你之前一段时间的客户行为,具体分析每一天其实意义不大的,通常会选择对客户在某个时间窗口内行为进行汇总,
或者把客户针对目标商品的操作进行一个聚合。另外,聚集还有一个功能就是可以改变数据的分辨率,以适应不同目的的数据挖掘工作。

2 抽样
指按照一定的规律从数据集中选择一定的数据对象进行处理。
比较常见的情况是数据量很大,整个处理很费劲,通常会抽样一定样本量的数据用来验证模型的可行性。
最常见的抽样方法通常是随机抽样,如果数据是非对称的,通常采取分层抽样,因为随机抽样有可能把稀疏样本忽视掉(给淹没了)。

3 维归约/降维
降低数据集的维度,减少计算量。最简单的维归约方法就是去除无效或不相关的特征。此外也有一些数学方法进行降维,比如说主成分分析(PCA)和奇异值分解(SVD)。

4 特征子集的选择
维归约可去除一部分冗余的特征,但很多时候冗余的特征并不是我们靠经验就可以全部筛选出来的。
这时,一方面我们依靠某些算法计算特征的重要程度来进行特征的筛选,比如树的一些算法。
另一方面如果计算资源足够,可以尝试不同的特征组合,选择效果最好的特征组合用于最后的数据挖掘任务。
当然,也有算法通过赋予特征权值的方法来进行特征的筛选,比如说支持向量机等。

5 特征的创建
做数据挖掘都会把特征当做数据挖掘中最重要的东西,合适的特征及其组合,通常比所谓更加高级的算法要重要的多。
它可以更直观迅速地提升数据挖掘的效果。那么特征的创建当然包含上面所说的一个特征选择的过程,
此外,有时建立新的特征,比如对现有特征进行一定的处理,用现在特征值的平方作为新的特征,可以看到数据和目标变量之间是否存在二次关系。
还有就是把数据映射到新的空间,最常见的是傅里叶分析,把时间谱上的数据映射到频谱上,就可以从杂乱无序的数据中寻找到规律。

6 离散化和二元化
离散化和二元化是数据挖掘中最常见的手段。
离散化,对于一些连续属性可以根据一定的标准将它转换成一个分类属性,比如年龄属性,可定义小于18为未成年,小于30为年轻人,小于50为中年人,大于50为老年人。
其中需要注意的是分类的组数和标准,常见的有等宽和等频率离散化,具体还是要根据实际场景进行选择。
二元化,就好理解了,二分类属性自不必说,对于对分类的属性,可利用多个二元变量的组合来表示不同的分类情况。

7 变量变换 涉及两种情况
一是简单的数值变换,只考虑属性是否是序数型,做变换时是否需要保序;
二是规范化和标准化,规范化通常指算法对变量的区间有一定的要求,所以需要通过放缩使其落在对应的区间内,
而标准化则是为了避免某些数值偏大的属性影响或决定结果,将数据转换成一个均值0标准差1的新变量。

四、相似性和相异性度量
是数据挖掘中非常重要的衡量标准,尤其是聚类算法和异常检测,据此进行类的划分以及异常点的判断,介绍一些最常见的相似性及相异性度量。

最最最常见的莫过于距离了,有一个闽科夫斯基距离
r为2时是欧几里得距离,r为1时是曼哈顿距离,各个维度上距离之和,r趋向于无穷时,就是各维度间最大的那个距离。
选择不同范数的距离都可以作为数据相异性的标准,距离越大则相异性越大。

而相似度比较常见的有两种,Jaccard系数和余弦相似度。
Jaccard相似度通常用来处理非对称的二元属性对象,因为只针对其中稀疏的属性,所以可以有效防止考虑两种属性计算相似度所有样本都相似的情况。
由于相似度通常是落在0到1这个区间内的,所以很自然的想到用三角函数来表征相似度
两个向量的点乘除以两个向量的模,这样求得的就是两个向量夹角的余弦值,两个向量重合时相似度最大为1,垂直是相似度最小为0。

===================================================================================

数据预处理(data preprocessing)是指在主要的处理以前对数据进行的一些处理。如对大部分地球物理面积性观测数据在进行转换或增强处理之前,首先将不规则分布的测网经过插值转换为规则网的处理,以利于计算机的运算。另外,对于一些剖面测量数据,如地震资料预处理有垂直叠加、重排、加道头、编辑、重新取样、多路编辑等。
预处理内容

数据审核

从不同渠道取得的统计数据,在审核的内容和方法上有所不同。 [1]

对于原始数据应主要从完整性和准确性两个方面去审核。完整性审核主要是检查应调查的单位或个体是否有遗漏,所有的调查项目或指标是否填写齐全。准确性审核主要是包括两个方面:一是检查数据资料是否真实地反映了客观实际情况,内容是否符合实际;二是检查数据是否有错误,计算是否正确等。审核数据准确性的方法主要有逻辑检查和计算检查。逻辑检查主要是审核数据是否符合逻辑,内容是否合理,各项目或数字之间有无相互矛盾的现象,此方法主要适合对定性(品质)数据的审核。计算检查是检查调查表中的各项数据在计算结果和计算方法上有无错误,主要用于对定量(数值型)数据的审核。 [1]

对于通过其他渠道取得的二手资料,除了对其完整性和准确性进行审核外,还应该着重审核数据的适用性和时效性。二手资料可以来自多种渠道,有些数据可能是为特定目的通过专门调查而获得的,或者是已经按照特定目的需要做了加工处理。对于使用者来说,首先应该弄清楚数据的来源、数据的口径以及有关的背景资料,以便确定这些资料是否符合自己分析研究的需要,是否需要重新加工整理等,不能盲目生搬硬套。此外,还要对数据的时效性进行审核,对于有些时效性较强的问题,如果取得的数据过于滞后,可能失去了研究的意义。一般来说,应尽可能使用最新的统计数据。数据经审核后,确认适合于实际需要,才有必要做进一步的加工整理。 [1]

数据审核的内容主要包括以下四个方面:

1.准确性审核。主要是从数据的真实性与精确性角度检查资料,其审核的重点是检查调查过程中所发生的误差。 [2]

2.适用性审核。主要是根据数据的用途,检查数据解释说明问题的程度。具体包括数据与调查主题、与目标总体的界定、与调查项目的解释等是否匹配。 [2]

3.及时性审核。主要是检查数据是否按照规定时间报送,如未按规定时间报送,就需要检查未及时报送的原因。 [2]

4.一致性审核。主要是检查数据在不同地区或国家、在不同的时间段是否具有可比性。 [2]

数据筛选

对审核过程中发现的错误应尽可能予以纠正。调查结束后,当数据发现的错误不能予以纠正,或者有些数据不符合调查的要求而又无法弥补时,就需要对数据进行筛选。数据筛选包括两方面的内容:一是将某些不符合要求的数据或有明显错误地数据予以剔除;二是将符合某种特定条件的数据筛选出来,对不符合特定条件的数据予以剔除。数据的筛选在市场调查、经济分析、管理决策中是十分重要的。 [1]

数据排序

数据排序是按照一定顺序将数据排列,以便于研究者通过浏览数据发现一些明显的特征或趋势,找到解决问题的线索。除此之外,排序还有助于对数据检查纠错,为重新归类或分组等提供依据。在某些场合,排序本身就是分析的目的之一。排序可借助于计算机很容易的完成。 [1]

对于分类数据,如果是字母型数据,排序有升序与降序之分,但习惯上升序使用得更为普遍,因为升序与字母的自然排列相同;如果是汉字型数据,排序方式有很多,比如按汉字的首位拼音字母排列,这与字母型数据的排序完全一样,也可按笔画排序,其中也有笔画多少的升序降序之分。交替运用不同方式排序,在汉字型数据的检查纠错过程中十分有用。 [1]

对于数值型数据,排序只有两种,即递增和递减。排序后的数据也称为顺序统计量。 [1]

方法

数据清理

数据清理例程通过填写缺失的值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。主要是达到如下目标:格式标准化,异常数据清除,错误纠正,重复数据的清除。

数据集成

数据集成例程将多个数据源中的数据结合起来并统一存储,建立数据仓库的过程实际上就是数据集成。

数据变换

通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。

数据归约

数据挖掘时往往数据量非常大,在少量数据上进行挖掘分析需要很长的时间,数据归约技术可以用来得到数据集的归约表示,它小得多,但仍然接近于保持原数据的完整性,并结果与归约前结果相同或几乎相同。

数据预处理 [3]  是数据挖掘一个热门的研究方面,毕竟这是由数据预处理的产生背景所决定的--现实世界中的数据几乎都脏数据。

参考:

https://blog.csdn.net/SecondLieutenant/article/details/79397048

https://blog.csdn.net/sinat_22594309/article/details/74923643

 

数据归一化和两种常用的归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。以下是两种常用的归一化方法:

一、min-max标准化(Min-Max Normalization)

也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 – 1]之间。转换函数如下:

x∗=(x−min)/(max−min)

其中max为样本数据的最大值,min为样本数据的最小值。这种方法有个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。

二、Z-score标准化方法

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:

x∗=(x−μ)/σ

其中 μ为所有样本数据的均值,σ为所有样本数据的标准差。

三 Z-scores 简单化

模型如下:

x∗=1/(1+x)

x越大证明x∗ 越小,这样就可以把很大的数规范在[0-1]之间了。

以上1,2方法都需要依赖样本所有数据,而3方法只依赖当前数据,可以动态使用,好理解。

 

大数据的中心化、标准化处理的重要性及处理方法

数据中心化(Zero-centered或者Mean-subtraction)处理和标准化(Standardization或Normalization)的目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。数据标准化是指:数值减去均值,再除以标准差;所谓中心化,是指变量减去它的均值。


 

在一些实际问题中,得到的样本数据都是多个维度的,即一个样本是用多个特征来表征的。比如在预测房价的问题中,影响房价y的因素有房子面积x_{1}、卧室数量x_{2}等,我们得到的样本数据就是(x_{1},x_{2})这样一些样本点,这里的x_{1}x_{2}又被称为特征。很显然,这些特征的量纲和数值得量级都是不一样的,在预测房价时,如果直接使用原始的数据值,那么他们对房价的影响程度将是不一样的,而通过标准化处理,可以使得不同的特征具有相同的尺度(Scale)。这样,在使用梯度下降法学习参数的时候,不同特征对参数的影响程度就一样了。

  • 简言之,当原始数据不同维度上的特征的尺度(单位)不一致时,需要标准化步骤对数据进行预处理。
  • 下图中以二维数据为例:左图表示的是原始数据;中间的是中心化后的数据,数据被移动大原点周围;右图将中心化后的数据除以标准差,得到为标准化的数据,可以看出每个维度上的尺度是一致的(红色线段的长度表示尺度)。



其实,在不同的问题中,中心化和标准化有着不同的意义,

  • 比如在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛。
  • 另外,对于主成分分析(PCA)问题,也需要对数据进行中心化和标准化等预处理步骤。

PCA为例说下中心化的作用。

下面两幅图是数据做中心化(centering)前后的对比,可以看到其实就是一个平移的过程,平移后所有数据的中心是(0,0).

 

在做PCA的时候,需要找出矩阵的特征向量,也就是主成分(PC)。比如找到的第一个特征向量是a = [1, 2],a在坐标平面上就是从原点出发到点(1,2)的一个向量。

如果没有对数据做中心化,那算出来的第一主成分的方向可能就不是一个可“描述/概括/解释”数据的方向。如图:


黑色线就是第一主成分的方向。只有中心化数据之后,计算得到的方向才能比较好的“概括”原来的数据。

对数据进行中心化预处理,这样做的目的是要增加基向量的正交性。

对数据标准化的目的是消除特征之间的差异性。便于对一心一意学习权重。

 

去中心化:构成大数据样本的首要条件

现在很多人抱怨,说信息过载,大量的信息浪费了自己太多的时间。克莱-舍基就在演讲里说,问题不是信息太多,而是你的管理方式不对。那些抱怨信息过载的人都在用图书馆的方式管理信息。未来,我们应该用无组织的、去中心化的方式管理大数据。以下是详细介绍。

  其实,人们觉得信息太多,并不是互联网出现之后才有的想法。以前的印刷时代,书籍特别多,超过了人们需求的时候,人们也觉得是负担,当时的方法是建了很多的大型图书馆。但这只能存放信息,还是筛选不出有用的信息。所以,克莱-舍基说,想要解决信息过载的问题,就得用新的方法识别和筛选数据。

  有什么方法呢?克莱-舍基提出了一个概念,叫无组织的组织。意思是说,不要让中心化的组织来归纳总结一件事,可以让每个用户来参与做这件事。比如几年前,美国国防部研究中心有一个挑战项目,把十个红色的测量气球放在了美国不同的地方,谁能最先全部找到,谁就能获得10万美元。他们想通过这个项目,看看各个组织是怎么合作的。当时,麻省理工学院的团队觉得,知道线索的人肯定在无数的美国人当中,问题是怎么把这些人找出来。他们决定,无论是目击者,还是能提供中间线索的人,都可以来分奖金。主办方当时给所有参赛团队一个月的时间,而麻省理工团队按照自己的思路,只用了9个小时,就找到了所有的气球。

  再举个例子,一位肯尼亚的女性发现,非洲总有暴力事件,但是得不到大家的重视。于是她就联合开发者,共同研发了地图,每个人都可以上传自己看到的暴力事件,而且每个事件都加上了特定的标签和GPS定位。最后,她的危机地图能显示哪里最不安全。这个模式很快传到了世界各地,美国、日本都用这个方法设计了相关地图。你看,未来的组织方式就是无组织、去中心化的,数据增值速度快,分析速度也特别快。

  在识别和筛选数据方面,光靠人工筛选跟不上信息积累的速度,传统的方式肯定是不管用的。克莱-舍基说,内容和技术要结合起来,形成合力。比如,怎么知道用户喜欢什么内容呢?用户看得越多的内容,说明就越受欢迎。除此之外,我们还可以分析用户的行为,比如他们喜欢在什么时候打卡,某个时间段有什么爱好。分析完以后,你可能就会发现,总看教育新闻的读者,也会关注教育背后的技术变革,你再推送关于教育技术的文章就更容易吸引用户了。

  克莱-舍基说,用工具收集内容数据和用户行为数据,再进行分析处理,让数据增值,才是管理信息的正确方式。这也是未来数据时代的趋势。

  大数据处理信息服务商金盛网聚WJFabric认为,在数据时代,人人都是数据的使用者和受益者,同时也是数据的提供者和建设者。去中心化,意味着原有的组织已无法解决新出现的问题,这一点在大数据领域尤为突出。从本质上来讲,只有越来越多参与者的加入,才能实现大数据样本的丰富性,进而提升分析结果的精准性。因此说,没有任何一家机构是可以独自将大数据样本做到100%的。专业从事大数据业务的企业其优势在于对数据样本的分析,与目标需求的结合,进而为满足需求提供方案依据。大数据是去中心化得以成功应用的首个领域,这也为解决其他社会问题提供了范例。“从群众中来,到群众中去”的去中心化理念将会成为解决固有社会问题的重要基础。

参考文档:

https://www.zhihu.com/question/37069477/answer/132387124

https://www.toutiao.com/i6505171854267777549/

 

海量数据处理的常用技术可分为:

  外排序:因为海量数据无法全部装入内存,所以数据的大部分存入磁盘中,小部分在排序需要时存入内存。

  MapReduce:分布式处理技术

  hash技术:以Bloom filter技术为代表

外排序:主要适用于大数据的排序、去重。

分布式处理技术:MapReduce 技术思想是将数据交给不同的机器去处理,将数据切分,之后结果归约。

举例,统计出一批数据的TOP N

首先可以根据数据值或者数据HASH(MD5)后的值将数据按照范围划分,不同的服务器负责处理各种的数值范围,实际上就是map,得到结果后,各个服务器拿出各自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce的过程。

1、处理海量数据的常用技巧,比如分区操作。比如针对按年份或按月份存取的数据,将数据分散开,减少磁盘I/0,减少系统负荷,也可将日志、索引存放于不同的分区下。

2、提高硬件条件、增加CPU,加大磁盘空间等。

3、加大虚拟内存。

4、分批处理。 可以对海量数据分批处理,处理后的数据再进行合并操作,这样逐个击破,有利于下哦数据量的处理。 一般按日、月等存储的数据,都可以采用先分后合的方法,对数据分开处理。

5、使用临时表和中间表。 如果大表处理不了,只能拆分为多个小表,不要一个sql语句全部完成,卡死你。

6、部分文件可以使用文件格式进行处理。一般海量的网络日志都是文本格式或者CSV格式,对它进行处理牵扯到数据清洗,可以利用程序进行处理,无需导入数据库再做清洗。

机器学习数据预处理是指在进行机器学习任务之前对原始数据进行清洗、转换和整理的过程。数据预处理的目的是为了提高机器学习算法的性能和效果,使得数据更适合用于模型训练和预测。 在进行机器学习数据预处理大作业时,你可以按照以下步骤进行: 1. 数据收集:首先需要收集原始数据,可以通过各种途径获取数据,如公开数据集、爬虫等。 2. 数据清洗:对原始数据进行清洗,包括处理缺失值、异常值、重复值等。可以使用插值、删除或替换等方法进行处理。 3. 特征选择:根据任务需求和特征的相关性,选择最具有代表性和重要性的特征。可以使用统计方法、相关系数等进行特征选择。 4. 特征转换:对特征进行转换,使其更适合用于机器学习算法。常见的特征转换方法包括标准化、归一化、离散化等。 5. 特征提取:从原始数据中提取新的特征,以增加模型的表达能力。可以使用主成分分析(PCA)、线性判别分析(LDA)等方法进行特征提取。 6. 数据集划分:将数据集划分为训练集、验证集和测试集,用于模型的训练、调参和评估。 7. 数据集平衡:对于不平衡的数据集,可以采取欠采样、过采样等方法进行平衡处理,以避免模型对多数类别过度拟合。 8. 数据集编码:将数据集中的类别型特征进行编码,以便机器学习算法能够处理。可以使用独热编码、标签编码等方法进行编码。 9. 数据集保存:将预处理后的数据集保存为适合机器学习算法输入的格式,如CSV、JSON等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值