文档帮助中心文档
非负矩阵分解
[W,H]=nnmf(A,k)
[W H] = nnmf (k,名称,值)
[W,H,D]=nnmf(___)
例子
[W,H) = nnmf (一个,k)因素n-借-米矩阵一个为负的因素W(n-借-k)及H(k-借-米).因子分解不精确;W * H是低阶近似一个.的因素W和H最小化均方根残差D之间一个和W * H.
[W,H) = nnmf (一个,k)
W
H
一个
k
W * H
D
D=标准值(A-W*H,“fro”)/平方米(n*m)
因式分解使用一种迭代算法,从随机初始值开始计算W和H.因为均方根残差D可能有局部极小值,重复的因式分解可能会产生不同的结果W和H.有时算法收敛到比k,说明结果不是最优的。
[W,H) = nnmf (一个,k,名称,值)使用一个或多个名称-值对参数修改因式分解。例如,您可以通过设置请求重复分解“复制品”设置为大于1的整数值。
[W,H) = nnmf (一个,k,名称,值)
名称,值
“复制品”
[W,H,D) = nnmf (___)也返回均方根残差D使用前面语法中的任何输入参数组合。
[W,H,D) = nnmf (___)
全部折叠
加载示例数据。
负载fisheriris
计算费雪虹膜数据中四个变量测量值的非负二阶近似。
rng(1)%为了再现性[W,H]=nnmf(meas,2);H
H=2×40.6945 0.2856 0.6220 0.2218 0.8020 0.5683 0.1834 0.0149
第一个和第三个变量量(萼片长度和花瓣长度,系数分别为0.6945和0.6220)为第一列花瓣提供了相对较强的权重W.中的第一个和第二个变量量(萼片长度和萼片宽度,系数分别为0.8020和0.5683)为第二列提供了相对较强的权重W.
量
创建一个biplot中的数据和变量量在的列空间中W.
biplot
biplot (H ',“分数”W,“VarLabels”,{“sl”,“西南”,“pl”,“pw”});xlabel([0 1.1 0 1.1])第一列的)伊拉贝尔(第2列的)
从随机数组开始X对于第20位,尝试使用乘法算法在多个重复中进行几次迭代。
X
rng违约%为了再现性X=兰特(100,20)*兰特(20,50);opt=statset(“MaxIter”5.“显示”,“决赛”);[W0,H0]=nnmf(X,5,“复制品”,10,...“选项”选择,...“算法”,“骡子”);
代表迭代rms渣油δx | 1 | 5 0.560887 0.66418 - 0.0364471 0.0245182 - 2 5 3 5 0.619291 - 0.0455135 0.608894 - 0.0415491 0.609125 0.0358355 - 4 5 5 5 6 5 0.621549 - 0.0299965 7 5 0.640549 - 0.0438758 8 5 0.633526 - 0.0319591 0.673015 - 0.0366856 9 5 0.606835 - 0.0318931 10 5最后均方根剩余= 0.560887
使用交替最小二乘法从这些最好的结果中继续进行更多的迭代。
opt=statset(“麦克斯特”,1000,“显示”,“决赛”);[W,H]=nnmf(X,5,“W0”W0,“H0”H0,...“选项”选择,...“算法”,“als”);
rep迭代rms残差|delta x| 1 24 0.257336 0.00271859最终均方根残差= 0.257336
要分解的矩阵,指定为实矩阵。
例子:兰特(20、30)
兰特(20、30)
数据类型:仅有一个的|双重的
仅有一个的
双重的
因子的秩,指定为正整数。由此产生的因素W和H有k分别列和行。
例子:3.
指定可选的逗号分隔的对名称,值论据。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数名称1,值1,…,名称,值.
名称
价值
名称1,值1,…,名称,值
[W H] = nnmf (k,“算法”,“乘”、“复制”,10)
算法
“als”
“骡子”
因子分解算法,指定为逗号分隔对,由“算法”和“als”(交替最小二乘)或“骡子”(一种乘法更新算法)。
“算法”
的“als”算法通常更稳定,收敛更少的迭代。每次迭代花费的时间更长。因此,默认最大值为50,通常在内部测试中给出令人满意的结果。
的“骡子”算法通常有更快的迭代,需要更多的迭代。默认最大值为100。该算法往往对初始值更敏感,因此,似乎更能从运行多个重复中获益。
例子:‘算法’,‘mult’
‘算法’,‘mult’
数据类型:烧焦|一串
烧焦
一串
W0
初始值的W,指定为逗号分隔的对,由“W0”和一个n-借-k矩阵,n是的行数一个,k是的第二个输入参数nnmf.
“W0”
nnmf
H0
初始值的H,指定为逗号分隔的对,由“H0”和k-借-米矩阵,k是的第二个输入参数nnmf,米的列数是多少一个.
“H0”
选择权
[]
斯塔塞特
算法选项,指定为逗号分隔的对,由“选项”和返回的结构斯塔塞特函数。nnmf使用选项结构的以下字段。
“选项”
陈列
“关”(默认)-不显示
“关”
“决赛”-显示最终结果
“决赛”
“通路”-中间结果的迭代显示
“通路”
麦克斯特
50
100
托尔芬
1e-4
TolX
UseParallel
假
真正的
UseSubstreams
假(默认)-不重复计算
“mlfg6331_64”
“mrg32k3a”
有关详细信息,请参见并行统计计算中的再现性.
流
兰德斯特朗
如果没有指定流,nnmf使用默认流。
如果UseParallel是真正的和UseSubstreams是假,指定单元格数组兰德斯特朗对象的大小与并行池的大小相同。否则,请指定单个兰德斯特朗对象
例子:“选项”,statset(‘显示’,‘iter’,‘麦克斯特’,50)
“选项”,statset(‘显示’,‘iter’,‘麦克斯特’,50)
数据类型:结构体
结构体
复制
1
重复分解的次数,指定为逗号分隔的对,由“复制品”一个正整数。算法选择新的随机初始值W和H在每次复制时,如果指定,则在第一次复制时除外“W0”和“H0”。如果指定的值大于1,您可以通过设置算法到“骡子”.看到变换算法.
例子:10
非负的左因子一个,以n-借-k矩阵n是的行数一个,k是的第二个输入参数nnmf.
W和H已规范化,以便H具有单位长度W按长度递减顺序排列。
非负右因子一个,返回为k-借-米矩阵k是的第二个输入参数nnmf,米的列数是多少一个.
均方根残差,作为非负标量返回。
[1] 贝瑞、迈克尔W、莫里·布朗、艾米·N·兰维尔、V·保罗·鲍卡和罗伯特·J·普莱蒙斯,“近似非负矩阵分解的算法和应用。”计算统计与数据分析52岁的没有。1(2007年9月):155-73。https://doi.org/10.1016/j.csda.2006.11.006.
要并行运行,请指定“选项”调用此函数时的名称-值参数,并设置“UseParallel”要删除的选项结构的字段真正的使用斯塔塞特.
“UseParallel”
例如:“选项”,statset('UseParallel',true)
“选项”,statset('UseParallel',true)
有关并行计算的更多信息,请参见运行MATLAB函数与自动并行支持金宝app(并行计算工具箱).
主成分分析|法特朗|斯塔塞特|biplot
主成分分析
法特朗
您有此示例的修改版本。是否要用您的编辑打开此示例?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
联系当地办事处