其他分享
首页 > 其他分享> > R语言降维——非负矩阵分解(NMF包的实现)

R语言降维——非负矩阵分解(NMF包的实现)

作者:互联网

目录

0引言

先从数据的条件来理解非负矩阵分解方法:

1、R语言实现(NMF包的加载)

install.packages("NMF")   # 安装包的命令
library(NMF) # 加NMF包 

NMF包里的函数有很多,可以通过以下方式查看:

help(package = "NMF")

本文主要讲解下面几个函数:nmf、basis、basismap、coef、coefmap

2、nmf建立模型实现非负矩阵分解

先是构造数据V矩阵:

# 方法一
V = rmatrix(3,3)
# 方法二
n <- 20; counts <- c(2, 2, 4);
V <- syntheticNMF(n, counts)

使用方法二的数据降维建模:

res <- nmf(V, 3)  # 3是指定分解维数的秩不省略。

下面输出降维效果。

3、W矩阵

> basis(res)
              [,1]         [,2]         [,3]
 [1,] 5.667319e+00 2.675530e+00 2.220446e-16
 [2,] 3.465761e+00 2.220446e-16 1.661215e-01
 [3,] 6.282332e+00 4.171376e+00 2.220446e-16
 [4,] 1.170936e+01 2.220446e-16 9.573067e-01
 [5,] 4.037403e+00 2.220446e-16 2.220446e-16
 [6,] 4.438801e+00 1.059708e+00 2.220446e-16
 [7,] 4.769096e+00 1.900982e+00 2.220446e-16
 [8,] 4.327212e+00 2.220446e-16 2.055202e+00
 [9,] 1.091429e-01 8.637713e+00 2.601575e+00
[10,] 1.206604e+00 2.180740e+00 2.220446e-16
[11,] 9.982590e-01 3.159403e+00 4.918777e+00
[12,] 1.089757e+00 2.220446e-16 5.268192e+00
[13,] 3.266028e+00 2.532583e-01 2.220446e-16
[14,] 2.220446e-16 1.034724e-01 8.669974e+00
[15,] 3.561339e-01 8.098697e-14 9.788825e+00
[16,] 2.220446e-16 6.476458e+00 2.220446e-16
[17,] 2.220446e-16 2.220446e-16 9.103781e+00
[18,] 2.220446e-16 4.018005e+00 8.152666e-01
[19,] 1.001330e+00 2.220446e-16 8.583337e+00
[20,] 1.498186e+00 6.188036e+00 2.853327e+00

W矩阵分解图。

basismap(res)

在这里插入图片描述

4、系数矩阵H

> coef(res)
             [,1]       [,2]         [,3]         [,4]        [,5]
[1,] 2.285984e-01 0.14465007 1.995241e-01 1.554168e-01 0.001258854
[2,] 2.220446e-16 0.03991706 2.220446e-16 9.745704e-02 0.138712957
[3,] 5.653353e-02 0.02613686 2.220446e-16 2.220446e-16 0.255439511
             [,6]         [,7]         [,8]
[1,] 2.220446e-16 2.220446e-16 2.220446e-16
[2,] 1.313721e-01 2.949617e-01 2.220446e-16
[3,] 2.206748e-01 1.976229e-01 3.847068e-01

W矩阵分解图。

coefmap(res)

在这里插入图片描述

标签:00,01,16,2.220446,非负,矩阵,NMF,降维
来源: https://blog.csdn.net/weixin_46111814/article/details/105765321