【问题标题】:Combining probabilistic estimates with support vector machine in sklearn在sklearn中将概率估计与支持向量机相结合
【发布时间】:2016-03-25 17:20:43
【问题描述】:

我目前正在使用支持向量机来预测用户将在给定人口统计数据的情况下购买哪件商品。该数据集还包括某个年龄段的用户购买了每件商品的数量。它看起来像这样:

   items a b c
age 
15-20    10 3 10
20-25    1 5 6
25-30    2 5 6

我不确定如何将其合并到训练数据中,因为我能想到的将其合并的唯一方法是包含一组用户购买该商品的概率值,但这非常笨拙。我的另一个想法是使用集成学习方法,并将 svm 与可能的朴素贝叶斯分类器结合起来。我正在使用 sklearn 来构建我的模型。

【问题讨论】:

    标签: python scikit-learn svm ensemble-learning


    【解决方案1】:

    当您想为数据点引入权重时,SVM 不再那么有吸引力了。当相同或非常接近的数据点具有不同的分类时,基础代数就无法正常工作。从您上面提供的数据来看,我确实希望朴素贝叶斯能够提供更快的计算和更清晰的结果。

    也就是说,您使用的是什么 SVM 算法?如果它以某种方式对向量进行加权——每个点只使用一次,或者为梯度下降方法的每次迭代选择一个随机点——那么你当然可以通过将每个点添加到训练集中给定的数字来处理这个问题次。例如,您将有 10 行说明青少年购买了商品 a。

    另一方面,朴素贝叶斯会为您提供统计上准确模型的权重。与其几乎单方面预测 20 多岁的人会购买商品 c(这实际上是购买商品中的一小部分),不如您有一个模型可以告诉您 48% 的 20 多岁的人会购买商品 c,并且几乎一样多的人会购买商品 b。

    这个讨论有帮助吗?

    【讨论】:

    • 另一种选择可能是逻辑回归。如果你有相关的特征,它可能比朴素贝叶斯表现更好。
    猜你喜欢
    • 2017-05-07
    • 2019-06-07
    • 2014-03-28
    • 2014-03-18
    • 1970-01-01
    • 2017-12-05
    • 2017-05-17
    • 2016-08-04
    • 2021-03-14
    相关资源
    最近更新 更多