常见的特征选择或特征降维方法
- 格式:docx
- 大小:31.67 KB
- 文档页数:9
URL:/14072.html特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。
好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。
特征选择主要有两个功能:1.减少特征数量、降维,使模型泛化能力更强,减少过拟合2.增强对特征和特征值之间的理解拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。
通常情况下,选择一种自己最熟悉或者最方便的特征选择方法(往往目的是降维,而忽略了对特征和数据理解的目的)。
在许多机器学习的书里,很难找到关于特征选择的容,因为特征选择要解决的问题往往被视为机器学习的一种副作用,一般不会单独拿出来讨论。
本文将介绍几种常用的特征选择方法,它们各自的优缺点和问题。
1 去掉取值变化小的特征Removing features with low variance这应该是最简单的特征选择方法了:假设某种特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。
如果100%都是1,那这个特征就没意义了。
当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用,而且实际当中,一般不太会有95%以上都取某个值的特征存在,所以这种方法虽然简单但是不太好用。
可以把它作为特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的特征选择方法中选择合适的进行进一步的特征选择。
2 单变量特征选择Univariate feature selection单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。
对于回归和分类问题可以采用卡方检验等方式对特征进行测试。
这种方法比较简单,易于运行,易于理解,通常对于理解数据有较好的效果(但对特征优化、提高泛化能力来说不一定有效);这种方法有许多改进的版本、变种。
特征选择和特征提取特征选择(Feature Selection)和特征提取(Feature Extraction)是机器学习领域中常用的特征降维方法。
在数据预处理阶段,通过选择或提取与目标变量相关且有代表性的特征,可以有效提高模型的性能和泛化能力。
特征选择指的是从原始特征集合中选择一部分最相关的特征子集,剔除无关或冗余的特征,以减少计算成本和模型复杂度。
它可以分为三种类型的方法:过滤方法(Filter Method)、包裹方法(Wrapper Method)和嵌入方法(Embedded Method)。
过滤方法是利用统计或信息论的方法来评估特征与目标变量之间的相关程度,然后根据得分来选择特征。
常见的过滤方法包括互信息(Mutual Information)、方差选择(Variance Selection)和相关系数选择(Correlation Selection)等。
包裹方法是在特征子集上训练模型,通过观察模型性能的变化来评估特征子集的优劣,并选择性能最好的特征子集。
包裹方法的代表性算法有递归特征消除(Recursive Feature Elimination)和遗传算法(Genetic Algorithm)等。
嵌入方法则是将特征选择融入到模型的训练过程中,通过训练模型时的正则化项或特定优化目标来选择特征。
常见的嵌入方法有L1正则化(L1 Regularization)和决策树的特征重要性(Feature Importance of Decision Trees)等。
主成分分析是一种无监督学习方法,通过线性变换将原始特征投影到一组正交的主成分上,使得投影后的特征具有最大的方差。
主成分分析可以降低特征的维度,并保留原始特征的主要信息。
线性判别分析是一种有监督学习方法,通过线性变换找到一个投影方式,使得在投影空间中不同类别的样本更容易区分。
线性判别分析可以有效地提取类别间的差异和类别内的相似性。
因子分析则是一种概率模型,通过考虑变量之间的相关性而提取潜在的共享特征。
特征选择的3种⽅法
当数据维数⽐较⼤时,就需要进⾏降维,特征选择是降维的⼀种主要⽅式,⼜包括3种⽅法:Filter、Wrapper和Enbedding。
1. Filter
过滤器⽅法,这种⽅法⾸先选定特征,再来进⾏学习。
根据每⼀个属性的⼀些指标(如⽅差等),来确定这个属性的重要程度,然后对所有属性按照重要程度排序,从⾼到低的选择属性。
选定了属性以后,再来进⾏训练。
⽐如Fisher Score、Laplacian Score等。
这种⽅法其实不⼤好,因为决定特征选择效果的不是单个的属性,⽽是属性的集合,⽐如属性A、B、C,单个来看效果不好,但是它们组合起来效果有可能不错。
2. Wrapper
包裹器⽅法,这种⽅法把选定的特征集⽤分类器进⾏训练,⽤训练效果(如准确率等)来作为特征集的评价。
⽐如将启发式搜索、GA等。
这种⽅法和分类器相结合,⽐较直观,和Filter相⽐也更加合理。
缺点是计算开销较⼤。
3. Embedding
嵌⼊式⽅法,即把特征选择的过程作为学习过程的⼀部分,在学习的过程中进⾏特征选择,最典型的如决策树算法。
稀疏特征处理方法
稀疏特征是指在特征向量中,只有少数几个元素是非零值,其余元素均为零值的情况。
在机器学习领域中,稀疏特征往往会出现在文本分类、图像识别、推荐系统等任务中。
由于稀疏特征向量中非零元素数量很少,因此可以采用稀疏特征处理方法来提高模型的效率和准确率。
常用的稀疏特征处理方法包括: 1. 特征选择:即从原始特征中选择出最具有代表性的特征,减
少特征维度,以提高模型效率。
2. 特征降维:通过对原始特征矩阵进行降维处理,将高维的稀
疏特征转化为低维的稠密特征,以提高模型效率和准确率。
3. 补全稀疏特征:对原始稀疏特征矩阵进行补全,将缺失的零
值填充为非零值,以提高模型效果。
4. 稀疏特征编码:将原始稀疏特征向量编码成稠密向量,以提
高模型效率和准确率。
总之,稀疏特征处理方法可以有效地提高机器学习模型的分类准确率和运行效率,是机器学习领域中不可或缺的一部分。
- 1 -。
特征处理方法特征处理是机器学习中的重要步骤,它有助于提高模型的性能和泛化能力。
以下是几种常见的特征处理方法:1. 特征缩放:将特征的值缩放到一个统一的区间内,以避免某些特征对模型的影响过大。
常见的缩放方法包括最小-最大缩放和标准化。
2. 特征选择:选择最有意义的特征,忽略那些不重要的特征。
这样可以减少模型的复杂性,并且可以提高训练速度和减少过拟合的可能性。
特征选择的方法包括过滤法、包装法和嵌入式方法。
3. 特征编码:对于非数值特征,需要进行编码。
常见的编码方法包括独热编码、标签编码和多项式编码等。
4. 特征转换:将原始特征转换为新的特征,以更好地反映数据的内在规律和模式。
常见的转换方法包括主成分分析(PCA)、线性判别分析(LDA)等。
5. 特征生成:基于已有的特征生成新的特征,以增加模型的表达能力。
例如,使用傅里叶变换将时域信号转换为频域信号,或者使用深度学习中的自动编码器生成新的特征。
6. 特征归一化:将特征的分布归一化到统一的标准,例如将特征的值缩放到[0,1]或[-1,1]的区间内。
这样可以使得不同特征之间的比较更加公正和合理。
7. 特征降维:当特征维度较高时,会导致模型复杂度增加,过拟合问题严重,因此需要进行特征降维。
常见的降维方法包括主成分分析(PCA)、线性判别分析(LDA)等。
8. 缺失值处理:对于含有缺失值的特征,需要进行适当的处理。
常见的方法包括填充缺失值、删除含有缺失值的样本或使用其他方法如决策树等预测缺失值。
在进行特征处理时,应根据具体情况选择合适的方法,并进行交叉验证以评估其对模型性能的影响。
统计学中的降维方法与特征选择在统计学中,降维方法和特征选择是两个重要的概念。
它们都是为了解决高维数据分析中的问题而提出的。
降维方法旨在将高维数据转换为低维空间,以便更好地理解和分析数据。
特征选择则是从原始数据中选择最相关的特征,以便减少数据的维度和复杂性。
本文将介绍降维方法和特征选择的基本概念,并探讨它们在实际应用中的价值和挑战。
一、降维方法降维方法是一种将高维数据转换为低维空间的技术。
在实际应用中,高维数据往往存在着冗余和噪声,这给数据分析带来了困难。
降维方法可以通过保留数据中最重要的信息,减少数据的维度和复杂性,从而简化数据分析过程。
常见的降维方法包括主成分分析(PCA)、线性判别分析(LDA)和因子分析等。
主成分分析是一种通过线性变换将原始数据转换为一组无关的主成分的方法。
它通过计算数据的协方差矩阵和特征值分解来实现。
线性判别分析则是一种通过线性变换将数据投影到低维空间中的方法,以便更好地区分不同类别的数据。
因子分析是一种通过寻找潜在变量来描述数据的方法,它可以帮助我们理解数据背后的潜在结构和关系。
降维方法在各个领域都有广泛的应用。
在图像处理中,降维方法可以帮助我们提取图像的主要特征,以便进行图像分类和识别。
在生物信息学中,降维方法可以帮助我们发现基因表达数据中的重要基因,以及它们之间的关系。
在金融领域中,降维方法可以帮助我们识别重要的金融指标,以便进行风险评估和投资决策。
然而,降维方法也面临着一些挑战。
首先,降维过程中可能会丢失一些重要的信息。
虽然降维可以减少数据的维度和复杂性,但也可能导致数据的丢失和失真。
其次,降维方法的选择和参数设置也是一个复杂的问题。
不同的降维方法适用于不同的数据类型和分析目标,选择合适的方法和参数是一个关键的挑战。
二、特征选择特征选择是一种从原始数据中选择最相关的特征的方法。
在高维数据中,往往存在着大量的冗余和噪声特征,这给数据分析带来了困难。
特征选择可以通过选择最相关的特征,减少数据的维度和复杂性,从而提高数据分析的效率和准确性。
高维数据挖掘中的特征选择与降维算法综述随着互联网和大数据技术的快速发展,我们面临着大规模高维数据的挖掘问题。
在这种情况下,特征选择与降维算法成为了解析和利用这些数据的关键步骤。
本文将综述高维数据挖掘中的特征选择与降维算法,分析其原理、优缺点以及适用场景,并对未来的研究方向进行展望。
一、特征选择算法特征选择是从原始数据中选择最相关或最有用的特征子集的过程,以降低数据维度和提高模型性能。
常见的特征选择算法包括过滤式方法、包裹式方法和嵌入式方法。
1. 过滤式方法过滤式方法独立于后续的学习器,通过计算每个特征与目标变量之间的相关度来进行特征选择。
常用的过滤式方法有相关系数法、信息增益法和卡方检验法等。
优点是计算简单,不受学习器的影响;缺点是无法考虑特征之间的相互关系。
2. 包裹式方法包裹式方法通过将特征选择视为一个搜索问题,从所有特征子集中选出最佳子集,以优化某个评估准则来选择最佳特征。
常用的包裹式方法有递归特征消除法、遗传算法和蚁群优化算法等。
优点是能够考虑特征之间的相互关系;缺点是计算复杂度高和搜索空间大。
3. 嵌入式方法嵌入式方法将特征选择融入到学习器的训练过程中,通过学习算法选择最佳特征子集。
常用的嵌入式方法有LASSO回归、决策树和支持向量机等。
优点是能够同时进行特征选择和建模;缺点是可能在不同学习器中表现不佳。
二、降维算法降维是减少特征数量的过程,通过将高维数据映射到低维空间来实现。
常见的降维算法包括主成分分析(PCA)、线性判别分析(LDA)和流形学习等。
1. 主成分分析(PCA)PCA是一种最常用的降维方法,通过线性变换将原始数据映射到新的正交坐标系,使得新的坐标系上数据的方差最大化。
优点是简单易懂、计算高效;缺点是无法保留原始特征的类别判别能力。
2. 线性判别分析(LDA)LDA是一种有监督的降维方法,它通过最大化类间距离和最小化类内距离的方式,将原始数据映射到低维空间。
LDA在模式识别和人脸识别等任务中应用广泛。
特征工程中的常见问题和解决方案在机器学习和数据挖掘领域中,特征工程是一项至关重要的任务,它涉及到对原始数据进行处理和转换,以便使其更适合用于构建模型和进行预测。
特征工程的质量直接影响到模型的性能和预测结果的准确度。
然而,在进行特征工程的过程中,通常会遇到一些常见的问题。
本文将介绍并提供解决这些问题的一些常见方法。
1. 缺失值处理缺失值是指在数据集中某些特征的值是缺失的情况。
缺失值对于机器学习模型的训练和预测会带来问题,因为大部分机器学习算法对于缺失值是敏感的。
因此,在进行特征工程时,首先需要解决缺失值的问题。
一种常见的处理方法是使用均值、中位数或众数填补缺失值。
这种方法的基本思想是用整个特征的平均值、中位数或众数来填补缺失值。
还可以使用插值方法,如线性插值或多项式插值,根据已有的数据点来预测缺失值。
另外,还可以采用基于模型的方法,通过训练模型来预测缺失值。
2. 异常值处理异常值是指与其他观测值相比显著不同的数据点。
异常值可能会对模型的性能产生负面影响,因为它们可能导致模型过度拟合。
因此,在进行特征工程时,需要检测和处理异常值。
一种常见的处理方法是使用离群点检测算法来识别异常值。
这些算法可以基于统计学原理,如箱线图或Z-Score,或基于机器学习算法,如聚类或孤立森林。
一旦确定异常值,可以选择将其删除或替换为合理的值。
3. 特征选择与降维当数据集中包含大量特征时,选择合适的特征子集是非常重要的。
过多的特征可能会导致模型过拟合,降低模型的泛化能力。
因此,特征选择和降维方法是特征工程中的关键步骤。
一种常见的特征选择方法是使用相关性分析,计算特征与目标变量之间的相关性,并选择相关性较高的特征。
另一种方法是使用经典的统计学方法,如卡方检验、t检验或方差分析,来测量特征与目标变量之间的显著性差异。
此外,还可以使用基于模型的方法,如L1正则化(LASSO)或决策树,来选择重要的特征。
降维是另一种常见的特征工程方法,它旨在将高维数据转换为低维表示。
提高机器学习模型鲁棒性的常见方法总结在机器学习领域,模型的鲁棒性是指模型对于噪声、异常数据以及其他不确定性的抵抗能力。
提高机器学习模型的鲁棒性是一个重要的研究方向,可以帮助模型在真实世界中更好地应对各种挑战。
本文将总结一些常见的方法来提高机器学习模型的鲁棒性。
1. 数据清洗与处理数据的质量对机器学习模型的性能至关重要。
因此,在训练模型之前,必须对数据进行清洗和处理。
首先,需要去除异常值和噪声。
异常值是指与大多数数据明显不同的数据点,噪声是指包含错误或不准确信息的数据。
这可以通过使用统计方法、可视化工具和领域专业知识来识别和处理。
另外,还可以对数据进行标准化、归一化或正则化等预处理操作,以提高模型的鲁棒性。
2. 特征选择与降维在构建机器学习模型时,选择合适的特征对于提高模型的鲁棒性非常重要。
可以使用特征选择技术来筛选最相关的特征,以减少可能的噪声和冗余信息。
常用的特征选择方法包括方差阈值法、互信息法和递归特征消除法等。
此外,降维技术如主成分分析(PCA)和线性判别分析(LDA)也可以用于减少特征空间的维度,从而提高模型的鲁棒性。
3. 模型集成模型集成是通过组合多个分类器或回归器来提高预测性能和鲁棒性的一种方法。
常见的模型集成方法包括投票法、堆叠法和boosting法等。
投票法将多个模型的预测结果进行投票或平均,得到最终的预测结果。
堆叠法通过训练多层模型来获得更准确的预测结果。
boosting法则是通过逐个训练弱模型并根据其性能进行加权,最终得到组合模型。
4. 异常检测与修复异常检测是一种处理异常值的方法,可以提高模型的鲁棒性。
常见的异常检测方法包括统计学方法、基于规则的方法和基于聚类的方法等。
当检测到异常值时,可以选择删除、替换或修复这些异常值。
替换异常值的常用方法包括使用均值、中位数或最近邻值等。
修复异常值可以通过插值、回归或生成模型等方法。
5. 交叉验证与模型选择交叉验证是一种评估和选择机器学习模型的方法,可以提供对模型性能的鲁棒估计。
数据科学中的特征选择和降维随着互联网的迅速发展,数据科学已经成为了一个重要的研究领域。
数据科学要解决的一个重要问题就是如何处理海量的数据,以便从中发掘出有价值的信息。
在数据分析中,一个重要的问题就是如何选取有意义的特征,以便能够更好地解释数据。
特征选择和降维是数据科学中的两个重要技术,本文将对它们进行介绍和分析。
一、特征选择特征选择就是从原始数据中选取一部分特征,以便达到更高的准确度、更快的训练速度和更好的泛化能力。
特征选择的方法与目标有关,常见的方法有过滤法、包装法和嵌入法。
过滤法是一种最简单的特征选择方法,它的基本思想是先对特征进行筛选,然后再进行分类或回归。
这种方法的优点是计算速度快,可移植性强,一次性处理大规模数据不成问题。
缺点是不能考虑特征之间的相互关系,也不能保证选出的特征是最优的。
包装法是一种比过滤法更为严格的特征选择方法,其主要思想是对每个特征进行评估,然后根据评估结果选择最佳的特征进行学习。
这种方法的优点是可以考虑特征之间的相互关系,缺点是计算速度较慢,需要大量的计算资源和时间。
嵌入法是一种应用机器学习算法直接选择特征的方法,它将特征选择看作是将特征集合嵌入到模型中,与模型的优化目标一起进行学习。
优点是能够更好地控制模型的复杂度,缺点是计算复杂度高。
二、降维降维是另一种处理高维数据的方法,它的目的是将高维数据映射到低维空间中,以便更好地进行数据处理和可视化。
降维的方法包括线性降维和非线性降维两种。
线性降维是通过线性变换将高维数据映射到低维空间中,主要的方法有主成分分析(PCA)和线性判别分析(LDA)。
PCA 是将高维数据映射到低维子空间中的优秀方法,并可以保留尽可能多的信息。
LDA 是一种监督性降维方法,其目的是使得不同类别的数据点在低维空间中尽可能地分开。
非线性降维是将高维数据映射到非线性低维空间中,可以保留更多的数据结构信息。
常见的非线性降维方法有局部线性嵌入(LLE)和等度量映射(Isomap)。
URL:/14072.html特征选择(排序)对于数据科学家、机器学习从业者来说非常重要。
好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点、底层结构,这对进一步改善模型、算法都有着重要作用。
特征选择主要有两个功能:1.减少特征数量、降维,使模型泛化能力更强,减少过拟合2.增强对特征和特征值之间的理解拿到数据集,一个特征选择方法,往往很难同时完成这两个目的。
通常情况下,选择一种自己最熟悉或者最方便的特征选择方法(往往目的是降维,而忽略了对特征和数据理解的目的)。
在许多机器学习的书里,很难找到关于特征选择的内容,因为特征选择要解决的问题往往被视为机器学习的一种副作用,一般不会单独拿出来讨论。
本文将介绍几种常用的特征选择方法,它们各自的优缺点和问题。
1 去掉取值变化小的特征 Removing features with low variance这应该是最简单的特征选择方法了:假设某种特征的特征值只有0和1,并且在所有输入样本中,95%的实例的该特征取值都是1,那就可以认为这个特征作用不大。
如果100%都是1,那这个特征就没意义了。
当特征值都是离散型变量的时候这种方法才能用,如果是连续型变量,就需要将连续变量离散化之后才能用,而且实际当中,一般不太会有95%以上都取某个值的特征存在,所以这种方法虽然简单但是不太好用。
可以把它作为特征选择的预处理,先去掉那些取值变化小的特征,然后再从接下来提到的特征选择方法中选择合适的进行进一步的特征选择。
2 单变量特征选择 Univariate feature selection单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。
对于回归和分类问题可以采用卡方检验等方式对特征进行测试。
这种方法比较简单,易于运行,易于理解,通常对于理解数据有较好的效果(但对特征优化、提高泛化能力来说不一定有效);这种方法有许多改进的版本、变种。
2.1 Pearson相关系数 Pearson Correlation皮尔森相关系数是一种最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示完全的负相关(这个变量下降,那个就会上升),+1表示完全的正相关,0表示没有线性相关。
Pearson Correlation速度快、易于计算,经常在拿到数据(经过清洗和特征提取之后的)之后第一时间就执行。
Pearson相关系数的一个明显缺陷是,作为特征排序机制,他只对线性关系敏感。
如果关系是非线性的,即便两个变量具有一一对应的关系,Pearson相关性也可能会接近0。
2.2 互信息和最大信息系数Mutual information and maximalinformation coefficient (MIC)以上就是经典的互信息公式了。
想把互信息直接用于特征选择其实不是太方便:1、它不属于度量方式,也没有办法归一化,在不同数据及上的结果无法做比较;2、对于连续变量的计算不是很方便(X和Y都是集合,x,y都是离散的取值),通常变量需要先离散化,而互信息的结果对离散化的方式很敏感。
最大信息系数克服了这两个问题。
它首先寻找一种最优的离散化方式,然后把互信息取值转换成一种度量方式,取值区间在[0,1]。
minepy 提供了MIC功能。
2.3 距离相关系数 (Distance correlation)距离相关系数是为了克服Pearson相关系数的弱点而生的。
在x和x^2这个例子中,即便Pearson相关系数是0,我们也不能断定这两个变量是独立的(有可能是非线性相关);但如果距离相关系数是0,那么我们就可以说这两个变量是独立的。
尽管有MIC和距离相关系数在了,但当变量之间的关系接近线性相关的时候,Pearson相关系数仍然是不可替代的。
第一、Pearson相关系数计算速度快,这在处理大规模数据的时候很重要。
第二、Pearson相关系数的取值区间是[-1,1],而MIC和距离相关系数都是[0,1]。
这个特点使得Pearson相关系数能够表征更丰富的关系,符号表示关系的正负,绝对值能够表示强度。
当然,Pearson相关性有效的前提是两个变量的变化关系是单调的。
2.4 基于学习模型的特征排序 (Model based ranking)这种方法的思路是直接使用你要用的机器学习算法,针对每个单独的特征和响应变量建立预测模型。
其实Pearson相关系数等价于线性回归里的标准化回归系数。
假如某个特征和响应变量之间的关系是非线性的,可以用基于树的方法(决策树、随机森林)、或者扩展的线性模型等。
基于树的方法比较易于使用,因为他们对非线性关系的建模比较好,并且不需要太多的调试。
但要注意过拟合问题,因此树的深度最好不要太大,再就是运用交叉验证。
3 线性模型和正则化单变量特征选择方法独立的衡量每个特征与响应变量之间的关系,另一种主流的特征选择方法是基于机器学习模型的方法。
有些机器学习方法本身就具有对特征进行打分的机制,或者很容易将其运用到特征选择任务中,例如回归模型,SVM,决策树,随机森林等等。
说句题外话,这种方法好像在一些地方叫做wrapper类型,大概意思是说,特征排序模型和机器学习模型是耦盒在一起的,对应的非wrapper类型的特征选择方法叫做filter类型。
下面将介绍如何用回归模型的系数来选择特征。
越是重要的特征在模型中对应的系数就会越大,而跟输出变量越是无关的特征对应的系数就会越接近于0。
在噪音不多的数据上,或者是数据量远远大于特征数的数据上,如果特征之间相对来说是比较独立的,那么即便是运用最简单的线性回归模型也一样能取得非常好的效果。
在这个例子当中,尽管数据中存在一些噪音,但这种特征选择模型仍然能够很好的体现出数据的底层结构。
当然这也是因为例子中的这个问题非常适合用线性模型来解:特征和响应变量之间全都是线性关系,并且特征之间均是独立的。
3.1 正则化模型正则化就是把额外的约束或者惩罚项加到已有模型(损失函数)上,以防止过拟合并提高泛化能力。
损失函数由原来的E(X,Y)变为E(X,Y)+alpha||w||,w是模型系数组成的向量(有些地方也叫参数parameter,coefficients),||·||一般是L1或者L2范数,alpha是一个可调的参数,控制着正则化的强度。
当用在线性模型上时,L1正则化和L2正则化也称为Lasso和Ridge。
3.2 L1正则化/LassoL1正则化将系数w的l1范数作为惩罚项加到损失函数上,由于正则项非零,这就迫使那些弱的特征所对应的系数变成0。
因此L1正则化往往会使学到的模型很稀疏(系数w经常为0),这个特性使得L1正则化成为一种很好的特征选择方法。
Scikit-learn为线性回归提供了Lasso,为分类提供了L1逻辑回归。
下面的例子在波士顿房价数据上运行了Lasso,其中参数alpha是通过grid search进行优化的。
可以看到,很多特征的系数都是0。
如果继续增加alpha的值,得到的模型就会越来越稀疏,即越来越多的特征系数会变成0。
然而,L1正则化像非正则化线性模型一样也是不稳定的,如果特征集合中具有相关联的特征,当数据发生细微变化时也有可能导致很大的模型差异。
3.3 L2正则化/Ridge regressionL2正则化将系数向量的L2范数添加到了损失函数中。
由于L2惩罚项中系数是二次方的,这使得L2和L1有着诸多差异,最明显的一点就是,L2正则化会让系数的取值变得平均。
对于关联特征,这意味着他们能够获得更相近的对应系数。
还是以Y=X1+X2为例,假设X1和X2具有很强的关联,如果用L1正则化,不论学到的模型是Y=X1+X2还是Y=2X1,惩罚都是一样的,都是2alpha。
但是对于L2来说,第一个模型的惩罚项是2alpha,但第二个模型的是4*alpha。
可以看出,系数之和为常数时,各系数相等时惩罚是最小的,所以才有了L2会让各个系数趋于相同的特点。
可以看出,L2正则化对于特征选择来说一种稳定的模型,不像L1正则化那样,系数会因为细微的数据变化而波动。
所以L2正则化和L1正则化提供的价值是不同的,L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零。
回过头来看看3个互相关联的特征的例子,分别以10个不同的种子随机初始化运行10次,来观察L1和L2正则化的稳定性。
4 随机森林随机森林具有准确率高、鲁棒性好、易于使用等优点,这使得它成为了目前最流行的机器学习算法之一。
随机森林提供了两种特征选择的方法:mean decrease impurity和mean decrease accuracy。
4.1 平均不纯度减少 mean decrease impurity随机森林由多个决策树构成。
决策树中的每一个节点都是关于某个特征的条件,为的是将数据集按照不同的响应变量一分为二。
利用不纯度可的时候,可以计算出每个特征减少了多少树的不纯度。
对于一个决策树森林来说,可以算出每个特征平均减少了多少不纯度,并把它平均减少的不纯度作为特征选择的值。
4.2 平均精确率减少 Mean decrease accuracy另一种常用的特征选择方法就是直接度量每个特征对模型精确率的影响。
主要思路是打乱每个特征的特征值顺序,并且度量顺序变动对模型的精确率的影响。
很明显,对于不重要的变量来说,打乱顺序对模型的精确率影响不会太大,但是对于重要的变量来说,打乱顺序就会降低模型的精确率。
5 两种顶层特征选择算法之所以叫做顶层,是因为他们都是建立在基于模型的特征选择方法基础之上的,例如回归和SVM,在不同的子集上建立模型,然后汇总最终确定特征得分。
5.1 稳定性选择 Stability selection稳定性选择是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。
它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。
理想情况下,重要特征的得分会接近100%。
稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。
5.2 递归特征消除 Recursive feature elimination (RFE)递归特征消除的主要思想是反复的构建模型(如SVM或者回归模型)然后选出最好的(或者最差的)的特征(可以根据系数来选),把选出来的特征放到一遍,然后在剩余的特征上重复这个过程,直到所有特征都遍历了。
这个过程中特征被消除的次序就是特征的排序。