我有一个包含1000个样本的训练数据集,其中大约有50个特征,其中30个是分类特征,而其余的则是数值/连续特征。哪种算法最适合处理同时包含分类和连续特征的混合特征集?
我有一个包含1000个样本的训练数据集,其中大约有50个特征,其中30个是分类特征,而其余的则是数值/连续特征。哪种算法最适合处理同时包含分类和连续特征的混合特征集?
通常情况下,最好的方法是将所有功能转换为标准化的连续特征。
对于原来就是连续性的特征,进行标准化:x_i = (x_i - mean(x)) / standard_deviation(x)。也就是说,对于每个特征,先减去该特征的平均值,然后除以该特征的标准差。另一种方法是将连续型特征转换成 [0, 1] 范围内的数值:x_i = (x_i - min(x)) / (max(x) - min(x))。
对于分类特征,对它们执行二元化,使每个值都成为一个连续变量,取值为 0.0 或 1.0。例如,如果你有一个分类变量“性别”,它可以取值 MALE、FEMALE 和 NA,则应创建三个二进制变量 IS_MALE、IS_FEMALE 和 IS_NA,其中每个变量的值只能为 0.0 或 1.0。然后可以像第一步那样进行标准化。
现在您已经将所有特征转换为标准化的连续变量。
标准化分类或离散变量(即0或1)并不是一个好主意,因为规范化的输入将遵循一个超出训练数据分布的特定值(例如0.5或0.7),这些值从未成为输入信号的一部分。