R语言数据标准化
在数据分析之前,我们通常需要先将数据标准化(normalization),利用标准化后的数据进行数据分析。 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间, 其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。 数据归一化后可以提升模型的收敛速度和精度。
-
### 1. 离差标准化
-
# 数据映射到[0,1]
-
mat <- matrix(data = sample(0:10000,1000,replace=TRUE),
-
nrow = 100, ncol = 10, byrow = TRUE,
-
dimnames = list(paste0("gene", 1:100),
-
paste0("sample", 1:10)))
-
-
-
normalize <- function(x){
-
return ((x-min(x))/(max(x)-min(x)))
-
}
-
-
apply(mat,2,normalize) # 对列操作
-
-
-
# 数据映射到[-1,1]
-
normalize2 <- function(x){
-
return ((x-mean(x))/(max(x)-min(x)))
-
}
-
-
class(mat) # [1] "matrix" "array"
-
mat_norm <- apply(mat,2,normalize2)
-
class(mat_norm) # [1] "matrix" "array"
-
-
### 2. log函数转换
-
# 所有的数据都要大于等于1
-
# 除以log10(max)后在[0,1]区间上
-
-
# log(x, base)
-
log(10) #default 自然对数
-
log(10,10)
-
log(10,2)
-
-
lognorm <- function(x){
-
return (log(x,10)/log(max(x),10))
-
}
-
-
mat_lognorm <- apply(mat,2,lognorm)
-
# 二代测序数据基因表达数据,往往 1 再取log
-
-
### 3.z-score标准化,标准差标准化
-
# 经过该方法处理的数据的均值是0,标准差是1
-
# z = (x-μ)/σ
-
-
scale(mat) #
-
class(scale(mat)) # [1] "matrix" "array"
-
-
# x <- 1:10
-
x <- matrix(1:10, ncol = 2)
-
scale(x) # z-score normalization
-
#scale(x,center = TRUE, scale = TRUE)
-
-
### 4. 各种包中的标准化函数
-
# R语言很多bioconductor包都有自己的数据标准化预处理方法
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfikigc
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13