文章目录

  • 前言
  • 1 数据来源
  • 2 数据预处理
    • 2.1 无效数据处理
    • 2.2 异常数据处理
  • 3 数据预处理完整代码

前言

  Hi,久等了,这里是工业大数据预测系列的第二篇。

  前面我们提到,工业大数据具有诸多价值,实现工业建模、预测、控制、决策、优化、故障诊断等一系列应用。但工业界追求稳定可靠的目标使得上述应用对数据质量提出较高要求。

  具体而言,工业过程中产生的数据由于传感器故障、人为操作因素、系统误差、多异构数据源、网络传输乱序等因素极易出现噪声、缺失值、数据不一致的情况,直接用于数据分析会对模型的精度和可靠性产生严重的负面影响。因此在建模前,往往需要对数据进行预处理,消除数据中的噪声、纠正不一致、识别和删除离群数据来提高模型鲁棒性,防止模型过拟合。

1 数据来源

  我们以2010年PHM协会(Prognostics Health Management Society)刀具磨损预测数据集来完成工业大数据预测系列文章。数据集共包含了C1 -C6共6份数据,C1、C4、C6为训练集、C2、C3、C5为测试集。每份数据共315个样本,每条样本由7个通道数据组成,所有数据均通过一台高速数控机床在铣削作业下采集获得。

文末扫码关注公众号后回复“2010PHM”获取数据集下载链接。

  数控机床作业参数说明如下:铣刀主轴转速为10400rpm;x方向的进给速率为1555mm/min;y方向的径向切削深度为0.125mm;z方向的轴向切削深度为0.2mm。
  为了获得高速数控机床作业过程的在线数据,在工件和加工平台之间安装了Kistler公司的3向平台测力计,在加工平台上固定Kistler公司的3向振动传感器,在靠近工件的位置安装声发射传感器,声发射信号主要由于材料内部结构变化造成材料内应力突变引发的弹性波产生而来的;采用Kistler5019A多通道电荷放大器和DAQ NI PCI1200数据采集卡放大和采集加工过程三个方向(x、y、z)的切削力和振动以及声发射信号;各信号的采样频率为50kHz。
  因此,传感器数据由7个通道组成:x、y、z方向的铣削力、x、y、z方向的振动和声发射信号。在完成每个工件表面的铣削后,用LEICA MZ12显微镜离线测量铣刀三个刀面的磨损情况作为每个样本的标签。

csv文件的列 描述
第1列 x轴铣削力(N)信号
第2列 y轴铣削力(N)信号
第3列 z轴铣削力(N)信号
第4列 x轴振动(g)信号
第5列 y轴振动(g)信号
第6列 z轴振动(g)信号
第7列 声发射信号(AE-RMS(V))

2 数据预处理

  在该数据集中,通过对数据样本进行抽样并可视化可以发现数据缺陷主要有无效数据、异常数据两类,其中无效数据具体为进刀无效数据和退刀无效数据,异常数据为因某种原因导致的跳变数值。因此,所涉及到的数据预处理技术一般有缺失值和异常值处理等。


2.1 无效数据处理

  根据数据量大小和具体工业应用场景可以分为以下两类处理方式:

  • 直接删除:适合数据量足够大而缺失的数据占比较小的情况

  • 平滑插值填补:当样本数据较少时则可以采用平滑插值填补法,具体有线性插值法、拉格朗日插值法等。

  由于数据采集的频率较高,铣削加工过程的数据点较多,每个样本达到了20余万个数据,因此可以采用直接删除的方法。

  那么如何定位到删除点呢?我们可以采用一个简单的第三四分位数法。具体为:首先计算铣削过程所采集数据的第三四分位数Q3作为进退刀无效数据的临界值;然后从数据第一个值起,依次向后比较过程数据,直到出现第一个大于Q3的数值,记下当前位置,然后截断第一个值至该位置的数据;退刀无效数据则从最后一个值向前比较。
  通过该方法截断的数据如图所示,图中是C1数据集第225个样本Z Force的局部放大图,蓝色实线表示截断后的数据,红色虚线表示被截断的进刀无效数据。退刀数据截断效果与之类似,不再赘述。

