【发布时间】:2019-05-10 07:50:33
【问题描述】:
我正在尝试构建一个推荐器,它会根据人们所拥有的技能为特定活动推荐合适的人。 为此,我首先构建了一个推荐引擎,它根据历史数据(从事这些活动的人所拥有的技能)为每个活动提供技能推荐。 现在,诀窍是将这些与某些特定的人相关联。
我不太确定最聪明的方法,但最简单的方法是寻找特定活动的推荐技能,并与拥有至少 50% 的员工进行匹配技能。
我的数据集如下所示:
Region ActivityID Recommended_Skills PersonID Skills_Person
France 123 Python ABC R
France 123 PowerPoint ABC Mikado
France 123 R ABC Python
France 123 Word ABC Photoshop
France 123 Python XYZ Finance
France 123 PowerPoint XYZ Powerpoint
France 123 R XYZ Law
France 123 Word XYZ Analytics
Spain 789 JavaScript DEF PowerPoint
Spain 789 PowerPoint DEF Word
Spain 789 UI DEF R
Spain 789 Office DEF Finance
Spain 789 Python CVB JavaScript
Spain 789 PowerPoint CVB Office
基本上在这种情况下,我预期的数据框应该是这样的:
Region ActivityID PersonID
France 123 ABC
Spain 789 CVB
事实上,在这种情况下,不建议将 DEF 用于活动 123,因为需要有一个 group_by “Region”。此外,在这种情况下,每个 ActivityID 只推荐一个人,但通常应该有更多。
我希望这已经足够清楚了;任何帮助将不胜感激。
谢谢, 艾伦
【问题讨论】:
-
逻辑是否正确
df1 %>% group_by(Region, ActivityID, PersonID) %>% mutate(sn = sum(unique(Skills_Person) %in% Recommended_Skills)/n() >= 0.5 ) -
我的问题是,Recommended_Skills 是针对整列比较还是按组比较
-
嗨@akrun,感谢您的回答。推荐的_技能是每个活动。我尝试运行上面的代码,但我没有匹配特定活动的 Skills_Person 和 Recommend_Skills。
标签: r select group-by recommendation-engine