-
2019-10-17 16:13:43
什么是数据归约
数据归约是指在对挖掘任务和数据本身内容理解的基础上、寻找依赖于发现目标的数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下,最大限度地精简数据量。数据归约的途径
数据归约主要有两个途径:属性选择和数据采样,分别针对原始数据集中的属性和记录。假定在公司的数据仓库选择了数据,用于分析。这样数据集将非常大。在海量数据上进行复杂的数据分析扣挖掘将需要很长时间,使得这种分析不现实或不可行。
数据归约技术可以用来得到数据集的归约表示,它虽然小,但仍大致保持原数据的完整性。这样,在归约后的数据集上挖掘将更有效,并产生相同(或几乎相同)的分析结果。
数据归约的类型
1、特征归约特征归约是从原有的特征中删除不重要或不相关的特征,或者通过对特征进行重组来减少特征的个数。其原则是在保留、甚至提高原有判别能力的
同时减少特征向量的维度。特征归约算法的输入是一组特征,输出是它的一个子集。在领域知识缺乏的情况下进行特征归约时一般包括3个步骤:
(1)搜索过程:在特征空间中搜索特征子集,每个子集称为一个状态由选中的特征构成。
(2)评估过程:输入一个状态,通过评估函数或预先设定的阈值输出一个评估值搜索算法的目的是使评估值达到最优。
(3)分类过程:使用最终的特征集完成最后的算法。
2、样本归约
样本都是已知的,通常数目很大,质量或高或低,或者有或者没有关于实际问题的先验知识。
样本归约就是从数据集中选出一个有代表性的样本的子集。子集大小的确定要考虑计算成本、存储要求、估计量的精度以及其它一些与算法和数据特性有关的因素。
初始数据集中最大和最关键的维度数就是样本的数目,也就是数据表中的记录数。数据挖掘处理的初始数据集描述了一个极大的总体,对数据的分析只基于样本的一个子集。获得数据的子集后,用它来提供整个数据集的一些信息,这个子集通常叫做估计量,它的质量依赖于所选子集中的元素。取样过程总会造成取样误差,取样误差对所有的方法和策略来讲都是固有的、不可避免的,当子集的规模变大时,取样误差一般会降低。一个完整的数据集在理论上是不存在取样误差的。与针对整个数据集的数据挖掘比较起来,样本归约具有以下一个或多个优点:减少成本、速度更快、范围更广,有时甚至能获得更高的精度。
3、特征值归约
特征值归约是特征值离散化技术,它将连续型特征的值离散化,使之成为少量的区间,每个区间映射到一个离散符号。这种技术的好处在于简化了数据描述,并易于理解数据和最终的挖掘结果。
特征值归约可以是有参的,也可以是无参的。有参方法使用一个模型来评估数据,只需存放参数,而不需要存放实际数据;有参的特征值归约有以下两种:
(1)回归:线性回归和多元回归;
(2)对数线性模型:近似离散多维概率分布。
无参的特征值归约有3种:
(1)直方图:采用分箱近似数据分布,其中V-最优和MaxDiff直方图是最精确和最实用的;
(2)聚类:将数据元组视为对象,将对象划分为群或聚类,使得在一个聚类中的对象“类似”而与其他聚类中的对象“不类似”在数据归约时用数据的聚类代替实际数据;
(3)选样:用数据的较小随机样本表示大的数据集,如简单选择n个样本(类似样本归约)、聚类选样和分层选样等。
更多相关内容 -
输变电设备物联网传感器数据规约解析工具
2020-12-11 13:55:03解析输变电设备物联网传感器数据规约,显示传感器各参量的名称以及参量值,可以用于输变电传感器传输数据的测试 -
数据预处理之数据清理,数据集成,数据规约,数据变化和离散化
2022-01-24 14:37:42数据规约 数据的变换 1、Min-Max 规范化 [0,1]规划 2、Z-Score 规范化 两种归一化方法的使用场景: 正则化 每文一语 本来这些储备知识,我想在后续的实际算法案例中进行解释,但是考虑到很多的小伙伴在学习的...目录
👇👇🧐🧐✨✨🎉🎉
欢迎点击专栏其他文章(欢迎订阅·持续更新中~)
特征工程之One-Hot编码、label-encoding、自定义编码
持续更新中~
作者简介
博客名:王小王-123
简介:CSDN博客专家、CSDN签约作者、华为云享专家,腾讯云、阿里云、简书、InfoQ创作者。公众号:书剧可诗画,2020年度CSDN优秀创作者。左手诗情画意,右手代码人生,欢迎一起探讨技术的诗情画意!
本来这些储备知识,我想在后续的实际算法案例中进行解释,但是考虑到很多的小伙伴在学习的过程中都是逐步推进的,需要一定的时间去理解和应用,所以前期我们需要把所有的东西都准备好,这样就可以保证后续的算法实践游刃有余。
数据清理
我们一般看到的数据都是较为干净的数据,也就是结构化的数据,但是有时候在日志信息中,需要我们去提取出结构化的数据进行处理,这个时候就需要用到数据清理了。
数据清理用到的工具
1、Python
Python作为目前火热的编程语言,它的优势在于不需要编写大量的程序代码就可以实现我们所需的功能,而且在数据处理方面,Python的第三方库Pandas和Numpy有着不可描述的便捷性。
这也是我在概述篇里面介绍的需要准备的知识,同时在博主的文章里面也有比较详细的数据处理的文章,点击即可查看和学习。
2、Kettle
kettle作为ETL工具,可能很多人比较的陌生,这个工具在数据预处理方面有着比较好的优势,具有可重复性和简单性,由于它是一个图形界面的开发工具,不需要编程知识就可以完成,只需要明白每一步的过程和相应的按钮含义。
数据清理主要包括缺失值与异常值的清理
针对缺失值,可以采用简单的删除,但如果缺失值的比例达到一定阈值,就需要读者去判断是否在采集过程中出现了问题,不可以进行简单的删除操作了,因为一旦删除了数据,数据所代表的信息就无法找回了。
也可以将缺失值添加成默认值,或是采用拉格朗日插值法对缺失值进行填充等方式。
在Pandas里面有很多种对缺失值的处理办法,还可以使用左右填充的方法以及上下填充,也可以按照某一列的统计量进行填充,还可以填充特定规则的数据,下面给出具体的代码实现
检测出空值
# 检测出有空值的行数据 df[df.isnull().T.any()]
直接删除
df.dropna() # 删除包含空值的所有行 df.dropna(axis=1) # 删除包含空值的所有列 # 删除一行全部是空值的数据行 df.dropna(how="all") df.dropna(how="all",axis=1) # 删除列数据里面全部是空值的列
填充处理
# 通过给定的数据填充,一般是0 df.fillna(0) 指定我们的数据列,进行填充 df[["成绩"]].fillna(100) # 指定数据列按照平均值进行填充 df[["成绩"]].fillna(round(df["成绩"].mean(),2)) # 这里的平均值可以替换成最大值max,最小值min,以及各种的统计函数
前后左右值填充
# 使用前后左右的值来填充 # 上面的值 forwardfill 列上前一个值 df[['成绩']].fillna(method="ffill") # 下面的值 backfill 列上后一个值 df.fillna(method="bfill") # 左边的值 forwardfill 行上前一个值 df.fillna(method="ffill", axis=1) # 右边的值 backfill 行上后一个值 df.fillna(method="bfill", axis=1) # 如果超过边界无法取值
这里需要注意一下,有些时候由于边界的原因,无法填充,那么可以先使用某一个填充然后再去使用另外一个填充模式,这样全方位的填充,效果比较的好!
数据集成
主要是指将多种数据源汇集到一起,放入一个数据仓库的过程。在数据集成的过程中会出现实体识别(Entity Resolution),冗余属性识别,数据值冲突等问题。
在将多种数据源集成时,实体识别是很常见的事情,实体识别可描述成:在一个或多个数据源中的不同记录是否描述为同一个实体, 同一实体在数据集成过程中可被用于数据去重和连接键等集成操作中。
用一个数据库中的实例就是,如果 A 表中有一个字段为 stu_id, B 表中有一个字段为 stu_num,那么这两个字段是否都为同一个实体的属性呢?
如果是同一个属性,那么在集成时,这个这段可以作为多表关联的条件,生成新表时保留两者中的一个值就可以。
冗余属性识别是指是否某些属性之间存在相关性,或者一个属性可以由其它的属性推导得出。数据值冲突指的是不同数据源中针对同一个实体的属性值不同,这可能是单位不一致导致的。
数据集成就是在多种数据源的集成过程中,解决掉上述的几个问题,形成一个大的不冗余的数值清楚的数据表。
说到数据集成,一般用于大量的数据维度的例子,比如某电商的售卖系统所产生的数据,这里就需要考虑到数据里面的范式了,在我的《数据库技术原理应用-计算机三级》可以看到具体的解释,点击蓝色字体即可跳转。数据规约
是指在保证原始数据信息不丢失的前提下,减少分析使用的数据量,数据规约中最常使用的方式是维规约。
维规约的含义是从将原先高维的数据合理的压缩成低维数据,从而减少数据量,常用的方法为特征的提取, LDA 和 PCA 降维。特征的提取为从海量数据中选择与挖掘目标相关的属性成一个子表,不包含无关的属性,比如关于泰坦尼克号生产数据的数据挖掘中,船客 Name 与幸存率是无关的,就可以不放入子表中。
PCA 是基于方差的聚类降维, LDA 是基于有监督的降维,都可以对高维数据进行降维。假定某公司进行一次知识发现的任务,选取的数据集为数据仓库中的全部数据(数据量基本在数 T 以上),固然这样可以获得的数据是最完整的,但由于数据仓库中的数据是非常大的,在如此大的数据集上进行复杂且存在迭代计算的数据分析,所要花费的时间是很长的,分析一个结果可能需要一个月的时间,时间不满足用户的需求,使得这种全量数据的分析是不可行。
数据归约技术采用维规约和数据量规约等方式,可以对数据仓库中的海量数据进行提取,获得较小数据集,仍可大致保留原数据的完整性。这样,完成一个效率和效果的兼顾,在允许的时间内完成数据挖掘任务。
数据的变换是将原始的特征数据进行归一化和标准化的操作。
归一化是将原始数值变为(0,1)之间的小数,变换函数可采用最小最大规范化等方法。
标准化是将数据按比例缩放,使之落入一个小的特定区间,常用的函数为是 z-score 标准化,处理后的均值为 0,标准差为 1,一般标准化要求原始数据近似符合高斯分布。
归一化的原因在于不同变量往往量纲不同,归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。数据挖掘过程中,数值较大的特征,会被算法当成权重较大,但实际情况是数值较大,并不一定代表该特征更重要,归一化和标准化后的数据可以避免这个问题的出现。
数据离散化可通过聚类,直方图,分箱等方式完成数据的离散化。
下面介绍一下具体的实现方法以及原理
1、Min-Max 规范化 [0,1]规划
Min-max 规范化方法:将原始数据变换到[0,1]的空间中。让原始数据投射到指定的空间
[min, max],用公式表示就是:新数值 =(原数值 - 极小值)/(极大值 - 极小值)。
- 定义:也称为离差标准化,是对原始数据的线性变换,使得结果映射到0-1之间。
- 本质:把数变为【0,1】之间的小数。
- 转换函数:(X-Min)/(Max-Min)
- 如果想要将数据映射到-1,1,则将公式换成:(X-Mean)/(Max-Min)
from sklearn import preprocessing import numpy as np # 初始化数据,每一行表示一个样本,每一列表示一个特征 x = np.array([ [0.,-3.,1.], [3.,1.,2.], [0.,1.,-1.] ]) # 将数据进行 [0, 1] 规范化 min_max_scaler = preprocessing.MinMaxScaler() min_max_x = min_max_scaler.fit_transform(x) print(min_max_x)
2、Z-Score 规范化
Z-Score 的方法:新数值 = (原数值 - 均值)/ 标准差。
- 定义:这种方法给与原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1.
- 本质:把有量纲表达式变成无量纲表达式。
- 转换函数:(X-Mean)/(Standard deviation)
假设 小明 所在的班级平均分为 80,标准差为 10。小华 所在的班级平均分为 120,标准差为 100。那么 小明 的新数值 =(80-80)/10=0,小华 的新数值 =(80-120)/100=-0.4。那么在 Z-Score 标准下,如果小明和小华的成绩都是80,小明 的成绩会比 小华 的成绩好。
因此,我们能看到 Z-Score 的优点是算法简单,不受数据量级影响,结果易于比较。不足在于,它需要数据整体的平均值和方差,而且结果没有实际意义,仅是用于比较!!!
注意是每一个算法都需要使用归一化,标准化吗?答案不是的,如果考虑的是距离还不是相似度函数那么就需要,反之则需要;例如:随机森林,它从不比较一个特征与另一个特征,不许要规范化。
归一化后加快了梯度下降求最优解的速度。
归一化有可能提高精度(归一化是让不同维度之间的特征在数值上有一定的比较性)。
两种归一化方法的使用场景:
(1)在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。
第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。
(2)在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在(0 ,255)的范围。
第二种归一化方式中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。
通常情况下,如果使用下面的库
from sklearn.preprocessing import MinMaxScaler,MaxAbsScaler,StandardScaler #最大最小[0,1] #[-1,1] #去均值化
注意:归一化适用于相似函数,标准化适用于距离度量情况
正则化
正则化主要用于避免过拟合的产生和减少网络误差。
常见的有正则项有 L1 正则 和 L2 正则 以及 Dropout ,其中 L2 正则 的控制过拟合的效果比 L1 正则 的好。
- L1正则化可以产生稀疏解,即会使得很多参数的最优值变为0,以此得到的参数就是一个稀疏矩阵或者向量了。可以用于特征选择。
- L2正则化可以产生值很小的参数,即会使得很多参数的最优值很小。可以防止模型过拟合。
简单来说L1适合用于特征选取,降低模型的复杂度;L2可以解决模型的过拟合。那么也就是说你可以这样去理解,L1适用于特征较多的情况下
特征选择: 它会让模型参数向量里的元素为0的点尽量多。 因此可以排除掉那些对预测值没有什么影响的特征,从而简化问题。所以 L1 范数解决过拟合措施实际上是减少特征数量。
可解释性: 模型参数向量稀疏化后,只会留下那些对预测值有重要影响的特征。 这样我们就容易解释模型的因果关系。 比如针对某个癌症的筛查,如果有100个特征,那么我们无从解释到底哪些特征对阳性成关键作用。 稀疏化后,只留下几个关键特征,就更容易看到因果关系最后给大家分享一张,机器学习必看到的一张图
每文一语
每个人都有选择自己生活的权利
-
数据分析 数据规约
2021-01-29 22:17:19"数据规约"(Data Reduction)是指在尽可能保持数据原貌的前提下,最大限度地精简数据集.数据规约又分为2类:"属性规约"和"数值规约" 二.属性规约 1.概念: "属性规约"(Attributes Reduction)是指通过减少数据集中的属性...一.概念
"数据规约"(Data Reduction)是指在尽可能保持数据原貌的前提下,最大限度地精简数据集.数据规约又分为2类:"属性规约"和"数值规约"
二.属性规约
1.概念:"属性规约"(Attributes Reduction)是指通过减少数据集中的属性来精简数据集,目的是减少系统资源的消耗并降低无效/错误数据的影响.这相当 于降低表示成向量的数据的维度,因此又称"数据降维".由于不同属性包含了不同的信息量,需要选择舍弃哪些属性才能最小化信息损失.降维方法有2大 类:"特征选择"和"特征提取"
2.特征选择
(1)概念:"特征选择"(Feature Selection)是指从原始特征集中选出1组最具统计意义的特征,以降低数据集中的属性数,不会改变原特征空间
(2)方法:
"决策树"(Decision Tree) "分支定界法"(Branch and Bound) "序列前向选择"(Sequential Forward Selection) "序列后向选择"(Sequential Backward Selection) "模拟退火"(Simulated Annealing) "竞技搜索"(Tabu Search) "遗传算法"(Genetic Algorithms)
3.特征提取
(1)概念:"特征提取"(Feature Extraction)是指将原始特征转换为1组具有明显物理或统计意义的特征,以降低数据集中的属性数.其和特征选择的区别在于 特征提取会通过转换原有特征得到新的特征,因而会改变原特征空间.方法主要包括PCA,LDA,SVD,ICA
(2)主成分分析:
参见 机器学习.主成分分析 部分
(3)线性判别分析:
参见 机器学习.线性判别分析 部分
(4)独立成分分析:
"独立成分分析"(Independent Component Analysis;ICA)
三.数值规约
1.概念:"数值规约"(Numerosity Reduction)是指通过减少数据集中的数据量来精简数据集.数值规约方法有2大类:"有参数方法"和"无参数方法"
2.有参数方法
(1)概念:"有参数方法"是指使用参数模型来近似原数据,最后只需要存储参数
(2)方法:
"回归"(Regression) "多元回归"(Multivariable Regression) "线性回归"(Linear Regression) "对数线性模型"(Logarithmic Linear Model)用于近似离散属性集中的多维概率分布
3.无参数方法
(1)概念:"无参数方法"是指使用1个较少的数据集来近似原数据,需要存放实际数据
(2)方法:
"直方图"(Histogram)使用数据在多个互不相交的子集(称为"分箱"(Bin))中的分布来近似原数据分布 "聚类"(Cluster)将记录分入不同的"簇"(Cluster),再用簇来近似实际数据 "抽样"(Sampling)使用从原数据集中按一定规则抽取的1个子集(称为"样本"(Specimen))来近似原数据集
-
数据探索(数据集成、数据变换、数据规约)③—Python对数据规范化、数据离散化、属性构造、主成分分析 ...
2021-12-03 16:28:41数据集成、数据变换、数据规约(小波变换主成分分析……)Python介绍、 Unix & Linux & Window & Mac 平台安装更新 Python3 及VSCode下Python环境配置配置
python基础知识及数据分析工具安装及简单使用(Numpy/Scipy/Matplotlib/Pandas/StatsModels/Scikit-Learn/Keras/Gensim))
数据探索(数据清洗)①——数据质量分析(对数据中的缺失值、异常值和一致性进行分析)
数据探索(数据清洗)②—Python对数据中的缺失值、异常值和一致性进行处理
数据探索(数据集成、数据变换、数据规约)③—Python对数据规范化、数据离散化、属性构造、主成分分析 降维
数据探索(数据特征分析)④—Python分布分析、对比分析、统计量分析、期性分析、贡献度分析、相关性分析
挖掘建模①—分类与预测
挖掘建模②—Python实现预测
挖掘建模③—聚类分析(包括相关性分析、雷达图等)及python实现
挖掘建模④—关联规则及Apriori算法案例与python实现
挖掘建模⑤—因子分析与python实现数据探索(数据集成、数据变换、数据规约)③—Python对数据规范化、数据离散化、属性构造、主成分分析 降维
数据集成
-
数据挖掘需要的数据往往分布在不同的数据源中,数据集成就是将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。
-
在数据集成时,来自多个数据源的现实世界实体的表达形式是不一样的,不一定是匹配的,要考虑实体识别问题和属性冗余问题,从而把源数据在最低层上加以转换、提炼和集成。
实体识别
实体识别的任务是检测和解决同名异义、异名同义、单位不统一的冲突。
- 同名异义:数据源A中的属性ID和数据源B中的属性ID分别描述的是菜品编号和订单编号,即描述的是不同的实体。
- 异名同义:数据源A中的sales_dt和数据源B中的sales_date都是是描述销售日期的,即A. sales_dt= B. sales_date。
- 单位不统一:描述同一个实体分别用的是国际单位和中国传统的计量单位。
冗余属性识别
- 数据集成往往导致数据冗余
- 同一属性多次出现
- 同一属性命名不一致导致重复
- 不同源数据的仔细整合能减少甚至避免数据冗余与不一致,以提高数据挖掘的速度和质量。对于冗余属性要先分析检测到后再将其删除。
- 有些冗余属性可以用相关分析检测到。给定两个数值型的属性A和B,根据其属性值,可以用相关系数度量一个属性在多大程度上蕴含另一个属性。
数据变换
主要是对数据进行规范化的操作,将数据转换成“适当的”格式,以适用于挖掘任务及算法的需要。
简单函数变换就是对原始数据进行某些数学函数变换,常用的函数变换包括平方、开方、对数、差分运算等,即:
规范化
数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,数值间的差别可能很大,不进行处理可能会影响到数据分析的结果,为了消除指标之间的量纲和大小不一的影响,需要进行数据标准化处理,将数据按照比例进行缩放,使之落入一个特定的区域,从而进行综合分析。如将工资收入属性值映射到[-1,1]或者[0,1]之间。
下面介绍三种规范化方法:最小-最大规范化、零-均值规范化、小数定标规范化最小-最大规范化
也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0,1]之间。转换函数如:
其中max为样本数据的最大值, min为样本数据的最小值。max-min 为极差。Python处理
import numpy as np (data - data.min())/(data.max() - data.min())
零-均值规范化
也叫标准差标准化,经过处理的数据的平均数为0,标准差为1。转化函数为:
为原始数据的均值,σ为原始数据的标准差。
Python处理
(data - data.mean())/data.std()
小数定标规范化
通过移动属性值的小数位数,将属性值映射到[-1,1]之间,移动的小数位数取决于属性值绝对值的最大值。转化函数为:
Python处理
data/10**np.ceil(np.log10(data.abs().max()))
连续属性离散化
一些数据挖掘算法,特别是某些分类算法,要求数据是分类属性形式,如ID3算法、Apriori算法等。这样,常常需要将连续属性变换成分类属性,即连续属性离散化。
-
离散化的过程
连续属性变换成分类属性涉及两个子任务:决定需要多少个分类变量,以及确定如何将连续属性值映射到这些分类值。 -
常用的离散化方法
常用的无监督离散化方法有:等宽法、等频法、基于聚类分析的方法
属性构造
在数据挖掘的过程中,为了帮助提取更有用的信息、挖掘更深层次的模式,提高挖掘结果的精度,需要利用已有的属性集构造出新的属性,并加入到现有的属性集合中。
比如已有人的身高体重,构造一个关键指标——体重指数BMI,改过程就是构造属性:
BMI=(体重)/身高²
身高与体重的比例生成的BMI指数,能用来衡量人的体形发育匀称度和体型,作为评定人的身体匀称度。小波变换
基于小波变换的特征提取方法及其方法描述如下表所示:
小波基函数是一种具有局部支集的函数,平均值为0,小波基函数满足:
。Haar小波基函数是常用的小波基函数,如下图所示:
数据规约
- 数据规约是将海量数据进行规约,规约之后的数据仍接近于保持原数据的完整性,但数据量小得多。
- 通过 数据规约,可以达到:
1.降低无效、错误数据对建模的影响,提高建模的准确性
2.少量且具代表性的数据将大幅缩减数据挖掘所需的时间
3.降低储存数据的成本
属性规约
属性规约常用方法有:合并属性、逐步向前选择、逐步向后删除、决策树归纳、主成分分析
合并属性
逐步向前选择
逐步向后删除
决策树规约
主成分分析
下面详细介绍主成分分析计算步骤:
Python实现
from sklearn.decomposition import PCA
PCA(n_components=None, *, copy=True, whiten=False, svd_solver=“auto”, tol=0.0, iterated_power=“auto”, random_state=None)
1)n_components
这个参数可以帮我们指定希望PCA降维后的特征维度数目。最常用的做法是直接指定降维到的维度数目,此时n_components是一个大于等于1的整数。当然,我们也可以指定主成分的方差和所占的最小比例阈值,让PCA类自己去根据样本特征方差来决定降维到的维度数,此时n_components是一个(0,1]之间的数。当然,我们还可以将参数设置为"mle", 此时PCA类会用MLE算法根据特征的方差分布情况自己去选择一定数量的主成分特征来降维。我们也可以用默认值,即不输入n_components,此时n_components=min(样本数,特征数)。
2) copy:
类型:bool,True或者False,缺省时默认为True。
意义:表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。3)whiten
判断是否进行白化。所谓白化,就是对降维后的数据的每个特征进行归一化,让方差都为1.对于PCA降维本身来说,一般不需要白化。如果你PCA降维后有后续的数据处理动作,可以考虑白化。默认值是False,即不进行白化。
除了这些输入参数外,有两个PCA类的成员值得关注。第一个是explained_variance_,它代表降维后的各主成分的方差值。方差值越大,则说明越是重要的主成分。第二个是explained_variance_ratio_,它代表降维后的各主成分的方差值占总方差值的比例,这个比例越大,则越是重要的主成分。
inputfile = 'data/principal_component.xls' outputfile = 'tmp/dimention_reducted.xls' #降维后的数据 data = pd.read_excel(inputfile) #读入数据 pca = PCA() pca.fit(data) print(pca.components_) #返回模型的各个特征向量 print(pca.explained_variance_ratio_ )#返回各个成分各自的方差百分比
从上面结果来看得到特征方程det(R-λE)=0有7个特征根,对应7个单位特征向量以及各个成分的方差百分比(也成为了贡献率)。其中方差百分比越大,说明向量的权重越大。
当选取前3个主成分时,累计贡献率已经达到98.78%,说明选取前2个主成分进行计算已经相当不错,因此可以重新建立PCA模型,设置n_components=2,计算出成分结果。pca=PCA(2) pca.fit(data) low_d=pca.transform(data)# 用它来降低纬度 pd.DataFrame(low_d).to_excel(outputfile)# 保存结果 pca.inverse_transform(low_d) #必要是可以用inverse_transform()函数来复原数据
降维结果
原始数据从8维被降到了2维,关系式由公式
确定,同时这2维数据占原始数据95%以上的信息。数值规约
数值规约通过选择替代的、较小的数据来减少数据量。数值规约可以是有参的,也可以是无参的。有参方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据。有参的数值规约技术主要有两种:回归(线性回归和多元回归)和对数线性模型(近似离散属性集中的多维概率分布)。数值规约常用方法有直方图、用聚类数据表示实际数据、抽样(采样)、参数回归法。
-
-
数据预处理(五)——数据规约
2021-08-04 15:47:54数据规约 数据变换与离散化 利用sklearn进行数据预处理 五、数据规约 数据归约(Data Reduction)用于在尽可能保持数据完整性的基础上得到数据的归约表示。也就是说,在归约后的数据集上挖掘将更有效,而且仍会... -
大数据项目3(数据规约)
2021-07-20 14:39:32数据规约一、简介二、数据分析与挖掘体系位置三、数据规约方法1、维度规约(Dimensionality Reduction)(1)小波变换(Wavelet Transform,WT)(2)主成分分析(Principal Component Analysis,PCA)(3)特征集... -
【Python数据分析】数据预处理3——数据规约(含主成分分析详解、Python主要预处理函数)
2022-01-02 11:26:31数据规约产生更小且保持完整性的新数据集,在规约后的数据集上进行分析和挖掘将提高效率 一、属性规约 属性规约通过属性合并创建新属性维数,或者通过直接删除不相关的属性来减少数据维数,从而提高数据挖掘的效率... -
论文研究-基于稀疏数据规约的CMAC大气腐蚀数据补偿方法.pdf
2019-07-22 22:20:09针对中国地区腐蚀等级以及相关环境参数数据稀疏分布的特性,提出了一种基于稀疏数据规约的CMAC大气腐蚀数据补偿方法。同时,针对二氧化硫浓度缺失的情况,根据现有的有效数据,提出了二氧化硫浓度的经验公式。结果... -
数据预处理-数据规约
2020-04-30 21:10:59数据规约 数据规约指通过选择替代的、较小的数据来减少数据量,包括有参数方法和无参数方法两类。 有参数方法是使用一个模型来评估数据,只需存放参数,而不需要存放实际数据,例如回归(线性回归和多回归)和对数... -
python:数据预处理之数据规约
2020-03-07 13:59:33目的: 对属性和数值进行规约获得一个比原始数据集小的多的规约表示,但仍接近原数据的完整性,在规约后数据集上挖掘可产生近乎相同的分析结果。简单来说,通过降维或维数规约来缓解维数灾难(在高维数据中可能会让... -
【数据治理相关概念】(四)数据规约
2019-11-05 11:50:37目录 1、简介 2、数据分析与挖掘体系位置 3、数据规约方法 3.1 维度规约(Dimensionality Reduction) 3.2 数量规约(Numerosity Reduction...我们依然需通过技术手段降低数据规模,这就是数据规约(Data Reduc... -
数据预处理—-(数据探索、数据清理、数据集成、数据规约、数据变换)
2018-08-11 10:42:21挖掘的数据类型:时间序列,序列,数据流,时间空间数据,多媒体数据,文本数据,图,社会网络和web数据; 挖掘:知识类型、使用的技术、目标应用的技术、挖掘任务分类。 衡量取样数据质量的标准: 资料完整无缺... -
Python数据分析——数据变换和数据规约(主成分分析)
2019-11-24 11:01:10数据变换 简单变换 1、数据变换的目的是将数据转化为更方便分析的数据 2、简单变换通常使用函数变换的方式进行,常见的函数变换包括:开方,平方,对数等 数据规范化 1、离差标准化--消除量纲(单位)影响以及... -
一种数据规约的近似挖掘方法的实现 (2008年)
2021-05-27 13:38:15讨论基于数据规约的近似挖掘技术,在数据预处理阶段对海量数据集进行数据规约.近似数据挖掘的工作流程包括任务定义、数据准备与预处理、数据挖掘建模、结果的解释与评估、模型发布与应用5个阶段.同时,提出使用属性... -
数据预处理(2)数据集成 和 数据变换 数据规约
2018-11-27 14:24:44数据挖掘的过程中往往需要的数据分布在不同的数据库,数据集成就是将多个数据源合并存放在一个一致的数据存储(如数据仓库)中的过程。 实体识别 同名异义 名字相同但实际代表的含义不同 异名同义 名字不同但代表的... -
数据分析与挖掘笔记(六)------数据预处理之数据规约
2019-08-16 11:11:03数据规约 在大数据集上进行复杂的数据分析和挖掘需要很长时间,数据规约产生更小但保持原数据完整性的新数据集。在规约后的数据集上进行分析和挖掘将更有效率。 数据规约的意义在于: 降低无效、错误数据对建模的... -
数据分析与挖掘之数据规约
2018-09-23 23:00:23数据规约三种方法 1、维归约(dimensionlity) 减少所考虑的随机变量或属性的个数。维归约方法包括小波变换和主成分分析,他们把原始数据变换或投影到较小的空间。属性子集选择是一种维归约方法,其中不相关、弱相关... -
3.4数据预处理(三) - 数据规约(Data Reduction)
2018-08-09 17:48:29数据规约采用编码方案,能够通过小波变换或主成分分析有效的压缩原始数据,或者通过特征提取技术进行属性子集的选择或重造。 一句话解释版本: 数据规约就是缩小数据挖掘所需的数据集规模,具体方式有维度规... -
数据预处理二:数据集成+数据规约+数据变换
2018-06-30 14:08:00即多个数据源的数据进行合并 实体识别 同名异义 异名同义 单位不统一 冗余属性识别 同一属性多次出现 同一属性命名不一致导致重复 1.判断方法由卡方检验判断结果,若两个... -
数据规约中的主成分分析
2018-04-13 09:13:06本文参考《Python数据分析与挖掘实战》一书数据规约是产生更小但保持原数据完整性的新数据集,在规约后的数据集上进行分析与挖掘将会更有效率.在数据规约中,有很多方法对其实现,如合并属性,逐步向前选择,逐步向... -
数据预处理之数据规约
2020-03-21 22:34:09数据标准化与归一化 1、(x-mean)/std为什么会改变数据的分布? 2、标准化与归一化的好处? 参考答案 -
Python数据分析5-----数据规约
2018-03-30 13:33:001、数据规约概念和目的 数据规约是产生更小且保留数据完整性的新数据集。 意义:降低无效错误数据的影响、更有效率、降低存储成本。 2、属性规约 (1)属性合并(降维):比如PCA (2)删除不相关属性 3、数值... -
Python数据分析学习笔记(6)数据规约实战--以主成分分析PCA为例
2018-10-27 21:05:071、数据规约:产生更小且保持数据完整性的新数据集。意义在于降低无效、错误数据;降低存储成本;少量且具有代表性的数据大幅加快,主要分为以下两类: ①属性规约:属性合并或删除无关维,目标是寻找最小子集使... -
数据挖掘之数据规约
2019-09-22 16:38:06学习中! 转载于:https://www.cnblogs.com/rrttp/p/8051937.html