带有分类和连续数据的机器学习


9

这个问题可能会在这里或关于...

假设您的训练数据集同时包含分类数据和连续数据,例如:

 Animal, breed,  sex, age, weight, blood_pressure, annual_cost
 cat,    calico, M,   10,  15    ,   100         , 100 
 cat,    tabby,  F,   5,   10    ,   80          , 200
 dog,    beagle, M,   3,   30    ,   90          , 200
 dog,    lab,    F,   8,   75    ,   80          , 100

可以预测的因变量是年度兽医成本。对于处理此类数据集的具体技术,我有些困惑。处理连续数据和分类数据混合的数据集的常用方法是什么?

Answers:


8

对于类别属性的每个类别(品种,性别...),您可以向特征向量添加与该类别中可能的值数量相等的组件数量。然后,如果数据点具有第ith个值,则将这些组件中的第i个设置为1,将该属性的其余部分设置为0。

在您的示例中,对于性别,您将向特征向量添加两个新成分。如果动物是雄性,则将第一个设置为1,将第二个设置为0,反之亦然。对于动物,如果您的选择是猫,狗和鱼,那么您将使用三个部分来做同样的事情。

这些将与连续属性并存。您可能需要调整“指标值”(当属性为“ on”时使用的值)的大小,以使其与您正在使用的连续值的大小可比。

如果选择这种方式解决问题,则下一步将是选择支持向量机之类的算法,并将其作为特征向量。当然,某些方法(例如决策树)不需要我上面提到的步骤就可以开始。


1
酷,很棒的提示!在测试数据中可能从未出现训练数据的品种的情况如何?例如,如果测试数据中有贵宾犬而不是培训数据中的贵宾犬?对于品种矢量的所有分量,最好的走法是否都为零?
reptilicus

2
实际上,相反的方法(称为数据离散化)通常是分层方法(例如决策树算法)的最佳选择。数据离散化也是一种数据预处理技术(如另一个答案中所述)。
rvcoutinho

2

您应该看一下数据预处理。它早于任何机器学习技术。是一个很好的介绍(可从Google找到)。

关于技术,有很多不同的方法。在预处理数据之后,您可能可以使用它们中的大多数。您应该尝试一下,然后选择最适合您的需求。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.