混合分类和数值特征的机器学习算法

3

我有一个包含1000个样本的训练数据集,其中大约有50个特征,其中30个是分类特征,而其余的则是数值/连续特征。哪种算法最适合处理同时包含分类和连续特征的混合特征集?

2个回答

2

通常情况下,最好的方法是将所有功能转换为标准化的连续特征。

  1. 对于原来就是连续性的特征,进行标准化:x_i = (x_i - mean(x)) / standard_deviation(x)。也就是说,对于每个特征,先减去该特征的平均值,然后除以该特征的标准差。另一种方法是将连续型特征转换成 [0, 1] 范围内的数值:x_i = (x_i - min(x)) / (max(x) - min(x))。

  2. 对于分类特征,对它们执行二元化,使每个值都成为一个连续变量,取值为 0.0 或 1.0。例如,如果你有一个分类变量“性别”,它可以取值 MALE、FEMALE 和 NA,则应创建三个二进制变量 IS_MALE、IS_FEMALE 和 IS_NA,其中每个变量的值只能为 0.0 或 1.0。然后可以像第一步那样进行标准化。

现在您已经将所有特征转换为标准化的连续变量。


是的,我按照您的建议将所有分类特征转换为数值特征,但这些特征只能具有0或1的值,而不像薪资这样范围较大的实际数值特征。对于分类特征,可能像朴素贝叶斯这样的概率算法可能更准确,而对于所有连续特征,像SVM这样的算法可能效果更好。但是否有一种算法可以更好地处理既有分类特征又有连续特征的用例呢?顺便说一下,这是一个二元分类问题。 - user3207663
将分类特征转换为连续/浮点数(0.0或1.0),而不是整数(0或1)。这将使您能够执行ML算法中所需的任何后续计算。 - stackoverflowuser2010

0

标准化分类或离散变量(即0或1)并不是一个好主意,因为规范化的输入将遵循一个超出训练数据分布的特定值(例如0.5或0.7),这些值从未成为输入信号的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接