选择分类算法来对名义数据和数字数据的混合进行分类?

时间:2013-01-11 09:06:29

标签: machine-learning data-mining classification

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

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

所以我的问题是根据顾客的年龄,性别和偏好商店的位置对客户进行分类和预测。我试过使用天真和决策树,但它们的分类准确度有点低。

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

因此,您建议使用哪种机器学习算法以获得更好的准确性。

2 个答案:

答案 0 :(得分:11)

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

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

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

答案 1 :(得分:1)

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

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