2.2 异常数据处理

  针对工业环境以及数据特性的不同,异常值可以分为点异常值、波动点、集体离群值和明显噪声信号等类型。处理异常值的关键点在于判断异常值,判断异常值的方法主要有以下四种方式:

  1. 恒定阈值检测。通过人工设置数据统计特征中的最大值和最小值来检测数据,当数据波动幅值超出该最大最小值形成的区间,则判定该数据点为异常点。通常有全局阈值设置和分级阈值设置两种,其中分级阈值设置可以根据不同的阈值对应不同的操作。恒定阈值法较为简单,容易实现,但不适用于非平稳信号数据,只在平稳信号数据上有一定的效果,且灵活性较低。

  2. 分位数异常检测。该方法是一种基于统计的方法。把所有的数值从小到大排列,将全部数据等分为4部分,取25%位置上的值为上四分位值,记为Q1;50%位置上的值为中位数,记为Q2;75%位置上的值为下四分位值,记为Q3;四分位距IQR=Q3−Q1IQR=Q3-Q1IQR=Q3−Q1。则异常值的判断依据为大于 Q1+k×IRQQ1+k \times IRQQ1+k×IRQ 或小于Q3−K×IQRQ3-K \times IQRQ3−K×IQR 的数值,k通常取1.5。

  3. K-Sigma异常检测。设一个服从正态分布的数据集表示为,其中μ\muμ为数据集的均值,delta为数据集的标准差。若数据落在(μ−k×δ\mu - k \times \deltaμ−k×δ, μ+k×δ\mu + k \times \deltaμ+k×δ)范围之外,则判断数据为异常数据。可以根据不同的工业场景和时序曲线,设置合适的k值作为不同级别的异常报警。通常取k值为3。

  4. 局部异常检测。局部异常检测基于滑动窗口机制,结合K-Sigma异常检测或分位数异常检测对原始数据进行分析。局部异常检测相比较于上述3种方法,使用更加灵活、适应性更强,对异常值更为敏感。但不适用于具有突变特性的数据。

  突变异常数据在某一个或几个数据点出现的数据幅值突增的跳变,表现为一个较大的数值,针对此类数据的处理需要寻找一个合适的方法,既不影响大部分正常数据又能有效检测出异常值进而处理。我们可以采用基于滑动窗口的中值滤波方法——hampel滤波。具体过程如下:

  1. 设置样本两边的样本数k,则窗口大小为2k+1,设定上下界系数nδn_{\delta}nδ​;
  2. 基于滑动窗口计算每个样本的局部标准差xδx_{\delta}xδ​、局部估计中值xmx_mxm​;
  3. 计算样本的异常值上下界:
    异常值上界:upbound=xm+nδ×xδup bound=x_m + n_{\delta} \times x_{\delta}upbound=xm​+nδ​×xδ​
    异常值下界:downbound=xm−nδ×xδdown bound=x_m - n_{\delta} \times x_{\delta}downbound=xm​−nδ​×xδ​
  4. 若该样本值大于异常值上界或小于异常值下界,则使用估计中值xmx_mxm​替换该样本。

  设置k=4000k=4000k=4000 ,nδ=3n_{\delta}=3nδ​=3。最终滤波效果对比如图所示,红色虚线表示含有突变异常值的数据,蓝色实线表示替换异常值后的数据。可以看出,hampel滤波后,C1数据集第001样本Y Force的异常值被替换,而其他数据未受影响,曲线更加平滑,异常数据点也不明显。

  至此,针对刀具磨损数据集中的原始数据进行无效数据分析及处理、异常值定位分析、数据滤波处理等,已经得到了较为干净的铣削过程数据,为下一步进行数据特征提取以及建立预测模型打下了基础。

3 数据预处理完整代码

