我陷入了这种奇怪的高维聚类问题。这是一个类比来解释它。
想象一下,有2 ^ 10人进入森林,我们想知道有多少鸟类居住在那里。
这些鸟类在128维度上彼此不同,所有维度都是二元的。那就是:一只鸟有大喙或小喙,要么它有一个蓝色的翅膀,要么它没有,等等。(每种鸟类可以用128位表示)
我的问题是当这些人离开森林时,我们只有他们观察的聚合:
“我看到8只鸟,3只有蓝色的喙(5只没有),4只有蓝色的翅膀(4只没有),1只有大喙(7只没有),等等”。他们不报告他们观察的个别特征,而只报告他们观察的总量。
还有两个额外的限制因素:
i)所有物种至少观察一次; ii)物种数量很少(约2 ^ 5)。
当然,我们可以编译它们的聚合物的总和(3000个观察,357个鸟有大喙等)。但那些集群呢?
所以问题是:
我们怎样才能知道有多少物种居住在那里?
我们如何才能找出每个物种的特征?
答案 0 :(得分:2)
从2^128 = 340282366920938463463374607431768211456
开始,您需要相当高的样本量来得出有效的结论。观察到的每只鸟都很容易独特。
答案 1 :(得分:2)
如果x
是一个人对一组鸟类的集合观察,那么您可以通过矩阵乘积Dz
来近似它,其中D
是一个矩阵,其列代表个体的特征鸟类,z
是每只鸟的数量的矢量。
如果你假设只观察到少量的鸟类,那么这就是z
量级的约束。
这个问题与稀疏字典学习问题非常相似。
以下是一些链接,它们都描述稀疏字典学习(及相关问题)并提供解决它的软件:http://spams-devel.gforge.inria.fr/和http://www.ux.uis.no/~karlsk/dle/index.html