首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带负值的NMF

使用带负值的NMF
EN

Stack Overflow用户
提问于 2016-07-14 00:20:18
回答 2查看 1.3K关注 0票数 0

当我们有一个负值的数据集时,我们可以应用非负矩阵分解吗?如果是,是如何实现的?

EN

回答 2

Stack Overflow用户

发布于 2016-11-02 00:43:04

如果使用的是R:

nneg.data.matrix <- nneg(data.matrix)

nneg.data.matrix < 0

附加参数“method”选项包括:

pmax -每个条目都被限制在阈值之上。

posneg -矩阵被分成“正”和“负”两个部分,每个部分的条目被约束为高于阈值。结果是将这两个部分按行(即rbind-ed)堆叠成单个矩阵,该矩阵的行数是输入矩阵对象的两倍。

absolute -每个条目的绝对值都被限制在阈值之上。

min -通过向每个条目添加最小条目(仅当其为负数时)进行全局移位,然后应用阈值。

票数 2
EN

Stack Overflow用户

发布于 2020-09-25 14:50:55

您可以将数据帧的最小值添加到整个单元格中,使其为非负值

代码语言:javascript
复制
set.seed(1)
x <- rmatrix(5,5, rnorm, mean=0, sd=5)
x
 

           [,1]      [,2]       [,3]        [,4]       [,5]
[1,] -3.1322691 -4.102342   7.558906 -0.22466805  4.5948869
[2,]  0.9182166  2.437145   1.949216 -0.08095132  3.9106815
[3,] -4.1781431  3.691624  -3.106203  4.71918105  0.3728249
[4,]  7.9764040  2.878907 -11.073499  4.10610598 -9.9467585
[5,]  1.6475389 -1.526942   5.624655  2.96950661  3.0991287

nneg(x, method='min')

          [,1]      [,2]      [,3]     [,4]      [,5]
[1,]  7.941230  6.971158 18.632405 10.84883 15.668386
[2,] 11.991716 13.510645 13.022716 10.99255 14.984181
[3,]  6.895356 14.765123  7.967297 15.79268 11.446324
[4,] 19.049903 13.952406  0.000000 15.17961  1.126741
[5,] 12.721038  9.546558 16.698154 14.04301 14.172628
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38356964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档