R语言 如何规范化数据
在这篇文章中,我们将讨论如何在R编程语言中规范化数据。
归一化数据 是将数据缩放到一个固定的范围内,通常是0到1,这样可以减少变量的规模。
方法1:在基础R语言中用对数转换将数据归一化
在这种方法中,用户需要调用log(),这是一个内置的函数,并将数据帧作为参数传递给用户,将给定的数据转换为对数,然后将得到的数据转换为比例。
log() 函数是用来计算对数的,默认为自然对数。
语法
log(x)
参数
- x: 一个数字或复数向量。
例子: 将数据归一化
# Create data
gfg < - c(244, 753, 596, 645, 874, 141,
639, 465, 999, 654)
# normalizing data
gfg < -log(gfg)
gfg
输出
[1] 5.497168 6.624065 6.390241 6.469250 6.773080 4.948760 6.459904 6.142037 6.906755 6.483107
方法2:在R中用标准比例将数据归一化
在这种方法中,用户只需要调用scale()函数,这是一个内置的函数,并传递需要缩放的数据,进一步的结果是在R编程语言中从-1到1的范围内进行标准化的数据。
Scale() 是一个通用函数,其默认方法是将数字矩阵的列居中和/或缩放。
语法
scale(x)
参数
- x:数据
例子: 将数据归一化
# Create data
gfg <- c(244,753,596,645,874,141,639,465,999,654)
# normalizing data
gfg <- as.data.frame(scale(gfg))
gfg
输出
V1
1 -1.36039519
2 0.57921588
3 -0.01905315
4 0.16766775
5 1.04030220
6 -1.75289016
7 0.14480397
8 -0.51824578
9 1.51663105
10 0.20196343
方法3:使用最小-最大比例对数据进行规范化处理
在这种归一化方法中,用户首先要在R工作控制台中安装并导入caret包,然后用户需要调用preProcess()函数,以传递的方法作为其参数范围,然后用户调用predict()函数得到最终的归一化数据,这将导致在R编程语言中把给定数据归一化为0到1的尺度。
perProcess() 函数用于转换可以从训练数据中估计出来,并应用于任何具有相同变量的数据集。
语法
preProcess(x,method)
参数
- x:数据
- 方法:一个指定处理类型的字符向量。
例如: 规范化数据
library(caret)
# Create data
gfg <- c(244,753,596,645,874,141,639,465,999,654)
# normalizing data
ss <- preProcess(as.data.frame(gfg), method=c("range"))
gfg <- predict(ss, as.data.frame(gfg))
gfg
输出
gfg
1 0.1200466
2 0.7132867
3 0.5303030
4 0.5874126
5 0.8543124
6 0.0000000
7 0.5804196
8 0.3776224
9 1.0000000
10 0.5979021