基于更多数据帧的预测

数据挖掘 Python scikit-学习 熊猫
2022-02-15 12:49:32

我试图预测用户给餐厅的分数。

我拥有的数据可以分为两个数据框

  • 关于用户的数据(品味、个人特征、家庭……)
  • 有关餐厅的数据(营业时间、位置、美食……)。

第一个主要问题是:我该如何处理?

我已经尝试使用用户数据框进行基本预测(使用 RandomForest 预测一列,其他列很少),这非常简单。这些数据框在逻辑上是不同的,我无法将它们合并为一个。

做这样的预测时最好的方法是什么?此类任务最常用的方法是什么?

我的第二个问题是处理分类数据(cuisine fe)的最佳方法是什么?

我知道我可以创建一个映射函数并将每个值转换为索引,或者我可以使用 pandas 中的分类(可能还有其他几种方法)。有没有首选的方法来做到这一点?

1个回答

第一个问题——预测用户分数:
解决这个问题的一种方法是使用协同过滤
基本思想是将每个实体类型(用户、餐馆)“放置”在向量空间中,其中可以使用距离函数。
通过这种方式,您可以了解到,如果 user1 与 user2 相似(短距离)并且 restaurant1 与 restaurant2 相似,那么两个用户很可能会给两家餐厅相似的分数。使用协同过滤的一种流行算法是“矩阵分解” - 矩阵分解示例在文章的底部。

第二个问题 - 处理分类变量:
使用one-hot-encoding处理分类数据是一种常见的方法。
我个人喜欢使用pandas.get_dummies函数。