一、特征工程是什么
是将原始数据转化成更好的表达问题本质的特征,来减少过拟合,并提高模型的性能、泛化能力。简单来说特征工程就是将复杂的原始数据转换为更具代表性的信息,以便机器学习算法更准确地进行预测和决策,目的是获取更好的训练数据特征。
eg:以生理性别判别为例,如果以身高为数据特征我们很难得出结果,如果以喉结为特征数据能判断大多数情况,但以染色体的种类为特征时,就能判定所有情况,没有误差。可见特征的选取对模型的性能表现十分重要。
特征工程能使得模型的性能得到提升,有时甚至在简单的模型上也能取得不错的效果。
二、特征工程基本流程
1.数据收集和理解
数据集包括训练集和测试集,每个数据集包含两列:分子的 SMILES 表达式和分类标签(1表示CNS药物,0表示非CNS药物)。SMILES(Simplified molecular input line entry system),是一种简化分子线性输入规范。
2.数据处理
- 对于缺失值:
删除、替换、插补; - 对于异常值的处理有:
- 删除含有异常值的观测(样本少时直接删除会造成样本量不足,改变分布);
- 当作缺失值(利用现有的信息,对其当缺失值填补);
- 平均值修正(用前后两个观测值的均值修正该异常值)、不处理。
- 在进行异常值处理时要先复习异常值出现的可能原因,再判断异常值是否应该舍弃。
3.特征提取
特征提取涉及将原始数据转化为机器学习算法可用的特征。SMILES是一种常见的分子表示方式,从SMILES中提取有关分子结构和性质的特征是一项关键任务。在这次赛题中可能包括:
- 分子属性描述符(Molecular Property Descriptors):计算分子的物化性质,如分子质量、极性、溶解度等。
- 分子指纹(Molecular Fingerprints):将分子结构表示为二进制或整数向量,以描述分子的拓扑结构和子结构。
- 分子的三维结构信息:如果可用,可以提取分子的三维坐标信息,以描述其立体结构。
针对本题,它是QSAR的一个典型应用场景。QSAR(Quantitative Structure-Activity Relationship)是一种常用的计算化学方法,主要用于研究分子结构与生物活性之间的定量关系,通常用于设计、筛选和优化药物分子。
我们可以查询到QSAR早期时就提出,分子的生物活性主要与疏水效(logP)、立体效应等分子性质有关,我们可以把这些性质称作分子描述符,因为使用1D-QSAR特征比较有利于进行特征工程的说明,故在以下代码中仅采用1D-QSAR特征。
而在本文开头的代码中则将三个维度的共11037个QSAR特征用随机森林做了特征选择,PCA降维,然后创建一个分类器,进行训练。
增加特征可以提升结果的准确性,但是有的特征会增加噪声和冗余,所以也不能一味的增加特征数量。
4.特征选择
我们需要从原始特征集合中选择最具相关性或最具代表性的特征子集,以提高结果的准确性,这就是在进行特征选择。
所以我们将模型换成随机森林,显示不同特征的重要性,通过它找到比较重要的特征。
热力图是一种通过颜色变化来展示矩阵数据的图表。在特征相关性矩阵的热力图中,不同颜色代表了不同的相关性程度,通常是从低到高的渐变。这种图表有助于直观地发现特征之间的关系。
在特征相关性矩阵中,每一行和每一列都代表一个特征,矩阵中的每个元素表示对应特征之间的相关性。相关性的值通常在 -1 到 1 之间,-1 表示负相关,1 表示正相关,0 表示无相关性。
具体来说:
- 如果两个特征之间的相关性接近于 1,那么它们之间存在强正相关性。这意味着当一个特征增加时,另一个特征也增加。
- 如果两个特征之间的相关性接近于 -1,那么它们之间存在强负相关性。这意味着当一个特征增加时,另一个特征减少。
- 如果相关性接近于 0,表示两个特征之间基本上没有线性关系。
相关性系数反映的是线性关系,因此它可能无法捕捉到非线性关系。如果特征之间存在复杂的非线性关系,相关性系数可能不足以完全描述它们之间的相互作用。在这种情况下,其他更复杂的方法,如基于树模型的特征重要性或非线性降维技术,可能更适合用于揭示特征之间的关系。
对于本次赛题,其特征应该是存在较强的隐性关系,因为使用常用的特征选择方法——滤波法之后,成绩反而下降了。
滤波法是特征选择的一种方法,其基本思想是通过某种准则过滤掉对目标变量影响较小的特征,保留对目标变量影响较大的特征。这样可以在降低计算复杂度的同时,提高模型的泛化能力。其常用方法包含方差阈值,相关系数,卡方检验,互信息法。
滤波法的缺点是可能忽略了特征之间的复杂关系,因为它们只考虑了单个特征与目标变量的关系。
除此之外,还有 - 包裹法:包裹法使用预测模型的性能作为特征选择的标准。例如,我们可以使用前向选择或后向剔除的方法,逐步添加或删除特征,同时观察模型在验证集上的表现,从而选择最佳特征组合。此法可以考虑到特征间的相互关系,但计算成本比滤波法高。
- 嵌入法:通过构建模型来选择特征,如使用带惩罚项的模型(例如Lasso和Ridge回归),或者基于树的模型(例如随机森林或梯度提升树)。这类模型可以在训练过程中自动进行特征选择。此法通常可以获得较好的性能,但解释性可能较差。
5.特征变换
如果需要,可以对提取出的特征进行归一化、中心化或其他转换,以提高模型的稳定性和效率。主要方法有特征缩放、Box-Cox变换、主成分分析(Principal Component Analysis, PCA)等。
组合特征:在某些情况下,原始特征的组合可能包含有关目标变量的更多信息。可以尝试组合现有的特征,例如使用四则运算或统计方法(如平均值、中位数等)。
6.模型优化
不断地调整前面的特征工程操作以及模型参数,以优化模型在预测 CNS 药物方面的性能。可以尝试多种不同的模型、管理不平衡分类问题或利用集成方法改进模型性能。