使用 K-NN 的基于项目的推荐器

数据挖掘 机器学习 Python scikit-学习 推荐系统 k-nn
2022-02-16 22:37:08

我正在尝试使用k-nn. 我有一个项目列表,所有这些项目都有一些共同的属性(特征)。

item    var_1      var_2    var_3        var_4          var_5
item_1  0.171547232  a      0.908855471  0.292061808    0.285678293
item_2  0.131694336  b      0.432665234  0.501300418    0.756824175
item_3  0.144318764  b      0.238752071  0.487600679    0.203133779
item_4  0.249241125  b      0.921229689  0.003638622    0.606875991
item_5  0.414306046  b      0.190824352  0.937412611    0.1789091
item_6  0.909501131  c      0.847112499  0.548322302    0.060136059
item_7  0.37469644   c      0.282628025  0.211128351    0.125910578
item_8  0.308634676  d      0.174650423  0.705026302    0.440098246
item_9  0.039294192  d      0.877086507  0.756817338    0.089838708
item_10 0.1641442    d      0.595879033  0.376224097    0.733153096 

基于随机项目输入,我想找到顶部10相似的项目使用k-nn算法并将它们用作推荐。但是,我也想按反比例加权var_3,因此当var_3的值较低时,该项目在建议项目的排名中会更高。

你对如何解决这个问题有什么建议吗?

1个回答

metric您可以使用sklearns中的参数定义自定义距离度量KNeighborsClassifier,您可以在其中指定在计算算法距离时调用的可调用函数。在那里,您可以按反比例加权var_3 。