如何利用机器学习动态询问用户并推荐结果

2024-10-06 15:17:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想开发一个系统,在向用户提出多个问题后推荐一项运动。系统应该动态地决定要问哪些问题及其最合适的排序,以便为每个用户找到最佳答案。你知道吗

我有一个三重数据结构:运动与不同的属性相联系,问题可以涉及几个属性。这两种关系都是加权的。你知道吗

在0-1的范围内,足球以0.6与“室内”相联系,但以0.8与“室外”相联系,因为足球更多地在室外进行,1.0与“球”相联系,这在任何情况下都是足球所必需的。问题2与“racket”(0.7)和“bow”(0.6)相关,因为这两个项目都可以用手来使用,但是“racket”更重,因为有人更可能想到“racket”来回答这个问题。你知道吗

# table1: sports (result set)
1 | badminton
2 | soccer
3 | fishing

# table2: attributes (describes different results)
1 | indoors
2 | outdoors
3 | ball
4 | racket
5 | bow

# table3: questions (checks for needed attributes)
1 | Do you like doing sports outdoors?
2 | Do you want to hold a gadget while performing the sport?

我可以尝试在关系数据库和一些排名系统的基础上构建它,这些系统是我用python/pandas实现的。然而,我觉得我忽视了机器学习的最新发展,显然不应该自己为较小的项目构建推荐引擎:

http://www.datacommunitydc.org/blog/2013/05/recommendation-engines-why-you-shouldnt-build-one

据我所知,这可能部分是一个决策树问题,对吗?你知道吗

http://scikit-learn.org/stable/modules/tree.html

就机器学习而言,我的问题的简明问题陈述是什么?哪些库可以在python环境中支持我?你知道吗

我真的很抱歉这么幼稚,我保证如果有人能引导我朝着正确的方向前进(关于应用的理论和技术),我会尽可能多地学习。


Tags: 项目用户org机器youhttp属性系统
1条回答
网友
1楼 · 发布于 2024-10-06 15:17:41

所讨论的机器学习任务将不是在问题和运动之间找到已经确定的权重的最佳运动,而是找到已经回答的问题和喜爱的运动的权重。你知道吗

即:你有一群人(训练集)回答了你的问题,然后用一些量表(你选择)对他们最喜欢的运动进行排名。然后,训练一些算法,以概率地选择运动,从而尽可能精确地预测训练集的结果。你知道吗

如果属性已经以问题的形式存在(例如室内和室外),那么这些属性就不是真正有用的,即使这样,它们的价值也值得怀疑。你知道吗

例如,您填写的问题是:室内和室外?o、 小玩意?是的 然后你说你有多喜欢各种运动:足球?5,网球?8,B球?二

从这一点上,你的算法应该确定那些回答“o,y”的人喜欢网球,对足球漠不关心,讨厌篮球。当然,更多的数据将产生更准确的结果。你知道吗

可能离散输入建模的模型是贝叶斯网络。你可以把属性作为一个中间隐藏层包含在贝叶斯网络中,但是我会从一个简单的贝叶斯网络开始,然后看看中间层是否增加了价值。如果你确信像“用球”这样的事情在某种意义上确实是人们喜欢一项运动与另一项运动的根本原因,那么,是的,在你的人际网络中使用一个隐藏层,否则,它就没有用了。你知道吗

http://en.wikipedia.org/wiki/Bayesian_network

相关问题 更多 >