降低特征内维数的方法?

数据挖掘 机器学习 分类 预测建模 回归 特征工程
2022-02-16 20:25:52

假设我有兴趣根据一组特征预测结果(例如,航班的到达延迟 [以秒为单位])。这些特征之一是标称变量 -carrier指定航班的航空公司。此功能有 16 个不同的值。在调查了到达延迟如何在每个运营商之间分布之后,似乎一些运营商可以合并为一个值(例如,“AS”和“HA”或“WN”和“B6”)。

install.packages("nycflights13")
library(nycflights)

boxplot(
    formula = arr_delay ~ with(flights, reorder(carrier, -arr_delay, median, na.rm = TRUE)),
    data = flights,
    horizontal = TRUE, 
    las = 2,
    plot = TRUE
)

承运人到达延迟(以秒为单位)的箱线图。

一般来说,有没有众所周知的方法来减少特征中的维数?

3个回答

您可以尝试对carrier删除了特征的数据进行聚类,然后将其重新添加,然后查看carrier每个聚类的特征分布。

我认为您正在寻找一种将 16 个标称分类值分组的方法。如果您在基于树的算法(例如 rpart)上执行回归问题,它将为您提供各种拆分,您可以考虑将它们聚合起来以减少分类值的数量。

例如,基于树的算法可以建议将载波 IN(AS、HA、VC)与 NOT IN(AS、HA、VC)分开。这将有效地将不同值的数量减少到 2。您可能需要考虑超过 1 个拆分以考虑交互。总体而言,这种方法将减少分类变量中不同值的数量。

您可以通过在已知的一组可能性中找到相关性来降低维度。也许主成分分析可能有用。作为一名程序员,我发现这篇文章的数学和形式分析非常学术:提出一个好主意,创建一个形式描述,然后将其分析(stet)至死。

但是这篇文章有很多很好的参考资料。如果你专注于意图,就会发现很多好主意。