数据预处理之数据清洗

 1 缺失值、异常值的检测和处理

1.1 缺失值处理

若对单个数据求均值(mean),如果数据中含有缺失值,MATLAB 会返回一个空值(NaN),此时即表示数据中存在缺失值:

(1)寻找缺失值(ismisssing/isnan)

TF=ismissing(A)

A为输入数组,可以是向量、矩阵或多维数组等

TF为输出的逻辑数组,指示数组或表中有哪些元素包含缺失值。TF 的大小与A的大小相同。”1“代表缺失值,‘0’则不是。

ismissing的用法和isnan相同
% ismissing 寻找缺失值案例
  %随机生成6*4数据矩阵
  A=randi(10,6,4);
  %替换一些值为缺失值
  A(3:4,2)=nan
  %输出数据矩阵
  disp(A)
  %寻找缺失值,1代表缺失值所在的位置
  ismissing(A)

对于缺失值处理,我们要分情况讨论。

如果某个变量或某个样本缺失了70%以上的数据,那么此时对数据进行填补的话会引入更多的噪声,反而会降低模型的性能,故此时一般直接将该变量或样本删除。

MATLAB 中删除缺失值的函数(另外补充)

如果缺失的不多,我们可以考虑对缺失值进行填补。

以下重点介绍MATLAB中删除和填补缺失值的两个函数:

(2)删除缺失值(rmmissing)

[R ,TF]=rimissing(A,dim)

A为输入数组,可以是向量、矩阵或多维数组等

dim:运算维度,默认为1,删除缺失值所在行,设为2则删除缺失值所在列

R为删除缺失值条目后的数据

TF为已删除条目的指示符。

rimissing 这个函数比较简单粗暴,只要把缺失值所在行善良,谨慎使用。

(3)填补缺失值

方法1:常数填充,如用常数1填充

F=fillmisssing(A,'constant',1)

方法2:F=fillmissing(A,method)

method 是一个字符型参数,指填充缺失值的方法,MATLAB提供以下几种方法:

method 说明
‘previous' 上一个非空值
  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值