自定义KIM功能选择功能

时间:2018-03-05 16:42:17

标签: r function apply nmf

NMF package中的函数extractFeatures只有在保留以下两个条件的功能时才能使用以下方法选择要素:

得分大于\hat{\mu} + 3 \hat{\sigma},其中\hat{\mu}\hat{\sigma}分别是得分的中位数和中位数绝对偏差(MAD);

对基准成分的最大贡献大于所有贡献的中位数(即W的所有要素)。

如何在R中编写此函数,仅将第一个条件应用于数据矩阵?

Kim H和Park H(2007)。 "通过交替的非负性约束最小二乘法进行微阵列数据分析的稀疏非负矩阵因子分解。" 生物信息学(牛津,英格兰) 23 (12),第1495-502页。 ISSN 1460-2059 ,,。

1 个答案:

答案 0 :(得分:1)

给定一个向量scores,可以按如下方式检查每个得分的条件:

scores <- rnorm(5)
scores > (median(scores) + 3 * mad(scores))
# [1] FALSE FALSE FALSE FALSE FALSE

我们不需要从包madstats查找MAD的函数。现在,如果您想从某个矩阵M中选择相应的列,您可以简单地编写

M[, scores > (median(scores) + 3 * mad(scores))]

如果您更喜欢这个功能,那么您可以使用

featureCriterion <- function(M, scores)
  M[, scores > (median(scores) + 3 * mad(scores))]