数据挖掘-检测数据缺失及异常值并绘图

缺失值

数据的确实主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确。

异常值分析

异常值分析是检验数据是否有录入错误以及含有不合常理的数据。忽视异常值的存在是十分危险的,不如剔除得把异常值包括进数据的计算分析过程中,对结果会带来不良影响;重视异常值的出现,分析其产生原因,常常成为发现问题而改进决策的契机。异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点的分析。

matlab代码展示

%% 餐饮销量数据缺失值及异常值检测
clear;
% 初始化参数
catering_sale = '数据所在位置'; % 数据
index = 1; % 销量数据所在列 

%% 读入数据
[num,txt] = xlsread(catering_sale);
sales =num(2:end,index);
rows = size(sales,1);

%% 缺失值检测 并打印结果
nanvalue = find(isnan( sales));
if isempty(nanvalue) %  没有缺失值
    disp('没有缺失值!');
else
    rows_ = size(nanvalue,1);
    disp(['缺失值个数为:' num2str(rows_) ',缺失率为:' num2str(rows_/rows) ]);
end

%% 异常值检测 
% 箱形图上下界
q_= prctile(sales,[25,75]);
p25=q_(1,1);
p75=q_(1,2);
upper = p75+ 1.5*(p75-p25);
lower = p25-1.5*(p75-p25);
upper_indexes = sales(sales>upper);
lower_indexes = sales(sales<lower);
indexes =[upper_indexes;lower_indexes];
indexes = sort(indexes);
% 箱形图
figure
hold on;
boxplot(sales,'whisker',1.5,'outliersize',6);
rows = size(indexes,1);
flag =0;
for i =1:rows
  if flag ==0
    text(1+0.01,indexes(i,1),num2str(indexes(i,1)));
    flag=1;
  else
      text(1-0.017*length(num2str(indexes(i,1))),indexes(i,1),num2str(indexes(i,1)));
    flag=0;
  end
end
hold off;
disp('数据缺失值及异常值检测完成!');

运行结果如下

缺失值个数为:1,缺失率为:0.005
餐饮销量数据缺失值及异常值检测完成!

对于这个图像 这个图像为箱型图

它主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比 较。箱线图的绘制方法是:先找出一组数据的上边缘、下边缘、中位数和两个四分位数;然后, 连接两个四分位数画出箱体;再将上边缘和下边缘与箱体相连接,中位数在箱体中间。

箱型图识别异常值的结果比较客观,在识别异常值方面有一定的优越性。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值