在机器学习中,特征选择是一个不可或缺的重要步骤,这一过程旨在选择一组对于模型建构具有相关性的重要特征。特征选择技术运用于多个层面,目的包括简化模型、缩短训练时间、避免维度诅咒、提升数据与特定学习模型类别的兼容性,以及编码输入空间中固有的对称特性。针对于特征选择的核心观念是,数据有时包含冗余或无关的特征,这些特征可以在不显著损失资讯的情况下被剔除。
冗余性与无关性是两个不同的概念,因为在其他相关特征存在的情况下,一个相关特征可能会是冗余的。
特征提取与特征选择是不一样的概念,特征提取会通过原始特征的函数来创造新的特征,而特征选择则是找到特征的子集。特征选择技术经常运用于特征数量众多且样本数相对较少的领域。特征选择演算法可以被视为对新特征子集的提出及评估指标的组合,这些指标用于为不同的特征子集打分。
在这些技术中,最简单的演算法就是逐一测试每个可能的特征子集,找出能最小化错误率的那一组。然而,这样的全面搜寻在特征集较大时计算上几乎是不切实际的。因此,依据各种评估指标的选择,特征选择演算法可分为三大类:包装式方法、筛选式方法以及内嵌式方法。
包装式方法使用一个预测模型来对特征子集进行打分,筛选式方法则使用更简单的代理测量来评估特征子集的效用。
包装式方法为每个特征子集训练一个模型,并在保留集上进行测试,计算错误率来得到该子集的分数。由于每个子集都需要训练新模型,因此计算上非常消耗资源,但通常能找到对特定模型或问题类型表现最佳的特征集。
筛选式方法则选择一个快速计算的代理测量来打分,而非直接使用错误率。这类方法通常计算互信息、皮尔森乘积矩相关系数或是相关性测试的显著性分数,虽然它们的计算比较简便,但所产生的特征集并未特别针对某一类预测模型调整,因此预测表现通常低于包装式方法的结果。
子集选择的过程是对特征子集进行整体评估以判定其适宜性。子集选择演算法的类别与特征选择的类别相仿,包含包装式、筛选式及内嵌式方法。包装式方法使用搜寻演算法浏览可能的特征空间,并透过运行模型来评估每个子集。虽然这类方法计算上通常较为耗费,但其能取得较高的预测准确性。
评估子集时需要一个评分指标来衡量特征集的优劣,然后在某个预设的停止点选择得分最高的特征子集。
而筛选式则像包装式方法一样根据特征子集特征进行计算,但更侧重于速度而非准确度。内嵌方法在模型建构过程中进行特征选择,最典型的例子就是LASSO方法,透过L1惩罚来缩减回归系数。
选择最佳化标准并不容易,因为特征选择过程中有多个目标需考量。许多常见的标准会纳入准确度测量,并对选择的特征数量进行惩罚。 AIC与BIC便是此类例子的代表,其对每增加一个特征施加惩罚,以降低模型的复杂度。
最佳化准则的选择对于特征选择的最终效果有着直接影响,常见的评估标准还包括互信息、相关性以及多维度分散性等。
随着数据科学的快速发展,特征选择的重要性愈发显著。透过精心选择的特征,我们不仅可以提升模型的效能,还能更清晰地理解数据间的相互关联。你是否也在考虑如何挑选最具影响力的特征以提升你的机器学习模型呢?