我目前正在使用支持向量机来预测用户将根据人口统计数据购买哪个项目。该数据集还包括特定年龄组的用户购买每个项目的数量。它看起来像这样:
items a b c
age
15-20 10 3 10
20-25 1 5 6
25-30 2 5 6
我不确定如何将其纳入训练数据,因为我能想到的唯一方法就是包含购买该项目的用户的一组概率值,但这非常笨拙。我的另一个想法是使用集合学习方法,并将svm与Naive Bayes分类器结合起来。我正在使用sklearn来构建我的模型。
答案 0 :(得分:1)
当您想为数据点引入权重时,SVM不再具有吸引力。当相同或非常接近的数据点具有不同的分类时,基础代数不起作用。根据您上面提供的数据,我确实希望Naive Bayes能够提供更快的计算和更清晰的结果。
那就是说,您使用的SVM算法是什么?如果它是以某种方式对向量进行加权的 - 使用每个点一次,或者为渐变下降方法的每次迭代选择一个随机点 - 那么你当然可以通过将每个点添加到训练集给定数量来处理时间。例如,你有10行说明青少年购买了项目a。
另一方面,朴素贝叶斯会给你一个统计精确模型的权重。而不是几乎单方面地预测那些20多岁的人会购买商品c(这实际上只是购买的一小部分),你会有一个模型可以告诉你,他们在20岁左右的人中有48%会购买商品c,几乎同样多的人会购买b项。
这个讨论有帮助吗?