我正在尝试使用多元线性回归模型来预测员工的薪水。我总共有 88 个依赖特征,其中 19 个是分类的,其余的是连续的。我已经设法将连续特征的数量从 69 个减少到 41 个。现在我正在尝试减少分类特征的数量,但由于我的数据不是正态分布的,我不能使用 t 检验或 ANOVA。我可以使用哪些其他测试来查看这些特征对于预测目标是否重要?
如果数据不是正态分布的,如何使用分类变量和连续目标执行特征选择?
谨慎选择特征!不要仅仅依赖特征选择技术。他们有时可能会产生误导。这是我通常遵循的过程:
1.) 首先要做的是建立一个基线模型,在其中考虑所有特征并记录性能。这会给你一个基线分数来比较。(不要在这里执行超参数调整!)
2.) 现在你执行特征工程,看看你是否可以将多个特征组合成一个。例如,您有 3 个特征,即汽车的销售日期、月份和年份。您可以将它们全部 3 组合成一个特征年龄。这将减少数据集的维度。
3.) 在这里,您尝试从特征中删除任何异常值/无意义的值。例如,在预测汽车价格的情况下,您的汽车年份为 1900。这是一个无意义的值,对模型没有帮助。您可以安全地删除它。(小心你如何处理异常值,因为删除它们不是唯一的解决方案,但这本身就是另一个话题!)
4.) 现在您可以执行特征选择。您可以使用很多技术,例如基于过滤器、基于包装器和混合技术。但不要只是盲目地使用这些,因为它们可能会产生误导。相反,首先使用主题专业知识来删除任何多余的功能(这是我通常做的)。
应用上述所有内容通常会导致删除冗余功能。如果不是,那么请使用第 4 点中提到的特征选择技术。)。
希望对你有帮助!
如果我正确理解您的问题,您是在问如何减少数据集中的分类特征。如果是,那么我能想到的一些方法是:
迭代过程 - 构建具有所有数字特征和一个分类特征的模型,然后通过您使用的任何指标评估您对模型的改进,然后添加其他分类特征等等。因此,如果您有 N 个分类特征,您将构建 N+1 个模型。
预测变量和目标变量的卡方检验。
(我使用的)构建一个具有所有可用特征的模型并测量其性能,然后使用该模型的特征重要性功能来确定哪些特征是重要的。在线性回归的情况下,系数的值越高,特征越好。或者,您可以使用 L1 正则化来检查非零特征。在考虑线性回归中的特征重要性之前,请检查多重共线性。