HDLSS笔记1:高维小样本上用GP多分类

目前找不到论文配套代码, 本文弃坑)

注意

看数据特点适应的方法创新

找两篇和项目相似的看数据量极少的怎么做的(心电图),和特征工程理论是否能用到

高维小样本上用遗传编程(GP)多分类

T. Wei, W. -L. Liu, J. Zhong and Y. -J. Gong, "Multiclass Classification on High Dimension and Low Sample Size Data using Genetic Programming," in IEEE Transactions on Emerging Topics in Computing, doi: 10.1109/TETC.2020.3034495.

2020(JCR Q1)

Multiclass Classification on High Dimension and Low Sample Size Data using Genetic Programming | IEEE Journals & Magazine | IEEE Xplore

使用了Genetic Programming (GP),一种intrinsic evolutionary分类算法,实现自动特征构建(automated feature engineering)。本文提出了一种基于集成的GP分类框架,即基于sigmoid的集成Gene Expression Programming(SEGEP) "

数据情况

参考人工智能数据集介绍:

https://zhuanlan.zhihu.com/p/71634872

生物信息(bio-information)数据集4个

基因表达数据集6个

图像信息,多分类数据集1个

1http://portals.broadinstitute.org/cgi-bin/cancer/datasets.cgi

2https://archive.ics.uci.edu/ml/datasets/SCADI

3https://archive.ics.uci.edu/ml/datasets/Lung+Cancer

4https://schlieplab.org/Static/Supplements/CompCancer/datasets.htm

5http://featureselection.asu.edu/old/datasets.php

6https://archive.ics.uci.edu/ml/datasets/Urban+Land+Cover

7https://archive.ics.uci.edu/ml/datasets/Wine" github.com/YingBi92/BookCode

Cancer Program Datasets

http://portals.broadinstitute.org/cgi-bin/cancer/datasets.cgi

在疾病数据集中区分其子类别Subclass Mapping: Identifying Common Subtypes in Independent Disease Data Sets

摘要

传统数据挖掘方法依赖于模型假设,在高维小样本(HDLSS)上容易过拟合。

本文使用GP算法进行自动特征构建(feature construction automatically),无模型假设。

遗传规划

参考:https://zhuanlan.zhihu.com/p/235068826

GP: Genetic Programming, an intrinsic evolutionary classification algorithm

遗传规划(Genetic Programming),属于遗传算法(Genetic algrithm)的一个子领域。但是因为Genetic Programming的搜索空间更大了,所以得出有意义的结果反而更难

遗传算法特点:直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。

遗传算法GA五个要素:参数编码、初始群体的设定、适应度函数的设计、遗传操作设计、控制参数设定

其中对群体执行的遗传操作:选择(Selection/differential reproduction)、交叉(Crossover)和变异(Mutation)

遗传算法的初解群:长度为L的n个二进制串bi(i=1,2,…,n),也称为初始群体。在每个串中,每个二进制位就是个体染色体的基因

编码方法:grefenstette编码可以解决自然编码方法所带来的非法解问题

进化(Evolution)算法可以参考莫烦:

https://mofanpy.com/tutorials/machine-learning/evolutionary-algorithm/

在无法得到一阶梯度的场景中,就可以考虑用遗传算法

求变异下标的过程中用到python中~a = - (a + 1),也可对True/False 值进行取反

进化策略 (Evolution Strategy) 简称 ES. 和 遗传算法 GA 相似。

选好父母进行繁殖 (GA); 先繁殖, 选好的孩子 (ES)

通常用二进制编码 DNA (GA); 通常 DNA 就是实数, 比如 1.221 (ES)

通过随机让 1 变成 0 这样变异 DNA (GA); 通过正态分布(Normal distribution)变异 DNA (ES)

进化策略ES的常见形式:(μ/ρ +, λ)-ES, (1+1)-ES

梯度更新的进化策略Natural Evolution Strategy:用适应度诱导的梯度下降法。和强化学习中 Policy Gradient对比:

