特征选择基础知识
特征选择
一个对象往往具有很多属性(以下称为特征),这些特征大致可以被分成三种主要的类型:
相关特征:对于学习任务(例如分类问题)有帮助,可以提升学习算法的效果;
无关特征:对于我们的算法没有任何帮助,不会给算法的效果带来任何提升;
冗余特征:不会对我们的算法带来新的信息,或者这种特征的信息可以由其他的特征推断出;
但是对于一个特定的学习算法来说,哪一个特征是有效的是未知的。因此,需要从所有特征中选择出对于学习算法有益的相关特征。而且在实际应用中,经常会出现维度灾难问题。
意义:
去除冗余、噪音特征来帮助降维,降低学习任务的难度并且提升模型的效率。
分类:
1.过滤方法( Filter Methods ): 利用统计学方法,通过计算特征与目标变量之间的相关性或差异性,来评估特征的重要性,从而选择最佳特征子集。相当于先对于特征进行过滤操作。
2.包装方法 ( wrapper Methods ): 使用机器学习算法来评估特征的重要性,从而选择最佳特征子集。这种方法的优点是可以捕获特征之间的相互作用,但是计算开销比较大。
3.嵌入方法 ( Embedded Methods ): 与Wrapper Methods类似,使用机器学习算法来评估特征的重要性,但是这种方法将特征选择和模型训练过程结合起来,因此可以在训练过程中同时选择最佳特征子集和训练最佳模型
4.PCA降维: 通过线性变换将高维数据转化为低维数据,实现特征降维,这种方法可以去除高维数据中的几余信息。
5.L1正则化: 在模型训练过程中,引入L1正则化惩罚项,可以使得一些特征的系数变为0,从而达到特征选择的效果。
过滤型
Filter methods是机器学习中特征选择的一种方法,它们通过计算每个特征与目标变量之间的相关性来评估特征的重要性。这些方法不需要训练模型,而是在训练模型之前对特征进行筛选。
过滤型方法举例:方差选择法(Variance Thresholding
)、相关系数法(Pearson Correlation
)、卡方检验(Chi-Square Test
)、互信息法(Mutual Information
)等
缺陷:可以很容易地应用于大型数据集。但是,它们不能捕捉特征之间的相互作用,因此可能会忽略一些重要的特征。因此,过滤方法通常与其他特征选择方法结合使用,以提高模型性能。
互信息法:
互信息作为一种特征选择的方法,具有以下优点和缺点:
优点:
相对于其他特征选择方法,互信息能够捕捉到更加复杂的特征之间的关系,因为它能够度量非线性关系和高阶关系。
互信息是非参数方法,不需要假设变量之间的分布情况,因此在数据分布不明确或非常复杂的情况下也能有效工作。
互信息的计算速度较快,适用于高维数据集。
缺点:
互信息可能会捕捉到噪声特征,导致选择不可靠的特征。
互信息不能处理数据集中存在的冗余特征,可能会选择不必要的特征,导致模型过拟合。
互信息的计算对于大型数据集可能会受到计算机性能的限制。
适用场景:
互信息特征选择适用于高维数据集,能够有效地减少特征的维度,提高模型的效率和准确率。
互信息特征选择适用于需要考虑特征之间复杂关系的问题,例如生物信息学和自然语言处理领域的数据分析。
对于数据分布复杂、特征之间关系不明显的数据集,互信息可以作为一种有效的特征选择方法。
包裹型
Wrapper methods(包装方法)是一种特征选择方法,它通过在特征子集上运行一个机器学习算法来评估该子集的性能,然后选择最好的子集作为最终特征集。
Wrapper方法的基本思想是:选择一个特征子集,利用分类器训练,根据分类器的性能(如准确率)来评价这个特征子集的好坏,最终选出最好的特征子集。其中分类器可以是任何机器学习算法,如决策树、支持向量机、逻辑回归等。
与过滤方法和嵌入方法相比,包装方法是一种更加贪婪的方法,因为它直接在选择最终特征集时使用模型的性能作为目标函数。
与嵌入方法相比,Wrapper方法通常能够提供更好的特征子集,因为Wrapper方法可以考虑特征之间的交互作用和相互依赖性,但是Wrapper方法也更加耗时,因为它需要在不同的特征子集上运行机器学习算法来评估性能。
三种类别:
Forward Selection(前向选择):从一个空的特征集开始,逐渐添加特征,直到达到预先定义的停止条件,例如达到特定数量的特征或改善模型性能的阈值。
Backward Elimination(后向消元):从包含所有特征的特征集开始,逐渐删除特征,直到达到预先定义的停止条件。
Recursive Feature Elimination(递归特征消除):基于模型的系数或特征的重要性来逐渐删除特征,直到达到预先定义的停止条件。在每次迭代中,模型都会重新拟合并重新评估特征的重要性。
嵌入型
方法举例:
- Lasso回归(L1正则化)使用L1范数作为回归系数的正则化项,可以产生一些稀疏解,即一些系数为0,特征选择通过选择非零系数的特征来实现
- Ridge回归(L2正则化)使用L2范数作为回归系数的正则化项,能够产生一些小的但非零的系数
- 随机森林(Random Forest) 通过计算每个特征在所有决策树中的重要性平均值来评估特征的重要性
嵌入型和包裹型的区别:
- 搜索策略:包装型方法通过搜索不同的特征组合来找到最佳的特征子集;嵌入型方法在模型训练过程中自动进行特征选择。
- 模型依赖性:包装型方法需要多次模型训练来评估不同特征组合的性能;嵌入型方法在单次模型训练中就进行特征选择。
- 计算成本:包装型方法通常计算成本更高,因为它需要多次模型训练;嵌入型方法计算成本较低,因为它与模型训练过程结合。
包裹型:想象你在一个森林里寻找最好的树木。包装型方法就像是你在森林里尝试不同的路径(不同的特征组合),每次选择一条路径后,你都会走到尽头看看那里的树木是否是你想要的(评估模型性能)。
嵌入型:想象你是一个园丁,正在你的花园里种植树木。嵌入型方法就像是你在种植过程中,根据树木的生长情况(模型的训练过程)来决定哪些树木值得保留(哪些特征是重要的)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律