gpt4 book ai didi

algorithm - Strategy设计模式如何实现?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:05:01 25 4
gpt4 key购买 nike

我正在研究推荐系统。这将是一个 Android 应用程序,用户将在其中输入他们的偏好,并根据这些偏好,向该用户显示其他匹配的配置文件。我正在从用户那里获取数据并将其存储在 Firebase 中。

这些是数值,为了向该用户显示匹配的配置文件,我使用两种算法来计算用户之间的相似性计数:余弦相似度Pearson 相关性

我正在从应用程序中获取算法的名称,然后执行该算法以向用户显示类似的配置文件。

if (request.query.algo === "cosine") {
// compute cosine value
}
else if (request.query.algo === "pearson-correlation") {
// compute pearson correlation coefficents

}

因为这将是一个实时应用程序,所以这种方法是完全错误的,我想实现策略设计模式,其中算法可以在运行时而不是编译时决定。

那么现在的问题是,在策略设计模式中,我将如何决定何时使用哪种算法?

例如,当您使用信用卡购物时,信用卡的类型并不重要。所有信用卡都有一个磁条,其中包含编码信息。 strip 及其包含的内容代表“接口(interface)”,卡的类型将是“实现”。每张信用卡都可以替换为任何其他信用卡,并且彼此完全独立。

同样,在使用策略设计模式的运行时,我应该根据什么在余弦和 Pearson 之间进行选择?

最佳答案

根据我的理解,在两个用户配置文件具有非常不同的项目集(在本例中为偏好)的情况下,Pearson 的表现会更差。

也许这就是您的标准?如果匹配偏好的数量超过某个阈值,则使用 Pearson,对于其他情况则使用余弦。

您或许可以向您的用户显示一个 CLOSE 匹配列表,它使用余弦来显示配置文件有很多共同点的用户。

然后您可以显示第二个列表,上面写着您可能也感兴趣,它使用 Pearson 来显示没有很多共同偏好的匹配配置文件。

关于algorithm - Strategy设计模式如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46017573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com