从过去的二元响应中最小化问卷的问题数量

机器算法验证 机器学习 相关性 数据可视化 Python 互信息
2022-04-14 11:42:58

我们拥有来自 600,000 名用户的数据,这些数据描述了他们是否观察到了 80 多个二进制特征中的每一个。也就是说,我们的数据是具有用户配置文件的 600,000 x 80 二进制矩阵。

我们从检查中知道,一些特征是正相关和负相关的。一些正面/负面特征排除了其他特征。大多数用户的个人资料中的正面特征少于 10 个。

我们希望通过从 80 多个潜在用户中向他们询问最少一组问题来检索新用户的个人资料。

这个想法是向新用户提供一小组问题(5-10)。这些应该提供最大量的信息,以“减少”合理的后续问题的数量。在用户回答了第一组问题后,我们想问下一组,再次更快地“减少”后续问题的数量。考虑正面和负面的反应似乎是合理的。

你能给我一些关于如何实现这个模型的提示吗?我们希望拥有:

  • 一种衡量给每个用户的预期问题数量分布的方法。
  • 一些调整提供的“初始问题数量”的方法。
  • 应该对模型进行预处理,以便能够对用户输入做出快速反应。
  • 如果可能,可视化问题之间的关系。
  • 如果可能的话,能够控制预期的问题数量(我猜是通过丢弃低相关性)。
  • 如果可能,使用新的受访者逐步更新模型(非关键)

我们计划在 Python 中进行原型设计,然后在 .Net 中实现,但欢迎使用任何其他提示/代码。

1个回答

听起来很像计算机化自适应测试 (CAT)应用程序。这只是一个小提示,不是全面解决方案的尝试,所以我希望其他人能继续提供答案。

我假设您希望从一个最佳的小问题子集中预测对未提出问题的响应,以达到如此准确的程度,以至于实际上不需要实际询问可以从以前的响应中预测答案的问题. 具体来说,我假设您的原始含义有几点:

  • “一些正面/负面的特征排除了其他特征。” = 一些特征可以用来非常准确地预测其他特征的缺失,甚至可能完全没有任何错误。

  • “为了‘减少’合理的后续问题的数量”= 目的是减少后续问题的数量,这些问题主要提供与已问问题收集的信息冗余的信息。

如果我误解了这些部分,我的提示可能会产生误导;否则,我认为我至少指出了正确的大方向。我对 CAT 的了解并不多于它所服务的一般用途,所以我希望你比我更有能力有效地进一步研究它。

另一个想法涉及一种稍微不同的方法,即您将尝试减少您关心的问题的总数,以便向所有未来的用户提出问题。您可以通过使用多维项目响应理论(MIRT;例如,参见 Maydeu-Olivares,2001 年Osteen,2010 年)。如果您发现您的许多项目都提供了有关相同潜在因素的信息,这可以帮助您根据更短的更广泛因素列表来了解您的总信息库。如果您发现该列表(您的一组问题中的潜在因素)包含了您真正想知道的足够多的内容,您可能会选择删除一些不能很好地预测潜在因素并且不提供其他重要因素的问题信息。您甚至可以考虑只保留最能预测每个潜在因素的一两个项目,具体取决于您最终想要对这些数据做什么。我的这个切线想法假设你的一些问题是一次性的。此外,处理一些问题可能只会在一定程度上简化您的问题,而不是真正解决它。

另外,我认为 CAT 和 MIRT 都会假设您的二进制数据是(一个)基础连续维度的指标。如果不是这种情况,这两种想法都可能具有误导性,您可能想多说一点您的数据的性质,以帮助告知未来的答案(或对我自己的编辑)。