可以用卷积,利用卷积的平滑原理
命令是conv
比如数据是a,
b=ones(1,20);%这里的20可以视情况而定
c=conv(a,b);
c([1:10,end:-1:end-8])=[]
得到的c长度比a大(20-1),需要去掉,前面去10个,后面去9个
图片是我的一个数据这样处理后的结果
一般去噪,大的方向来说有两类,一是"删除"异常值,二是"转化"异常值。比如将数据转化为秩,又如分位数分箱,前1%的数据记为1,前2%的数据记为2,以此类推。这样一来,确实摆脱了异常值,但将连续型的数据转为秩,或者转为1-100,1-1000等等,信息的损失是无法避免的。
第一种方法,由于观测的删除造成信息损失,第二种则由于数据形态的转变造成信息损失。
很多时候,在不能保证原汁原味的数据情况下,少许的信息损失也是可以接受的,不同的去噪方法,造成的信息损失自然各不相同。