function [pre_data,count1,count2] = CutOut_and_Filter( raw_data )% *********************************
%         裁剪去除无效数据
% *********************************
data_length = length(raw_data);Q3 = prctile(raw_data,75);  % 上四分位值for index = 1:data_lengthif raw_data(index) > Q3count_forward = index;breakend
end
for index = 1:data_lengthnum = data_length - index;if raw_data(num) > Q3count_backward = num;breakend
end
data1 = raw_data(count_forward:count_backward);% *********************************
%       hampel滤波示例代码
% *********************************
[destX,outPos,xMedian,xSigma] = hampel(data1, 10000, 3);pre_data = destX;
count1 = count_forward;
count2 = count_backward;end
C1_sample = 315;
C4_sample = 315;
C6_sample = 315;start_time = clock;read_Path_C1 = 'C:\Users\Kaifeng Guan\Desktop\My Tool Wear Prediction\dataset\c1\c1\c_1_';
save_Path_C1 = 'C:\Users\Kaifeng Guan\Desktop\My Tool Wear Prediction\Code\new_data\dataset1\c1\c_1_';
for i = 1:C1_samplestr = num2str(i, "%03d");fprintf("Processing C1: %s \n", str);read_path = strcat(read_Path_C1, str, ".csv");raw_data = csvread(read_path);save_path = strcat(save_Path_C1, str);mkdir(save_path)for j = 1:7data1 = raw_data(:, j);data2 = CutOut_and_Filter(data1);save_path1 = strcat(save_path, "\f", num2str(j), ".csv");csvwrite(save_path1, data2)end
endread_Path_C4 = 'C:\Users\Kaifeng Guan\Desktop\My Tool Wear Prediction\dataset\c4\c4\c_4_';
save_Path_C4 = 'C:\Users\Kaifeng Guan\Desktop\My Tool Wear Prediction\Code\new_data\dataset1\c4\c_4_';
for i = 1:C4_samplestr = num2str(i, "%03d");fprintf("Processing C4: %s \n", str);read_path = strcat(read_Path_C4, str, ".csv");raw_data = csvread(read_path);save_path = strcat(save_Path_C4, str);mkdir(save_path)for j = 1:7data1 = raw_data(:, j);data2 = CutOut_and_Filter(data1);save_path1 = strcat(save_path, "\f", num2str(j), ".csv");csvwrite(save_path1, data2)end
endread_Path_C6 = 'C:\Users\Kaifeng Guan\Desktop\My Tool Wear Prediction\dataset\c6\c6\c_6_';
save_Path_C6 = 'C:\Users\Kaifeng Guan\Desktop\My Tool Wear Prediction\Code\new_data\dataset1\c6\c_6_';
for i = 1:C6_samplestr = num2str(i, "%03d");fprintf("Processing C6: %s \n", str);read_path = strcat(read_Path_C6, str, ".csv");raw_data = csvread(read_path);save_path = strcat(save_Path_C6, str);mkdir(save_path)for j = 1:7data1 = raw_data(:, j);data2 = CutOut_and_Filter(data1);save_path1 = strcat(save_path, "\f", num2str(j), ".csv");csvwrite(save_path1, data2)end
endend_time = clock;
etime(end_time, start_time)

如果您觉得文章对您有用,请给我点个赞吧!
您的肯定是对我最大的鼓励。

