在推荐系统中使用决策树

时间:2014-04-05 08:21:45

标签: machine-learning scikit-learn decision-tree

我有一个在列(年龄,性别,时间,日,观点,点击)上训练的决策树,它被分为两类 - 是或否 - 表示项目X的购买决策。 使用这些值, 我试图预测1000个样本(客户)的概率('12','男','9:30','星期一','10','3'), ( '50', '女', '10:40', '周日', '50', '6') ........ 我想获得个人概率或分数,这将有助于我识别哪些顾客最有可能购买物品X.所以我希望能够对预测进行排序,并向只有5个想要购买的顾客展示特定物品项目X. 我怎样才能做到这一点? 决策树会达到目的吗? 还有其他方法吗? 我是ML的新手,请原谅我有任何词汇错误。

2 个答案:

答案 0 :(得分:2)

使用带有小样本集的决策树,您肯定会遇到过度拟合问题。特别是在决策的较低级别,树在哪里,您将拥有指数级数据来训练您的决策边界。您的数据集应该包含比类别数量更多的样本,并且每个类别都有足够的样本。

说到决策边界,请确保您了解如何处理每个维度的数据类型。例如,'性别'是一种分类数据,其中“年龄”,“一天中的时间”等是实际值输入(离散/连续)。因此,树的不同部分需要不同的配方。否则,您的模型可能会最终处理9:30,9:31,9:32 ......作为单独的类。

尝试一些其他算法,从简单的算法开始,比如k-nearest neighbor(KNN)。有一个验证集来测试每个算法。使用Matlab(或类似软件),您可以使用库快速尝试不同的方法,看看哪种方法效果最好。这里没有足够的信息向您推荐非常具体的信息。另外,

我建议你也试试KNN。 KNN能够捕获数据中的亲和力。比如,在产品页面上大约5次点击之后,产品X在20日左右之间,在晚上购买。 KNN将能够告诉您每个新客户与购买该商品的客户的距离。基于此,您可以选择前5名。非常容易实现,并且作为更复杂方法的基准非常有效。

(假设观看次数和点击次数表示每个客户对产品X的点击次数和观看次数)

答案 1 :(得分:1)

决策树是分类器,并且通常它不适合作为推荐系统的基础。但是,鉴于您只预测购买一件商品的可能性,而不是数万件,使用分类器是有道理的。

您只需对所有客户进行评分,并保留购买X的概率最高的5,是的。还有问题吗?