自定义KIM特征选择函数

Customized KIM feauture selection function

函数 extractFeatures from NMF package 可以 select 使用以下方法的特征,只有当特征满足以下两个条件被保留时:

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

对基础成分的最大贡献大于所有贡献(即 W 的所有元素)的中值。

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

Kim H 和 Park H (2007)。 "Sparse non-negative matrix factorizations via alternating non-negativity-constrained least squares for microarray data analysis." 生物信息学(英国牛津)23(12),第 1495-502 页。 ISSN 1460-2059, , .

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

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

我们不需要从包 stats 中寻找 MAD 的函数,因为 mad 正是这样做的。现在如果你想 select 来自某个矩阵 M 的对应列,你可以简单地写

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

如果你更喜欢一个函数,那么你可以使用

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