在行为的策略上, PG 是扰动 Action, 不同的 action 带来不同的 reward, 通过 reward 大小对应上 action 来计算 gradient, 再反向传递 gradient. 但是 ES 是扰动 神经网络中的 Parameters, 不同的 parameters 带来不同的 reward, 通过 reward 大小对应上 parameters 来按比例更新原始的 parameters.

神经网络进化 (Neuro-Evolution)相比普通神经网络,不直接使用梯度主导移动方向,而是随机产生新的点,收敛速度不如梯度快,但可以避免局部最优。遗传算法做监督学习非常慢,强化学习还是可以。

神经网络进化主要方式:1.固定形态,更新参数 2.形态(包括node和connect)和参数都修改

其中典型的是NEAT算法

本文提出基于sigmoid的集成遗传表达规划Sigmoid-based Ensemble Gene Expression Programming (SE- GEP)。

改进:

1.对于GP多类分类器的输出冲突,需要所结合有二进制分类器的输出。提出采种具有连续松弛的概率表示(flexible probability representation with continuous relaxation)来更好地结合各输出。

2.一种数据分割策略,提高集成性能

3.采样策略,改进现有的GP的二分类器。

实验结果:SE-GEP与其他GP方法或其他具有代表性的机器学习方法的比较,SE-GEP效果好,是具有竞争力的HDLSS数据多分类方法。

1.引言

分类器用输入数据\( X_i \)训练,预测样本标签k\( k \)

样本

$$ X_{1}, X_{2}, \cdots, X_{M} $$

样本特征

$$ X_{j}^{1}, X_{j}^{2}, \cdots, X_{j}^{N} $$

特征数量

$$ N $$

样本量(sample size)

$$ M $$

多分类问题方法

1. 生成式学习,如 Naive Bayes

2. 判别式方法:

softmax回归的神经网络(neural networks with softmax regression)、决策树方法如随机森林、GBM(gradient boosting machine)、XGBoost

梯度提升

在李航统计学习方法第八章提升(boosting)的8.4提升树中提到,此章主要介绍了Adaboost和提升树,都属于GBM一族的算法。机器学习中常用的GBDT、XGBoost和LightGBM算法(或工具)都是基于梯度提升机(Gradient Boosting Machine,GBM)的算法思想

提升集成学习的一种.通过改变训练样本的权重(概率分布),学习多个弱分类器(基本分类器),并将这些分类器线性组合来构成一个强分类器提高分类的性能

其中提升树的基学习器为决策树,梯度提升树(GBDT):优化方法-用损失函数的负梯度在当前模型的值作为回归问题中提升树算法中的残差的近似值,线性搜索估计叶结点区域的值使损失函数最小化,然后更新回归树

所以梯度提升为集成学习的算法,用在提升树时,基学习器就是决策树。

XGBoost传统GBDT的改进:

在优化时用到了二阶导数信息.在代价函数里加入了正则项.每次迭代后都将叶子结点的权重乘上一个系数,削弱每棵树的影响.列抽样.在训练前对数据进行排序,保存为block结构,并行地对各个特征进行增益计算

3. 二分类方法->多分类:纠错输出码Error-Correcting Output Codes (ECOC), 层次分类(hierarchical classification)

数据维数较大时,过拟合会迅速变严重。为了克服过拟合问题,一般将机器学习方法与特征选择(feature selection)或特征构建(feature construction)方法相结合。

特征选择的进化算法evolutionary algorithm (EA):人工蜂群Artificial Bee Colony (ABC)、粒子群优化Particle Swarm Optimization (PSO)等进化算法。

特征选择和分类的同时进行

这些进化方法必须与机器学习分类器一起进化。根据机器学习分类器相关的适应度函数,通过搜索特征子集并限制子集的大小,实现单目标或多目标的特征选择或特征构建。进化算法的评估过程对每个机器学习分类器需要额外的训练过程,不够灵活。

相比之下,GP由于其树形结构,可以同时(simultaneously)完成特征选择和分类。

为解决符号回归symbolic regression,分类,知识发现knowledge discovery等问题,产生GP变体(variants): Gene Expression Programming(GEP)、Cartesian Genetic Programming、Semantic Genetic Programming和Self Learning Gene Expression Programming

GP适用场景

1. 高维问题-自动选择和构造特征

