版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章概论西华大学机器学习第三章数据预处理XXX学校XXX2022目录Contents概述数据预分析数据清理数据集成数据变换数据规约主要数据预处理函数
本章知识图谱3概述一1概述5数据特点:不完整、
不一致、冗余、易受噪声干扰数据预处理数据预分析数据清理数据集成数据规约数据转换对数据的特性有个大致的了解使数据格式标准化、清除异常数据、纠正错误、清除重复数据将多个数据源的数据进行整合并统一存储通过平滑聚集、数据概化、规范化等方式将数据转换成适用于后续处理的形式。在保持原数据的完整性的情况下对数据集进行规约或简化。数据预分析二2数据预分析7数据统计特性分析数据质量分析查看数据的一些统计特性,包括均值、方差、最大值、最小值等检查原始数据中是否存在脏数据包括针对缺失值分析、异常值分析、以及不一致的值、重复数据和含有特殊符号的数据的分析。数据预分析2.1统计特性分析8
数据统计特性分析可以通过Pandas包中的describe()函数很方便的实现。describe函数的原型为:DataFrame.describe(percentiles=None,include=None,exclude=None,datatime_is_numeric=false)percentiles:该参数可以设定数值型特征的统计量,默认是[.25,.5,.75],也就是返回25%、50%、75%数据量时的数字,但是这个可以修改的,如可以根据实际情况改为[.25,.5,.8],即表示返回25%、50%、80%数据量时的数字。include:该参数默认只计算数值型特征的统计量,当输入include=['O']时,会计算离散型变量的统计特征,当参数是‘all’的时候会把数值型和离散型特征的统计量都进行显示。exclude:该参数可以指定在统计的时候不统计哪些列,默认不丢弃任何列。datetime_is_numeric:一个布尔类型的值,表明是否将datetime类型视为数字。这会影响该列计算的统计信息。2.1统计特性分析9
示例代码段:importpandasaspddf=pd.DataFrame({'categorical':pd.Categorical(['d','e','f']),'numeric':[1,2,3],'object':['a','b','c']})df.describe()#描述一个DataFrame。默认情况下,仅返回数字字段
df.describe(include=‘all’)#描述DataFrame数据类型的所有列2.2数据质量分析101.缺失值分析
数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确性(1)缺失值产生的原因
缺失值产生的原因主要包括:部分信息暂时无法获取,或者获取信息的代价太大;部分信息由于数据采集设备故障、存储介质故障或者传输故障等原因被遗漏或者丢失;某些对象的该属性值并不存在,从而造成缺失值的产生。2.2数据质量分析11(2)缺失值的影响
缺失值产生的影响主要有:机器学习建模将丢失大量的有用信息,模型中蕴含的规律更难把握,机器学习中所表现出的不确定性更加显著。除此之外,包含空值的数据会使建模过程陷入混乱,导致不可靠的输出。(3)缺失值的分析
虽然缺失值的影响很深远,但是使用简单的统计分析,就可以得到缺失值的相关属性,即缺失属性数、缺失数以及缺失率等。2.2数据质量分析122.异常值分析
异常值分析是检验是否有录入错误以及是否含有不合常理的数据。忽视异常值的存在是一个十分危险的行为,不加剔除地将异常值包括到数据的计算分析过程中,对结果会产生不良影响。(1)简单统计量分析
通过上一小节介绍的数据统计特性分析能发现一些简单的数据异常值。比如,可以通过某个变量的最大值和最小值来判断这个变量的取值是否超出合理的范围,如用户年龄为2020岁,则该变量的取值就存在异常。2.2数据质量分析13
2.2数据质量分析14
(2)箱型图分布2.2数据质量分析153.一致性分析
数据不一致性是指数据的矛盾性、不相容性。直接对不一致性的数据进行学习,可能会产生与实际相违背的学习结果。
数据分析过程中,不一致数据的产生主要发生在数据集成的过程中,这可能是由于被用于分析的数据是来自不同的数据源、对于重复存放的数据未能进行一致性更新造成的。例如:两张表中都存储了用户的电话号码,但是在用户的电话号码发生改变之时只更新了一张表中的数据,那么两张表中就有了不一致的数据,这样在数据建模过程中会导致学习出现误差。数据清理三3.1异常值处理17表3-1异常值处理方法
数据预处理时,异常值是否剔除,需视具体情况而定,因为有些异常值可能蕴含着某种有用的信息。异常值处理常用的方法如表3-1所示。异常值处理方法方法描述删除直接将含有异常值的记录删除视为缺失值将异常值视为缺失值,利用缺失值处理的方法进行处理平均值修正可用前后两个观测值的平均值修正该异常值不处理直接在具有异常值的数据集上进行建模3.2缺失值处理18表3-2常用插补方法
缺失值处理的方法主要可以分为三类:删除记录、数据插补和不处理。其中,最常用的是数据插补方法。常用的插补方法如表3-2所示。插补方法方法描述均值/中位数/众数插补用该属性取值的平均数/中位数/众数进行插补使用固定值将缺失的属性值用一个常量替换最近临插补在记录中找到与缺失样本最接近的样本的属性值插补回归方法对带有缺失值的变量,根据已有的数据和与其相关的其他变量(因变量)的数据建立拟合模型来预测缺失的属性值插值法3.2缺失值处理19拉格朗日插值法介绍:
(1)求已知的过n个点的n-1次多项式:
3.2缺失值处理20解出拉格朗日插值多项式为:
3.2缺失值处理21拉格朗日插值法演示:
首先,构造数据,设置异常值,把销量大于5000和销量小于400的异常值替换为None,最后,定义拉格朗日插值函数,对数据进行插值,实现代码如下所示:importpandasaspd#导入数据分析库Pandasfromerpolateimportlagrange#导入拉格朗日插值函数
inputfile='.../data/catering_sale.xls'#销量数据路径outputfile='.../tmp/sales.xls'#输出数据路径
data=pd.read_excel(inputfile)#读入数据#过滤异常值,将其变为空值data[u'销量'][(data[u'销量']<400)|(data[u'销量']>5000)]=None3.2缺失值处理21#s为列向量,n为被插值的位置,k为取前后的数据个数,默认为5defployinterp_column(s,n,k=5):ifn<k:y=s[list(range(n+1,n+1+k))]else:y=s[list(range(n-k,n))+list(range(n+1,n+1+k))]#取数y=y[y.notnull()]#剔除空值returnlagrange(y.index,list(y))(n)#插值并返回插值结果
#逐个元素判断是否需要插值foriindata.columns:forjinrange(len(data)):if(data[i].isnull())[j]:#如果为空即插值data[i][j]=ployinterp_column(data[i],j)
data.to_excel(outputfile)#输出结果,写入文件
利用拉格朗日插值对2015/2/21日和2015/2/14日的数据进行插补,结果是4275.255和4156.86数据集成四4数据集成24
人们日常使用的数据来源于各种渠道,数据集成就是将多个文件或者多个数据源中的异构数据进行合并,然后存放在一个统一的数据库中进行存储。在数据集成过程中,来自多个数据源的现实世界实体的表达形式有的是不一样的,有可能是不匹配的,要考虑实体识别问题的属性冗余问题,从而将原始数据在最底层上加以转换、提炼和集成。4.1实体识别25
实体识别是指从不同数据源识别出现实世界的实体,任务是统一不同数据源的矛盾之处。实体识别中常常存在的问题有以下三种。(1)同名异义两个数据源中同名的属性描述的不是同一个意思。(2)异名同义两个数据源中同一个属性有两个不同的名字。(3)单位不统一描述同一实体分别使用不同的单位。实体识别过程中,我们需要对同名异义、异名同义以及单位不统一的情况进行准确识别4.1冗余属性识别26冗余属性是指数据中存在冗余的情况,一般分为以下两种情况:(1)同一属性多次出现
不同的两个数据源中,同一个属性在两个数据源中都有记录,当对数据源进行集成的时候,若不进行处理,新数据集中同一属性就多次出现,导致我们需要处理大量的重复数据。(2)同一属性命名不一致
在实体识别中所提到的异名同义的情况下,若不对数据进行处理,新数据集中同一属性多次出现,不仅会导致我们处理的数据量增大,还会影响我们模型的建立,从而导致输出结果不准确。
数据变换五5数据变换28
数据变换是指将数据转换成统一的适合机器学习的形式。比如将连续的气温数值变为高、中、低这样的离散形式,或将字符描述变为离散数字等。5.1简单函数变换29
简单函数变换是指对采集的原始数据使用各种简单数学函数进行变换,常见的函数包括平方、开方、取对数、差分运算等。简单的函数变换常用来将不具有正态分布的数据变换为具有正态分布的数据。在时间序列分析中,有时简单的差分运算就能将序列转换成平稳序列。如果数据较大,可以取对数或者开方将数据进行压缩,从而减小数据的处理量。5.2归一化30
缺陷:当有新数据加入时,可能导致和的变化。5.2归一化31
5.2归一化32
#-*-coding:utf-8-*-#数据规范化importpandasaspdimportnumpyasnp
datafile='../data/normalization_data.xls'#参数初始化data=pd.read_excel(datafile,header=None)#读取数据
(data-data.min())/(data.max()-data.min())#最小-最大规范化(data-data.mean())/data.std()#零-均值规范化data/10**np.ceil(np.log10(data.abs().max()))#小数定标规范化5.3连续属性离散化33
数据离散化本质上是将数据离散空间划分为若干个区间,最后用不同的符号或者整数值代表每个子区间中的数据。离散化涉及两个子任务:确定分类和将连续属性值映射到这个分类之中。(1)等宽法:根据需要,首先将数据划分为具有相同宽度的区间,区间数据事先制定,然后将数据按照其值分配到不同区间中,每个区间用一个数据值表示。(2)等频法:这种方法也是需要先把数据分为若干个区间,然后将数据按照其值分配到不同区间中,但是和等宽法不同的是,每个区间的数据个数是相等的。(3)基于聚类分析的方法:这种方法是指将物理或者抽象对象集合进行分组,再来分析由类似的对象组成的多个类,保证类内相似性大,类间相似性小。聚类分析方法的典型算法包括K-Means(也叫K-均值)算法、K-中心点算法,其中最常用的算法就是K-Means算法。5.3连续属性离散化34K-Means算法
对于K-Means算法,首先,从数据集中随机找出K个数据作为K个聚类中心;其次,根据其他数据相对于这些中心的欧式距离、马氏距离等,对所有的对象归类,如数据x距某个中心最近,则将x规划到该中心所代表的类中;最后,重新计算各个区间的中心,并利用新的中心重新聚类所有样本。逐步循环,直到所有区间的中心不再随算法循环而变化。5.3连续属性离散化35#-*-coding:utf-8-*-#数据规范化importpandasaspdfromsklearn.clusterimportKMeans#引入KMeans
datafile='../data/discretization_data.xls'#文件路径data=pd.read_excel(datafile)#读取数据data=data[u'肝气郁结证型系数'].copy()k=4
d1=pd.cut(data,k,labels=range(k))#等宽离散化,各个类比依次命名为0,1,2,3#等频率离散化w=[1.0*i/kforiinrange(k+1)]w=data.describe(percentiles=w)[4:4+k+1]#使用describe函数自动计算分位数w[0]=w[0]*(1-1e-10)d2=pd.cut(data,w,labels=range(k))5.3连续属性离散化36#建立模型,n_jobs是并行数,一般等于CPU数较好kmodel=KMeans(n_clusters=k,n_jobs=4)kmodel.fit(data.values.reshape((len(data),1)))#训练模型#输出聚类中心,并且排序(默认是随机序的)c=pd.DataFrame(kmodel.cluster_centers_).sort_values(0)w=c.rolling(2).mean().iloc[1:]#相邻两项求中点,作为边界点w=[0]+list(w[0])+[data.max()]#把首末边界点加上d3=pd.cut(data,w,labels=range(k))
defcluster_plot(d,k):#自定义作图函数来显示聚类结果importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False#用来正常显示负号
plt.figure(figsize=(8,3))forjinrange(0,k):plt.plot(data[d==j],[jforiind[d==j]],'o')
plt.ylim(-0.5,k-0.5)returnpltcluster_plot(d1,k).show() #图像显示cluster_plot(d2,k).show()cluster_plot(d3,k).show()
数据规约六6数据规约38
在大数据集上进行复杂的机器学习需要很长的时间,数据规约是生成更小但保持数据完整性的新数据集,在规约后的数据集上进行机器学习将更有效率。数据规约可以降低无效、错误数据对建模的影响,提高建模的准确性;处理少量且具有代表性的数据,大幅缩减机器学习所需要的时间;另外还可以降低储存数据的成本。6.1属性规约39属性规约方法方法描述合并属性将一些旧属性合为新属性逐步向前选择从一个空属性集开始,每次从原来属性集合中选择一个当前最优地属性添加到当前属性子集中。直到无法选择出最优属性或满足一定阈值约束为之逐步向后选择从一个全属性集开始,每次从当前属性子集中选择一个当前最差的属性并将其从当前属性子集中消去。直到无法选择出最差属性为之或满足一定阈值的约束法为止决策树归纳利用决策树的归纳法对初始数据进行分类归纳学习,获得一个初始决策树,所有没有出现在这个决策树上的属性均可认为是无关属性,将这些属性从初始化集合中删除,就可以获得一个较优的属性子集主成分分析用较少的变量去解释原始数据中的大部分变量,即将许多相关性很高的变量转换成彼此相互独立或不相关的变量。6.2数值规约40
数值规约也称为样本规约,是指通过选择替代的、较小的数据来减少数据子集。在确定样本规约子集时候需要考虑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店经营管理和服务质量合同
- 数字备份还原维护承诺书8篇
- 商业场地租赁合同细节协议条款书
- 2025四川雅安市名山区茗投产业集团有限公司招聘合同制员工10人考试核心试题及答案解析
- 2025下半年四川凉山州西昌市教育系统考核引进教师98人参考考试试题及答案解析
- 2025天津市西青经开区投资促进有限公司面向全国招聘招商管理人员4人笔试重点题库及答案解析
- 2025湖南长沙浏阳市金阳医院、浏阳市永安镇中心卫生院第三批公开招聘编外劳务派遣人员61人笔试重点试题及答案解析
- 四川锅炉高级技工学校2025年下半年面向社会公开考核招聘中职教育专业技术人才(16人)笔试重点题库及答案解析
- 2026年TPM培训师笔试题库及答案
- 2025西藏日喀则市江孜县委社会工作部招聘社区工作者1人考试重点试题及答案解析
- 餐饮店前台接待培训课件
- 外科术后护理与康复指导
- 2025 中药药理学(温里药药理)考试及答案
- 工业粉尘治理系统设计
- 胰腺癌手术后护理措施
- 核电站课件教学课件
- 四大名著经典讲解课件
- 读书分享:家庭的觉醒
- (北师大2024版)生物八上全册知识点(默写版+背诵版)
- 员工生产工作技能培训
- 肺结节健康宣教
评论
0/150
提交评论