数据挖掘之缺失数据缺失的各种插补算法比较

您所在的位置:网站首页 缺失值插值法excel 数据挖掘之缺失数据缺失的各种插补算法比较

数据挖掘之缺失数据缺失的各种插补算法比较

2023-08-26 21:43| 来源: 网络整理| 查看: 265

0前言

代码请访问github的个人储存库里下载,喜欢的给个Star喔。

实验要求:完成插补实验 实验工具: 1、excel表格 2、记事本txt文件 3.、pycharm 4、JBPCAfill.jar包

1前期处理 1.2删除特殊字符

表格中含有None,#NULL!的字符,表示数据缺失,在表格统计数据个数时,字符None,#NULL!影响统计的数量,所以这些字符需要删除。代码在first包里的Prepare.py里。 思路:两个for循环对行和列进行扫描,遇到None或#NULL!字符,对其赋空值。

2.EM算法插值 2.1 步骤

1、下载ycimpute库,里面含有EM算法的插值函数 2、插入’index’字段名,目的是后期为筛选出非空的数据进行文字转数字,最后根据index值还原顺序 2、地址和手机号码都是文本类型,而EM算法的插值函数要求特征值全部为数字类型,于是将文本标签转为数字 4、选定特征值, 5、使用ycimpute库里的EM()函数插值 6、将数字类型的地址和手机号转成文本标签 步骤思路图 在这里插入图片描述

2.2 备注

代码操作如first包里的em.py所示,并且调用了toencoding.py代码

3 多重插值

代码操作如first包里mice.py所示,直接调用ycimpute库里的MICE函数,代码操作思路与EM算法操作相似,只需将from ycimpute.imputer import EM 改from ycimpute.imputer.mice import MICE,调用MICE函数里的插补函数即可。

4.比较EM算法、PPCA算法、BPCA算法的插值误差 4.1前期测试集的选取

1、将txt文件转成csv表格,代码如two包里的txttocsv所示 2、观察表格中各个属性的特点,车牌号是单一的,而其他因素都会影响着车的速度,对于时间的处理,我选择了取间隔时间,当前时间与下一个的时间间隔代码在two包的Diff.py里。 3、测试集的代码位于two包里的share.py里, 此测试集代码可以保证每次运行都得到相同的测试集,找到测试集的下标并保存。并将其速度赋值为空。将测试集和训练集全部存入另一张表格。 4、对trafficflow21.csv里的特征值进行标准化处理

4.2. bpca算法的操作 4.2.1.前期处理

对于ppca算法,python2有直接安装的包,python3安装则会出错,于是我将ppca插值算法的包里函数直接复制粘贴到ppca.py里。对ppca插值算法的操作代码在two包的ppcamake.py里。分离出训练的特征值,进行标准化处理,对空值全部赋999操作,如two包的bpcapre.py所示,然后将转成txt文件。

4.2.2.操作步骤

在BPCA的jar包下载了JBPCAfill.jar,此包由Shigeyuki Oba所编写,此jar包作用是采用bpca算法对缺失的数据进行插补。此jar包的使用方法如图从网站截图而来。 在这里插入图片描述 在这里插入图片r包操作图描述 将trafficflow23_filled.txt转成csv格式。

4.3.PPCA算法插值

1.python2可直接导入下载的PPCA插值的代码库,python3导入出错,于是将将ppca包里的函数复制粘贴至two包的ppca.py里,ppcamake.py是调用ppca插值算法里的函数。

4.4.EM算法插值

调用ycimpute里的EM模块即可。将测试集的特征值带进EM里的插值函数。返回插值处理后的特征值数据集。

4.5.三者比较的结果的可视化

代码如two包里的share.py所示,调用Plotfigure函数,如two包里的mainfunction.py所示,mainfunction.py通过调用ppcamake, emmake, bpcamake,share模块里的函数里的处理后的特征值数据集。进行可视化分析。bpca算法和EM算法插值的效果几乎相同,可见bpca算法最有效。 在这里插入图片描述 在标准化后的EM_bbca_pbca插值的折线图这里插入图片描述 在这里插入图片描述

经验总结: 处理的数据存入表格,再进行操作,否则,会出现容易出现object类型 安装ycimpute库需要下载适合python版本的whl包

知识可以共享,数据打死也不会共享。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3