2. 小样本问题(基于统计的学习方法难以实现)-GP是基于表达式树的计算,对于大规模数据集可能会非常慢,样本量小时则有所缓解。

提出GP多分类框架-集成GEP(Ensemble Gene Expression Programming,SE-GEP):

1.对于GP多类分类器的输出冲突,需要所结合有二进制分类器的输出。采用概率表示(probability representation)结合各输出,并使用连续松弛(continuous relaxation)提升分类器性能。

2.使用数据划分,使基分类器具有多样性,提高集成精度。

3.采样策略,改进现有的GP的二分类器。

实验结果:SE-GEP与其他GP方法或其他具有代表性的机器学习方法的比较,SE-GEP效果好,是具有竞争力的HDLSS数据多分类方法。

自动化特征工程(automated feature engineering,autoFE)中,GP构建隐式特征对于自动分析数据至关重要。

自动特征工程

参考:https://zhuanlan.zhihu.com/p/356316485

在机器学习领域,“Garbage In, Garbage Out”是业界的共识,对于一个机器学习问题,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已

AutoFE在预先给定的特征空间中搜索特征,并通过某种方式评估特征的质量。需要解决三方面问题

1. 搜索空间: 目前在有限的操作集中搜索最优序列子集

2. 搜索策略: 由于特征空间是高度离散化的,且存在组合爆炸的问题,因此基于梯度的优化方法都不可用,因此目前的研究通常采用启发式搜索、以及基于深度学习的搜索,强化学习和元学习的方法

3. 评估方式: 评估特征子集的有效性。用特征子集训练模型,将特征评估问题转化为模型评估问题,最准确,但计算成本高;间接评估法,比如基于信息论的特征信息量指标和基于决策树的特征重要性指标

目前主要以搜索策略评估方式为主。在实际应用场景下,原始数据通常是多源、多维度、多模态的,特征的数据类型非常庞杂,每种数据类型都有着独特的处理方式,比如类别特征的特点是高维稀疏,时序特征需要设计合适的时间窗抽取特征,数值特征的特征变换算子繁多,并且算子的复合非常灵活,生成的特征数目常呈指数级增长

在识别重要特征的同时,还需要剔除冗余特征和噪声特征,减轻维数灾难的影响,让模型需要学习的映射变得更容易

对特征的操作类型:特征的关联、融合、变换和选择

特征生成方法

从原始数据中抽取特征信息,两大类-领域相关/无关

领域相关:比如对于文本数据,可以使用TF-IDF,潜在语义分析或Word2Vec词嵌入将离散的字符串变换为连续的数值特征;对于图像数据,可以对像素矩阵进行变换获取图像的颜色、纹理、形状、小波系数、SIFT等高阶特征;对于传感器数据,可以根据检测对象的性质,比如根据人的身高和体重获取身体质量指数(BMI)

领域无关:基于投影和压缩的特征变换,包括单变量变换(如标准化、离散化、Box-Cox变换等)和多变量变换(如PCA、ICA、CCA等);基于自编码器、因子分解机、受限玻尔兹曼机的隐式特征变换方式,在文本、图像这类非结构化数据上表现很好,但由于其缺乏可解释性,通常不适用于小数据集和结构化数据

特征选择方法

不改变特征的原始表示,而只是作为特征子集抽取的评估指标,包括三类-过滤式/包裹式/嵌入式

过滤式(Filter):根据特征的统计量和人为指定的阈值来筛选特征,比如矩统计量、相关系数、卡方检验、信息增益、方差膨胀因子等

包裹式(Wrapper):转化为模型评估问题,其中组合优化问题采用贪心或智能优化算法搜索最优特征子集,如简单的前向选择法和复杂的模拟退火法

嵌入式(Embedded):模型在训练过程中自动选择特征,比如通过训练Lasso回归、Ridge回归、加权朴素贝叶斯、随机森林等模型可以得到特征的重要程度,将特征选择问题转化为了超参优化问题

优化模式包括扩展-压缩式(Expansion-reduction)和演进式(Evolution-centric)

Expansion-reduction先通过特征生成方法生成大量候选特征,然后通过特征选择方法筛选有效特征

