特征选择与特征提取。什么时候用?

数据挖掘 特征选择 特征提取 降维
2021-10-01 23:54:45

特征提取和特征选择本质上降低了数据的维度,但特征提取也使数据更加可分离,如果我是对的。

哪种技术比另一种更受欢迎,什么时候?

我在想,由于特征选择不会修改原始数据及其属性,所以我假设您将在重要的是要训练的特征保持不变时使用特征选择。但我无法想象你为什么想要这样的东西..

4个回答

添加到Toros给出的答案,

这些(见下面的项目符号)三个非常相似,但有细微的差别-:(简洁易记)

  • 特征提取和特征工程:将原始数据转换为适合建模的特征;

  • 特征变换:对数据进行变换以提高算法的准确性;

  • 特征选择:去除不必要的特征。

只是添加一个相同的示例,

特征提取和工程(我们可以从中提取一些东西)

  • 文本(ngrams、word2vec、tf-idf 等)
  • 图片(CNN、文字、问答)
  • 地理空间数据(纬度、经度等)
  • 日期和时间(日、月、周、年、滚动)
  • 时间序列、网络等
  • 降维技术(PCA、SVD、特征面等)
  • 也许我们也可以使用集群(DBSCAN 等)
  • .....(和许多其他人)

特征转换(将它们转换为有意义的)

  • 归一化和变化分布(Scaling)
  • 互动
  • 填充缺失值(中值填充等)
  • .....(和许多其他人)

特征选择(在这些选定的特征上构建模型)

  • 统计方法
  • 通过建模选择
  • 网格搜索
  • 交叉验证
  • .....(和许多其他人)

希望这可以帮助...

请查看其他人共享的链接。他们非常好...

正如 Aditya 所说,有 3 个与功能相关的术语有时会相互混淆。我将尝试对它们中的每一个进行简要说明:

  • 特征提取:从难以直接分析/无法直接比较的格式(例如图像、时间序列等)的数据中生成特征。在时间序列的示例中,一些简单的特征可以用于例如:时间序列的长度、周期、平均值、标准差等。
  • 特征转换:对现有特征进行转换,以便在旧特征的基础上创建新特征。一种非常流行的降维技术是主成分分析 (pca),它使用一些正交变换来根据初始变量集生成一组线性不相关的变量。
  • 特征选择:从一组现有特征中选择对目标变量具有最高“重要性”/影响的特征。这可以通过各种技术来完成:例如线性回归、决策树、“重要性”权重的计算(例如 Fisher 分数、ReliefF)

如果您只想实现现有数据集中的降维,则可以使用特征转换或特征选择方法。但是,如果您需要了解您认为“重要”的特征的物理解释,或者您试图限制为分析需要收集的数据量(您需要所有初始特征集进行特征转换),那么只有特征选择才能起作用。

您可以在以下链接中找到有关特征选择和降维的更多详细信息:

我认为它们是两种不同的东西,

让我们从特征选择开始:

该技术用于选择能够解释大部分目标变量(与目标变量具有相关性)的特征。该测试在模型应用于数据之前运行。

为了更好地解释它,让我们举个例子:有 10 个特征和 1 个目标变量,9 个特征解释了 90% 的目标变量,10 个特征一起解释了 91% 的目标变量。所以 1 变量并没有太大的区别,所以你倾向于在建模之前删除它(这对业务也是主观的)。我也可以称为预测器重要性。

现在让我们谈谈特征提取

用于无监督学习、图像轮廓提取、从文本中提取 Bi-gram、从语音文本记录中提取音素。当您对数据一无所知时,例如没有数据字典,太多的特征意味着数据的格式不可理解。然后你尝试应用这种技术来获得一些能够解释大部分数据的特征。特征提取涉及特征的变换,这通常是不可逆的,因为在降维过程中会丢失一些信息。

您可以对给定数据应用特征提取以提取特征,然后针对目标变量应用特征选择来选择有助于制作具有良好结果的良好模型的子集。

您可以通过这些Link-1Link-2更好地理解。

我们可以在 R、Python、SPSS 中实现它们。

让我知道是否需要更多说明。

两者非常不同:特征选择确实减少了维度,但特征提取增加了从其他特征计算的维度。

对于面板或时间序列数据,通常具有 datetime 变量,并且不想在日期本身上训练因变量,因为这些因变量不会在未来发生。所以你应该消除日期时间:特征消除。

另一方面,工作日/周末可能非常相关,因此我们需要从日期时间计算工作日状态:特征提取。