给一个人三个项目,比如人脸图片,并要求他们从三个人脸中选出最相似的两个。对于不同的面组合,这会重复很多次,其中每个面都可以以多种组合出现。鉴于这种数据,我想通过假设每个面可以放置在 2D 空间(或 3d、4d 等)中来建模/估计面之间的差异/相似性,其中每个面之间的距离反映了选择参与者。
什么是建模/估计的好(甚至可能是标准)方法?
任何指向模型/论文和/或软件包的指针都非常感谢。
给一个人三个项目,比如人脸图片,并要求他们从三个人脸中选出最相似的两个。对于不同的面组合,这会重复很多次,其中每个面都可以以多种组合出现。鉴于这种数据,我想通过假设每个面可以放置在 2D 空间(或 3d、4d 等)中来建模/估计面之间的差异/相似性,其中每个面之间的距离反映了选择参与者。
什么是建模/估计的好(甚至可能是标准)方法?
任何指向模型/论文和/或软件包的指针都非常感谢。
可以在Cox 等人 (2000)的论文The Bayesian Image Retrieval System, PicHunter的第 4 节中找到解决此类问题的好方法。数据是一组整数结果在哪里是试验次数。在您的情况下,每次试验有 3 种可能的结果。我会让是被遗漏的人脸的索引。这个想法是假设给定一些模型参数的结果的生成模型,然后通过最大似然估计参数。如果我们展示面孔参与者说是最相似的,那么结果是, 有概率
论文中的模型略有不同,因为论文使用图像的已知属性来计算距离,而不是未知的嵌入。要学习嵌入,您需要一个更大的数据集,其中每张脸都显示了多次。
这个基本模型假设所有试验都是独立的,所有参与者都是相同的。这种方法的一个很好的好处是您可以轻松地修饰模型以包含非独立性、参与者效应或其他协变量。
想法:
我认为特征脸是将百万维空间转换为几十维的一种不错的方法。
前提:
因此,让我们假设您正在使用一个不错的特征脸工具,或者一个:
这意味着您没有“图片”,因为您拥有长度为 O(n=50) 元素的向量,其中元素是构成基础的每个特征面的权重。
分析:
首先,我将创建 150 个元素的向量(权重的串联)作为输入,并创建 1 个元素的向量(最接近匹配的元素)作为输出。如果元素 1 和 2 最接近,则输出值为“12”。如果元素 1 和 3 最接近,则输出将为“13”。如果元素 2 和 3 最接近,则输出将为“23”。鉴于只有 3 个独特的输出,我可以将它们重新映射到“12”的案例 1、“13”的案例 2 和“23”的案例 3。
其次,我想尽可能多地丢弃无意义的数据。这意味着我会尝试使用随机森林之类的东西来确定大约 150 列中的哪些列没有提供信息。还有一种“随机邪恶双胞胎方法”,但我没有像 R 给我随机森林那样触手可及。(如果你知道一个好的 R 库,我邀请你把它放在评论中)。
第三,以我个人的经验,如果你有合适的样本量和合适的基础,随机森林通常可以让你减少到大约 30 个感兴趣的变量,甚至从多达 15k 列中。这是您必须考虑答案的一般形式的地方。
您可以尝试对这些变量进行十几种变换,以将减少的输入映射到输出:
更多想法:
更新:
“随机邪恶双胞胎”工具是“Boruta”。(链接)