Evolution-centric特征生成和特征选择交替进行,迭代优化获得最终的特征子集

本文贡献

1. 提出一个多分类框架

2. 提出一种连续松弛技术来提高GP二分类器的分类性能

3. 改进其中采样组件,以提高GP分类器的收敛性能

4. 对基于gp的分类器和机器学习分类器全面比较

文章结构

第二节: GP分类的相关工作

第三节: 基分类器RSL-GEP

第四节: 二元分类器的组合策略

第五节: 实验

第六节: 结论

2.相关工作

GP是基于群体(population-based)的优化算法.

Swarm intelligence algorithms are a cluster of population-based meta-heuristic stochastic algorithms for optimization.

基于群体的优化算法也就是群智能.

GP有两种方式解决分类问题:

1. GP选择/重构特征+ML分类

2. 直接GP分类(本文主要使用)

GP选择/重构特征+ML分类

使用GP选择和构造特征,辅助机器学习方法进行高维分类

大多数基于GP的特征选择或构造方法, 主要区别在于适应度(fitness)函数:

1. (Muharram) 过滤式特征选择(filter feature selection)的排序结果作为适应度函数(排序函数包括: 信息增益information gain of entropy、基尼系数GINI index、卡方chi square等). 利用GP的自动合成能力.

2. (Guo) 线性判别分析Linear Discriminant Analysis作为适应度函数, 使其最大化类间距离.

3. (Tran) GP特征构建, 由于GP的个体(individuals)是基于树结构的,对比GP个体输出(叶节点、中间节点和根节点)的不同组合, 提高决策树、朴素贝叶斯和GP的分类性能.

4. (Cava) 基于给定的分类距离度量(metric),用M4GP(GP的改进)实现非线性特征变换. 结合有针对性地设计的representation, archives, selection 方法,输出特征提高基于距离的分类性能.

直接GP分类

GP个体建立规则,直接解决分类问题.

GP可进行符号回归, 通过在回归问题中设置一个阈值作为决策边界, 可像ML一样分类(GP分类应用包括光谱图像分类、雷达图像识别、医疗诊断、信用审批等).

GP分类研究

二分类: (Bhowan)为不平衡数据情况的分类设计的适应度函数

多分类:

基于GP的二分类器+避碰技术(collision avoidance)对规则选择或组合->得到最终输出

由于多分类方法常基于二分类器,组合策略为其关键区别

1. (Lin)多种群(multi-population)GP解决多分类问题,GP个体深度小,算法输出逐层产生(outputs are produced layer by layer),每层由多个种群组成.

2. (Muni) 设计了GP的进化算子(evolutionary operators),并提供了元启发式规则以避免各二分类器的输出冲突

3. (Carno) 通过三个标准(召回率recall,精度precision,和规则数量rule size)衡量每条规则. 通过随机选择标准,选择不同的规则作为最终决策的一部分.

4. (Zhou) 用了特殊的适应度函数(信息理论的最小描述长度minimum description length of information theory)演化出一系列紧凑规则compact rules.

紧凑compact rules参考:

The compact genetic algorithm | IEEE Conference Publication | IEEE Xplore

cGA 将种群表示为一组解的概率分布,在操作上相当于具有均匀交叉(order-one behavior)的 GA 的单序行为(order-one behavior). 独立处理每个基因,需要的记忆比GA少。

能用于比较的启发式算法才能结合compact思想

由于上述的避碰策略是非自然的,且很大程度上依赖于作者设计的规则,使得多分类器复杂,不稳定,不灵活,很难组合。

本文采用第二种策略, GP分类(无ML),对输出碰撞采用松弛的连续表示(continuous representation with relaxation),简单灵活易于扩展.

基于多目标GP的分类器

multi-objective GP-based classifier

二分类

(Wang)提出使用一组non-dominated分类器来最大化ROC表现.

再加选择机制(selection mechanism),提高针对多目标问题的receiver operating characteristic convex hull (ROCCH).

多分类

(Nag)用过滤式(Filter)特征选择进化non-dominated种群, 通过同时优化(规则数量、查全率和查准率),non-dominated二分类器集成可以控制每一类数据.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值