4

我有一个关于客户购买模式的大约 100,000 条记录的数据集。数据集包含

  • 年龄(从 2 到 120 的连续值)但我也计划将其分类为年龄范围。
  • 性别(0 或 1)
  • 地址(只能是六种或者我也可以用1到6的数字来表示)
  • 偏好商店(只能来自 7 家商店)这是我的班级问题。

所以我的问题是根据客户的年龄、性别和位置对偏好商店进行分类和预测。我曾尝试使用朴素树和决策树,但它们的分类准确率在下面有点低。

我也在考虑逻辑回归,但我不确定性别和地址等离散值。但是,我也假设 SVM 有一些内核技巧,但还没有尝试过。

因此,您建议使用哪种机器学习算法来提高这些功能的准确性。

4

2 回答 2

11

问题是您在连续尺度上表示名义变量,当您使用机器学习方法时,这会在类之间强加一种(虚假的)序数关系。例如,如果您将地址编码为六个可能的整数之一,则地址 1 更接近地址 2,而不是地址 3、4、5、6。当您尝试学习任何东西时,这将导致问题。

相反,将您的 6 值分类变量转换为 6 个二进制变量,每个变量对应一个分类值。然后,您的原始功能将产生六个功能,其中只有一个会出现。此外,将年龄保持为整数值,因为通过将其设为分类会丢失信息。

至于方法,它不太可能有很大的不同(至少在最初)。选择更容易实现的那个。但是,请确保在测试集上运行之前在开发集上运行某种交叉验证参数选择,因为所有算法都具有会显着影响学习准确性的参数。

于 2013-01-15T10:49:29.140 回答
1

您确实需要查看数据并确定您的标签与您当前拥有的功能之间是否存在足够的差异。因为特征很少但数据很多,所以像 kNN 这样的东西可以很好地工作。

您可以调整协同过滤来解决您的问题,因为这也适用于类似的功能。

于 2013-01-11T11:31:07.683 回答