我想在Android手机应用程序的工作,我有一个功能根据兴趣和位置找到匹配。许多约会应用程序已经在做一些有点功能,例如Tinder根据位置,性别和年龄等进行匹配。基于兴趣和位置的算法为Android手机应用程序
如果已经完成,我不想重新发明轮子。我已搜查谷歌和一些建议使用聚类算法此Algorithm for clustering people with similar interestsUser similarities algorithm
让我们我有用户
User1: {location: "Delhi, India", interests: ["Jogging", "Travelling", "Praying"] }
User2: {location: "Noida, India", interests: ["Running", "Eating", "Praying"] }
User3: {location: "Bangalore, India", interests: ["Exercise", "Visiting new places", "Chanting"] }
我写匹配少数低于标准匹配算法在这个JSON格式的数据 -
如果用户1对“慢跑”感兴趣并且另一个用户2对“跑步”感兴趣,以便慢跑和跑步或者是一种练习,所以他们应该匹配该个人资料以及它应该位置明智也最接近应该在上面。
该算法,当按比例运行时,应该相当高效。这意味着我想避免将每个用户分别与每个其他用户进行比较。对于N个用户,这是一个O(N^2)操作。理想情况下,我想开发某种“分数”,我可以为每个用户单独生成一个“分数”,因为这只涉及循环所有用户一次。然后,我可以找到具有类似分数的其他用户,并根据该分数确定最佳匹配。
任何人都可以建议我用的我怎么能与firebase-cloud-function
和firebase-database
帮助实现这一目标的一些实施。
你的意思是,首先我需要一个配置文件的一些数据库,随机和明智的位置开始,一旦我拥有的用户数据,然后开始关注基础配套? –
不要开始完全随机的。但有一些广泛的启发式。例如,给予完全匹配轻微的优先权。一旦你有足够的数据放弃启发式,并采用基于机器学习的模型。 – ElKamina
我陷入了困境。我是新为这些基于还挺机器学习模型,你有一个想法,我应该怎么跟我的情况下开始的?我应该在我的服务器上运行脚本还挺cron作业,其分析其分布匹配与否数据库中的所有配置文件数据,然后映射配置文件?像数据库中的每个配置文件的匹配属性具有那些匹配的配置文件ID? –