NMF
package
中的函数extractFeatures只有在保留以下两个条件的功能时才能使用以下方法选择要素:
得分大于\hat{\mu} + 3 \hat{\sigma}
,其中\hat{\mu}
和\hat{\sigma}
分别是得分的中位数和中位数绝对偏差(MAD);
对基准成分的最大贡献大于所有贡献的中位数(即W的所有要素)。
如何在R中编写此函数,仅将第一个条件应用于数据矩阵?
答案 0 :(得分:1)
给定一个向量scores
,可以按如下方式检查每个得分的条件:
scores <- rnorm(5)
scores > (median(scores) + 3 * mad(scores))
# [1] FALSE FALSE FALSE FALSE FALSE
我们不需要从包mad
中stats
查找MAD的函数。现在,如果您想从某个矩阵M
中选择相应的列,您可以简单地编写
M[, scores > (median(scores) + 3 * mad(scores))]
如果您更喜欢这个功能,那么您可以使用
featureCriterion <- function(M, scores)
M[, scores > (median(scores) + 3 * mad(scores))]