机器学习-选择分类算法对标称数据和数字数据混合进行分类



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

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

所以我的问题是分类和预测顾客基于他们的年龄,性别和偏好商店的位置。我尝试过使用朴素树和决策树,但它们的分类精度有点低。

我也在考虑逻辑回归,但我不确定诸如性别和地址之类的离散值。但是,我也假设SVM具有一些内核技巧,但尚未尝试。

那么你建议用哪种机器学习算法来更好地处理这些特征呢?

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

相反,将6值分类变量转换为6个二进制变量,每个变量对应一个分类值。你最初的功能将会变成6个功能,其中只有一个功能是开启的。另外,将年龄保持为整数值,因为将其分类会丢失信息。

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

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

你可以采用协同过滤来解决你的问题,因为它也可以利用类似的功能。

最新更新