数据预处理/规划范处理 matlab代码

本文探讨了在机器学习模型构建中,三种数据规范化方法(离差标准化、0-均值规范法和小数定标规范化)的原理、优缺点以及在Matlab中的实现,强调了规范化对消除量纲影响和提高模型准确性的作用,同时提到了对离群值的敏感性问题。
摘要由CSDN通过智能技术生成

我们在进行模型建立时,如使用机器学习回归等时

通过使用把值比较大,比较多的数据,通过规范化,可以是模型更加准确,且规范化不改变数据的原来关联性或者特征。

但是却让数据间的关系更加凸显。

1    最小最大化(离差标准化)

将数值转换到【0,1】之间。离差标准化保留了原始数据中的关系,能够消除量纲和数据取值范围的最简单方法。

比如:一类数据全是10000这么大的数字,一列数据 是1,23,3,2,5这种数据,用来做回归等会让模型不准确。

但是 它的缺点是:如果数据集中或者某个数值很大,规范化后的各值会很接近于0,并且会相差不大。   (对离群值异常敏感)

2    零-均值规范法(也叫标准差规范法)

经过处理的数据的均值为0,标准差为1

这种规范方法应用广泛,但是均值和标准差受到离群点的影响很大,因此常对此方法进行改进。

3  小数定标规范化

通过移动属性值的小数位数,将属性变到[-1,1]之间。

clear;clc;
data='data.xls' ;
%读取数据
[data,~]=xlsraed(data);

%%最小-最大规范化
data1=mapminmax(data',0,1)   %由于matlab是对行 进行最大最小化,需要转置
data1=data'   %再转置,使数据回到原来状态

%% 0-均值规范化
data2=zscore(data);   %专门的内置函数

%%小数定标规范化
max_=max(abs(data));
max_power(10,cell(log10(max_)));
cols=size(max_,2);
data_dot=data;
for i=1:cols
    data_dot(:,i)=data(:,i)/max_(1,i)
end

%%打印结果

%用disp即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值