【“工业大数据预测”系列】——第2篇:异常数据处理相关推荐

  1. 【“工业大数据预测”系列】——第3篇:基于统计和信号的特征提取

    文章目录 1 基于统计的时域特征 1.1 均方根(Root Mean Square, RMS) 1.2 方差(Variance) 1.3 最大值(Max)和最小值(Min) 1.4 偏度(Skewne ...

  2. 【工业大数据】工业大数据:构建制造型企业新型能力

    2015年5月8日,国务院公布<中国制造2025>,这是中国版的"工业4.0"规划.该规划提到"加快推动新一代信息技术与制造技术融合发展,把智能制造作为两化深 ...

  3. “智源 — INSPEC 工业大数据质量预测赛” 上线,为硬核工业制造炼就 AI 之心...

    2019 年 12 月,北京智源人工智能研究院联合博世和数据评测平台biendata,共同发布了"INSPEC 工业检测大数据 (Industrial Specification Inspe ...

  4. 想了解工业大数据,不得不看的一篇

    工业大数据是互联网.大数据和工业产业相结合的产物.它是2025年中国制造.工业互联网.工业4.0等国家战略的立足点. 对企业而言,了解工业大数据生成的背景,总结工业企业大数据的分类和特征,从数据流的角 ...

  5. 数据猿·金猿榜丨2017工业大数据领域最具潜力创业公司

    [数据猿导读] "2017工业大数据领域最具潜力创业公司"盘点源于数据猿推出的"金猿榜"系列内容,旨在通过媒体的方式与原则,发掘大数据领域最具潜力的创新型企业 ...

  6. 2017年全球大数据产业报告之海外篇(终结篇)

    本文作者│吴极 微信号│wujiwuji1023 本文转载自公众号星河融快(rongkuai888)  ,作者吴极(微信ID:wujiwuji1023)   中国软件网获授权转载. " 自从 ...

  7. 赛后总结:第四届工业大数据竞赛注塑成型

    赛后总结:第四届工业大数据竞赛注塑成型 原文首发于我的公众号 前言 以第四届工业大数据竞赛虚拟量测任务为例,介绍大家的思路.自己代码乱写,导致不知道最后要复现的是哪个,加上工作上各种人员优化,就没有进 ...

  8. 【阿里妈妈数据科学系列】第二篇:在线分流框架下的AB Test

    背景 AB Test 是为同一目标制定两个方案,在同一时间维度,保证其他条件一致的情况下,分析实验组跟对照组的区别,根据不同的实验类型以及应用场景,产生了不同分桶逻辑的AB Test,包括在线分流及离 ...

  9. 工业大数据全景解读和应用案例

    转载自知乎:https://zhuanlan.zhihu.com/p/71123406 (少量删节) 对于企业而言,了解工业大数据产生的背景,归纳工业企业大数据的分类和特点,从数据流推动工业价值创造的 ...

最新文章

  1. apxs php5,安装PHP5和PHP7
  2. 暑期应用开发怎么玩?申请蓝牙Mesh网关操控家里的一切
  3. java web sqlmapapi,深入了解SQLMAP API
  4. eltree ref什么时候有_DBA:为什么你老写慢SQL
  5. LeetCode 1630. 等差子数组
  6. 自动泊车算法中混合A*粗路径的MATLAB实现
  7. [争什么! 掺在一起做撒尿牛丸啊! 笨蛋]ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
  8. c语言指针经典例,C语言指针应用简单实例
  9. String类的getBytes()方法
  10. Excel:数据转置
  11. 【悟空】恍恍惚惚进入软件测试行业
  12. 贵州安顺:红色基因激活初心密码 为民服务谱写秀丽篇章
  13. 二重积分x^2+y^2_计算二重积分∫∫(x+y)dxdy,其中D为x^2+y^2≤2x
  14. 05、postman批量测试
  15. Allegro自动对齐工具
  16. 数据结构——树和二叉树
  17. 佳能尼康新旧炮镜群比照
  18. PCB相关知识-元器件+原理图
  19. 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目
  20. jmeter察看结果树之json使用

热门文章

  1. 内容运营、用户运营、活动运营的区别和主要工作内容,你能区分吗?
  2. 【宋红康 MySQL数据库】【14】视图
  3. 用VM+PE+GHOST安装winxp系统
  4. 巨杉数据库学习笔记+巨杉数据库实操项目实践
  5. android 图片文件名字改换利器ACDsee10
  6. 计算机支持教学管理的各种应用,计算机技术在教学管理中的应用探析
  7. 计算机辅助教学的网络化,浅谈计算机辅助教学的发展和趋势
  8. 点云智能分类研究进展与展望
  9. 如何解决谷歌浏览器中被嵌入360导航的问题
  10. python五子棋算法_BetaMeow----利用机器学习做五子棋AI