Answers:
简单的说:
特征提取的示例:提取图像中的轮廓,提取文本中的字母,提取语音文本中的音素等。
特征提取涉及特征的变换,这通常是不可逆的,因为在降维过程中会丢失一些信息。
降维通常是选择一个基础或数学表示形式,您可以在其中描述数据中的大部分(但不是全部)方差,从而保留相关信息,同时减少表示该信息所必需的信息量。有各种各样的这样做的,包括但不限于技术PCA
,ICA
和Matrix Feature Factorization
。这些将采用现有数据并将其简化为最具区分性的组成部分,所有这些都使您能够使用更少,更具区分性的功能来表示数据集中的大多数信息。
特征选择是具有高度区分性的手动选择特征。与特征工程相比,这与分析有更多关系,并且数据科学家需要做大量工作。它需要了解您的数据集的哪些方面在您进行的任何预测中都是重要的,而哪些并不重要。特征提取通常涉及生成新特征,这些新特征是现有特征的组合。这两种技术都属于特征工程的范畴。通常,如果要获得最佳结果,要素工程很重要,因为它涉及创建数据集中可能不存在的信息,并增加信噪比。
Dimensionality Reduction
条款,但不同的对位的Feature Engineering
使用-从我所看到的只是 Feature Extraction
:Feature Selection
被单独考虑。这只是术语上的差异。
就像@damienfrancois一样,特征选择就是选择特征的子集。因此,在NLP中,它将选择一组特定的单词(在NLP中,典型的做法是每个单词代表一个特征,其值等于该单词的频率或基于TF / IDF或类似值的其他权重)。
降维是引入新的特征空间,用于表示原始特征。新空间的尺寸比原始空间小。在文本的情况下,一个例子是哈希技巧,其中将一段文本简化为几位(例如16或32)或字节的向量。令人惊奇的是,保留了空间的几何形状(给了足够的位),因此文档之间的相对距离与原始空间中的相对距离保持不变,因此您可以部署标准的机器学习技术,而不必处理未绑定的(数量巨大)在文字中找到的尺寸。
特征选择是基于一些统计得分来选择一些特征,但是特征提取是使用技术通过傅里叶变换从数据中提取一些第二层信息,例如信号的有趣频率。
降维就是将数据转换为低维空间,在该低维空间中数据保留其欧几里得结构,但不会遭受维数的诅咒。例如,假设您从数据集中提取了一些单词特征,其中每个文档都可以建模为n维空间中的一个点,并且n太大(玩具示例)。在这种情况下,许多算法无法根据高维空间的距离失真进行工作。现在,您需要通过选择大多数信息特征或使用降维方法(例如PCA,LLE等)将它们转换为低维流形来降低维数。
A1。什么是降维:如果您想到矩阵中的数据,其中行是实例,列是属性(或要素),那么降维就是将这个数据矩阵映射到具有更少列的新矩阵。对于可视化,如果您将每个矩阵列(属性)都视为要素空间中的一个维度,那么降维就是将实例从较高维度的空间(更多的列)投射到较低维度的子空间(较少的列)。 此转换的典型目标是(1)在数据矩阵中保留信息,同时降低计算复杂度;(2)提高数据中不同类别的可分离性。
A2。作为特征选择或特征提取的降维:我将使用无处不在的Iris数据集,它可以说是数据科学的“ hello world”。简而言之,虹膜数据集具有3个类别和4个属性(列)。我将说明特征选择和提取,以将Iris数据集维数从4减少到2。
我使用称为seaborn的Python库计算此数据集的成对协方差。代码是:sns.pairplot(iris,hue =“ species”,markers = [“ o”,“ s”,“ D”])我得到的数字是 我可以选择提供的一对属性(2维)在Iris数据集中,这3个类别(种类)之间的距离最大。这将是特征选择的情况。
接下来是特征提取。在这里,我将虹膜的4维特征空间投影到一个新的2维子空间,该空间与原始空间的轴不对齐。这些是新属性。它们通常基于原始高维空间中的分布。最受欢迎的方法是主成分分析,它可以计算原始空间中的特征向量。 显然,我们不限于仅对基于特征向量的子空间使用线性和全局投影。我们也可以使用非线性投影方法。这是使用神经网络 的非线性PCA 的示例。提取了上一个示例中的属性(尺寸)使用神经网络从原始的4个属性中选取。您可以使用此pca方法代码针对虹膜数据集尝试各种口味的PCA 。
简介:尽管特征提取方法在性能上似乎优于特征选择,但该选择由应用程序确定。来自特征提取的属性通常会丢失物理解释,基于当前的任务,这可能会或可能不会成为问题。例如,如果你在设计与昂贵的传感器非常昂贵的数据收集任务,需要节约的属性(不同传感器的数量),你会希望使用所有可用的传感器来收集小试样品,然后选择的那些对于大数据收集任务最有用。
从scikit-learn和Tensorflow的动手机器学习中提取
这里有几个很棒的答案,尤其是@damienfrancois的答案非常简洁地抓住了总体思路。
但是,我看不到任何用于关系数据或时间序列数据的特征工程示例。在那种情况下,数据科学家通常会提取跨关系和随时间变化的统计模式。例如,为了预测将来电子商务数据库中的客户,可能会提取数量,例如平均历史购买量或先前购买的频率。
我写了一篇有关该主题的文章,并在此处提供了一些示例,以进行更详细的介绍:https : //www.featurelabs.com/blog/feature-engineering-vs-feature-selection/
让我从特征提取的逆序开始,以及为什么需要特征选择和降维。
从主要用于分类目的的特征提取开始。分类是决定特定对象属于哪个类别的过程。它有两个阶段:i)训练阶段,在给定数据或对象的情况下,使用某些过程(特征提取)学习其属性; ii)测试阶段,其中使用在前一个(训练)阶段学到的特征对未知对象进行分类。
顾名思义,特征提取是在给定数据目标的基础上找到潜在模式的。此基础模式称为对应于相应数据的特征。存在用于特征提取的各种方法,例如支持向量机(SVM)。
现在,特征提取应该生成应该
特征选择:一组特定的数据可以由一个特征或一组特征表示。在分类过程中,对系统进行了至少两个类别的培训。因此,训练系统将生成单个功能或一组功能。这些功能应具有上述属性。
当每个类都有一个功能集并且某些功能之间存在关联时,就会出现问题。这意味着在那些相关的特征中,一个或几个就足以表示,这就是特征选择进入画面的地方。同样,这些功能需要存储,而功能集的存储需求也随之增加。
然后是降维,这只是特征选择过程的一部分。这是选择最能描述数据的最佳功能集的过程。有很多相同的技术,例如主成分分析,独立成分分析和矩阵分解等。
例如...如果您有农业用地,则选择该土地的一个特定区域将是特征选择。如果您打算在该区域中查找受影响的植物,则您需要根据共同的特定特征来观察每种植物为了发现异常...为此,您将考虑特征提取。在此示例中,原始农业用地对应于降维。