scale() 函数
1. 用法
复制代码
1
2
3
4
5
6
7scale(x, center = TRUE, scale = TRUE) # x 是样本数据 (r语言中定义为 数字矩阵) # center 中心化(这里指的是减去样本数据x的平均值) # scale 标准化 (这里指的是除以样本数据x的方差或者均方根)
备注: 之前一直听别人说scale(标准化)是除以什么
根方差
,不太懂,所以自己就验证了一下。
结论1: 在同时使用center =T 和 scale =T 的情况下,scale用的值是方差
结论2: 在只使用center =F 和 scale =T, scale用的值是根方差
复制代码
1
2
3# 根方差的计算 sqrt(sum(x^2)/(n-1)) # x是数据样本, n 是数据样本的数量
2.举列
只中心化,不标准化的验证:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25attach(mtcars) a = mtcars[1:5,]$gear # 以r语言中内置的mtcars为例子 > a [1] 4 4 4 3 3 > mean(a) # 求平均值 [1] 3.6 > sd(a) # 求方差 [1] 0.5477226 > scale(a,center = T,scale = F) # 只中心化,不标准化 [,1] [1,] 0.4 [2,] 0.4 [3,] 0.4 [4,] -0.6 [5,] -0.6 attr(,"scaled:center") [1] 3.6
复制代码
1
2
3
4
5
6
7> a - mean(a) # 只中心化验证 [1] 0.4 0.4 0.4 -0.6 -0.6
只标准化, 不中心化的验证:
复制代码
1
2
3
4
5
6
7
8
9
10
11> scale(a,center = F,scale = T) # 只标准化, 不中心化 [,1] [1,] 0.9847319 [2,] 0.9847319 [3,] 0.9847319 [4,] 0.7385489 [5,] 0.7385489 attr(,"scaled:scale") [1] 4.062019
复制代码
1
2
3
4
5
6
7
8# 这里的scale值是4.062019,而方差是0.5477226,所以不是除以方差,而是根方差 > a/4.062019 [1] 0.984732 0.984732 0.984732 0.738549 0.738549 # 根方差的计算 > scale_num = sqrt(sum(a^2)/(length(a)-1)) > scale_num [1] 4.062019
既标准化,也中心化的验证:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21> scale(a,center = T,scale = T) # 既标准化,也中心化 [,1] [1,] 0.7302967 [2,] 0.7302967 [3,] 0.7302967 [4,] -1.0954451 [5,] -1.0954451 attr(,"scaled:center") [1] 3.6 attr(,"scaled:scale") [1] 0.5477226 > (a - mean(a))/sd(a) [1] 0.7302967 0.7302967 0.7302967 -1.0954451 -1.0954451
最后
以上就是舒适戒指最近收集整理的关于R语言中 scale函数用法的全部内容,更多相关R语言中内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复