数据预处理-平均值插值法

 面向萌新,即初学者,对数据进行预处理。替换路径之后,本代码可一键运行!!!

我们处理数据时,有时候我们需要对其中的异常值进行处理。异常值可能是由于测量误差或其他因素引起的,可能会对我们的分析结果产生不良影响。我们用一种方法来处理这些异常值。

举个例子,我们从"测试集PA.xlsx"的文件中读取数据。我们将这些数据存储在变量xls1中,并创建一个空的变量xls2来存储其他可能需要集合的文件数据。

为了更好的预测任何!你的数据,我们使用[m,n] = size(all_xls)来获取数据集的行数和列数。

在处理异常值之前,我们需要先定义一个空的函数和一个变量x,为了准备存储for循环的数据及初始化。

用一个for循环来遍历所有行和列。在循环中,检查每个值是否小于100。如果是,则将该值设置为0,并将x的值增加1。这样,我们就可以记录小于100的个数,并将其赋值为0,以便后续插值。

然后,我们计算每行的平均值,并将其存储在变量all_aver中。接着,我们将x重新设置为0,并再次遍历每个值。如果值小于100,则将其替换为平均值。

最后,我们完成了异常值的处理,并可以继续进行其他的数据分析或处理。

你的点赞就是对为最大的支持,导入数据即可一键运行,萌新必备神器。

close all  %关闭所有窗口
clc
clear all  %清理所有已有数据
xls1=xlsread("C:\Users\kokomi\Desktop\测试集PA.xlsx");%放入你的文件数据
xls2=[];%也可以存入其他你需要集合的文件数据
all_xls=[xls1;xls2];%数据集合
[m,n]=size(all_xls);%判断行列数
%%建立空函数,为了做储存for循环的数据做准备
all_aver=[];
x=0;
%选中注释段,crtl+t解锁,crtl+r上锁
for i=1:m  %for循环用来遍历所有行
     for j=1:n
         if all_xls(i,j)<100
           all_xls(i,j)=0;
           x=x+1;%记录其上小于100的个数,并赋值为0,以便后续插值。
         end
     j=j+1;
     end
     all_aver=[sum(all_xls(i,:))/(n-x),all_aver];%对每行平均值进行单独计算储存
     x=0;
     for h=1:n
         if all_xls(i,h)<100
             all_xls(i,h)=all_aver(1);%插入每行的平均值进行替换
         end
     end
     i=i+1;
end

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值