博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
R中,数据标准化方法
阅读量:5988 次
发布时间:2019-06-20

本文共 1782 字,大约阅读时间需要 5 分钟。

标准化方法(Normalization Method)

数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。由于指标体系的各个指标度量单位是不同的,为了能够将指标参与评价计算,需要对指标进行规范化处理,通过函数变换将其数值映射到某个数值区间。一般常用的有以下几种方法。
(1) 最小-最大规范化对原始数据进行线性变换。假定MaxA与MinA分别表示属性A的最大与最小值。最小最大规范化通过计算将属性A的值映射到区间[a, b]上的v。一般来说,将最小-最大规范化在用于信用指标数据上,常用的有以下两种函数形式:
变换到[0,1],

 

变换到[-1,1],

(2) z-score规范化也称零-均值规范化。变换范围有正有负。

(3) 十进制规范化。十进制规范化变换后使最大值的绝对值小于1。

(4)Box-Cox变换。线性回归时,当残差项不满足正态分布或等方差假定时,可对被解释变量做Box-Cox变换。

(5)对数函数转换,表达式如下:

y=log10(x)
说明:以10为底的对数函数转换。
(6)反余切函数转换,表达式如下:
y=atan(x)*2/PI

## 数据变换:对数据进行规范化

# (1)最大值-最小值规范化
install.packages("caret")
library(caret)
# 将Loan数据中的loan_amnt转化到[0,1]
help(preProcess)
#先指定处理方法
trans = preProcess(select(Loan, loan_amnt), method = c("range"))
trans
#然后使用predict函数完成处理
transformed = predict(trans, select(Loan,loan_amnt))
head(transformed)
range(transformed)

# (2)标准化(x-mean(x))/var(x)

trans = preProcess(select(Loan, loan_amnt), method = c("center","scale"))
trans
transformed = predict(trans, select(Loan,loan_amnt))
head(transformed)
mean(transformed[[1]]);var(transformed[[1]])
# (3)十进制正规化
max(abs(loan$loan_amnt))
# (4)Box-Cox变换
install.packages("e1071")
library(e1071)
#计算偏度,发现是右偏
skewness(Loan$annual_inc,na.rm = T)
#选择Loan数据集中的数值型变量
Loan.num = select(Loan, loan_amnt,funded_amnt,funded_amnt_inv,installment,annual_inc,dti,total_pymnt)
# 对每列数值型变量都计算其偏度系数
apply(Loan.num,2,skewness,na.rm = T)
# 为了直方图显示效果,剔除年收入超过40万美元的客户
Loan.anin = Loan$annual_inc[-which(Loan$annual_inc>400000)]
library(caret)
# 使用样本数据估计λ,估计值为-0.1,但修正后的λ估计值为0
BoxCoxTrans(Loan$annual_inc,na.rm = T)
par(mfrow=c(1,2))
hist(Loan.anin,xlab="natural units of annual_inc", main="Histogram: Original Data")
# 估计的λ为0,使用log变换
hist(log(Loan$annual_inc),
xlab = "log units of annual_inc",
main = "Histogram: after log transformation"
)

 

转载于:https://www.cnblogs.com/sydnia/p/7359975.html

你可能感兴趣的文章
laravel常用查询
查看>>
Oracle导入dmp文件
查看>>
java移动文件到另一个文件夹中
查看>>
hadoop编译过程中遇到的错误
查看>>
centos 7 防火墙和端口配置
查看>>
Logger 详解
查看>>
nginx 配置详解
查看>>
UITableView-的cell 自定义(高度and样式)
查看>>
贡献一段学习过程中的爬糗百的代码python
查看>>
Amoeba+keepalived+mysql高可用性方案
查看>>
OSPF单区域配置实验
查看>>
xcode升级到6.1后找不到模拟器问题
查看>>
我的友情链接
查看>>
邮件服务器的三个"简单问题"
查看>>
实现tomcat基于session会话保持
查看>>
sqoop 了解篇 - 使用心得(sqoop增量倒入)
查看>>
使用百度地图聚集marker时出现的"Object has no method removeEventListener"解决
查看>>
Foxmail 7.0 winsock 错误代码10061
查看>>
基于spring boot实现的通用注解式过滤器
查看>>
zabbix 自定义trigger
查看>>