一种自适应无监督特征选择方法
技术领域
本发明属于高维数据特征选择技术领域,具体涉及一种自适应无监督特征选择方法。
背景技术
随着信息技术的快速发展,各个领域产生了大量的高维数据,这些数据中存在着大量的不相关特征和冗余特征,导致了“维数灾难”等问题。研究表明,不相关特征和冗余特征会影响数据挖掘相关算法的性能,大多数数据挖掘算法的复杂度随着不相关特征的增加而呈指数增长,算法的计算效率随冗余特征的增加而下降,因此对特征选择方法提出了迫切的要求。特征选择的本质通过一个特定的评价标准对一个给定特征子集的优良性进行衡量,在数据处理中它能够去除数据中不相关和冗余特征,寻找出重要特征,提高机器学习和数据挖掘算法的运行效率和准确率。在现实生活中大多数据都是无标签数据,因此对无监督特征选择的方法更具有研究价值和实用性。本文是一种自适应无监督特征选择方法,该算法计算效率高,计算复杂度低,极大地提高了分类效果。
发明内容
本发明的目的是提供一种自适应无监督特征选择方法,便于对无标签信息的数据进行特征选择,进而提高分类效率。
本发明所采用的技术方案是,一种自适应无监督特征选择方法,具体按照以下步骤实施:
步骤1、对列车转向架的轴温数据进行采集,并记录其标签,对列车转向架的轴温数据进行标准化处理,以此消除量纲,降低奇异值对结果的影响;
步骤2、将步骤1标准化后的列车转向架的轴温作为自适应特征选择的输入,通过施密特正交计算得到每个转向架轴温的正交向量;
步骤3、通过自适应的选择策略,选择合适的正交向量作为选择的列车轴温数据的有效特征,此有效特征用于对列车转向架轴温数据进行分类,检测列车的运行状态,保证列车平稳运行。
本发明的特点还在于,
步骤1具体按照以下步骤实施:
步骤1.1、计算列车转向架轴温的平均值为其中,n表示样本总数,i表示第i个样本,i=1,2,…,n,j表示第j个转向架,j=1,2,…,d,d表示转向架总数,即特征总数;
步骤1.2、计算列车转向架轴温的方差为
步骤1.3、列车转向架轴温数据标准化的结果为
步骤2具体按照以下步骤实施:
步骤2.1、将列车转向架轴温作为特征向量,输入列车转向架轴温的特征为xt,t=1,2,...,d,d表示特征总数,即转向架总数,设初始选择出的列车转向架的特征子空间的维数为k=0,k表示所选择出的特征个数,选择初始目标矩阵B=[],B用于保存所选择的特征向量,初始列转向架轴温数据的最大模长为
当t=1时,列车第1个转向架轴温特征选择的详细步骤如下:
步骤2.1.1、计算列车第一个转向架轴温的模长为||x1||,并与当前最大模长进行比较,/>更新当前最大模长,令/>
步骤2.1.2、将列车第一个转向架轴温x1作为正交向量的基础,并令r1=x1,其中,r1表示列车第一个转向架轴温的正交向量;
步骤2.1.3、为了使最终求得的正交向量的组合是标准正交矩阵,因此,对求得的每个转向架轴温数据的正交向量进行单位化处理,列车第一个转向架轴温的单位化正交向量是其中,||r1||表示列车第一个转向架轴温的正交向量的模长,b1表示列车第一个转向架的标准正交向量;
步骤2.2、当t≥2时,列车第t个转向架轴温特征选择的详细步骤如下:
步骤2.2.1、计算当前输入的列车轴温数据的模长||xt||,并与当前最大的模长进行比较,若/>更新当前的最大模长,并令/>若/>保留当前最大模长/>其中,/>表示前t个转向架轴温数据中的最大模长;
步骤2.2.2、为了方便计算第t个转向架轴温的正交向量,即残差向量,令rt=xt,使用施密特正交的方法计算当前温度向量rt与基向量bi之间的正交向量,计算公式为其中,i取1到k,k表示所选择出的特征个数,rt表示第t个转向架轴温的正交向量,即与保留的前k个特征之间的残差,bi表示保留的第i个特征向量;
步骤2.2.3、对求解得到的正交向量进行单位化处理得到基向量bk+1,计算公式为其中,bk+1表示第k+1个特征向量。
步骤3具体按照以下步骤实施:
步骤3.1、计算第t个列车转向架轴温的正交向量(残差向量)rt与前t个列车转向架轴温中最大模长之间的压缩比率,并与阈值th进行比较,若/>将经过单位化处理的正交向量bk+1作为新的基底保留添加到选择的特征矩阵中,表达式为B=[B,bk+1],由于加入了新的基底,故选择出的特征维数增加,表达式为k=k+1;反之,若/>则重复步骤2.2以及步骤3.1;
步骤3.2、最终输出所选择的列车k个转向架轴温特征矩阵为B,B=[b1,b2,…,bk],b1,b2,…,bk表示所选择出的特征向量,k表示选择出的特征的个数。
步骤3.1中阈值th选择如下:阈值th为数据压缩比,即目标维数k与原始数据的维数d的比值,表明数据的压缩比率,用公式表示为
本发明的有益效果是,一种自适应无监督特征选择方法,对输入数据通过施密特正交和自适应阈值方式选择出数据的重要特征,去除冗余特征,且算法复杂度低,计算效率高,得到的结果具有可解释的物理意义。在自适应确定维数特征中,随着数据维数的增大,阈值不断增大,选择出特征的难度也在逐渐增大,最终会收敛于某个值,从而确定出特征维数。
附图说明
图1是本发明一种自适应无监督特征选择方法分类方法的总体流程图;
图2是本发明中步骤3.1中阈值th选择策略的图解;
图3是本发明支持向量机验证过程的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种自适应无监督特征选择方法,流程图如图1所示,具体按照以下步骤实施:
步骤1、对列车转向架的轴温数据进行采集,并记录其标签,对列车转向架的轴温数据进行标准化处理,以此消除量纲,降低奇异值对结果的影响,具体按照以下步骤实施:
步骤1.1、计算列车转向架轴温的平均值为其中,n表示样本总数,i表示第i个样本,i=1,2,…,n,j表示第j个转向架,j=1,2,…,d,d表示转向架总数,即特征总数;
步骤1.2、计算列车转向架轴温的方差为
步骤1.3、列车转向架轴温数据标准化的结果为
步骤2、将步骤1标准化后的列车转向架的轴温作为自适应特征选择的输入,通过施密特正交计算得到每个转向架轴温的正交向量,具体按照以下步骤实施:
步骤2.1、将列车转向架轴温作为特征向量,输入列车转向架轴温的特征为xt,t=1,2,...,d,d表示特征总数,即转向架总数,设初始选择出的列车转向架的特征子空间的维数为k=0,k表示所选择出的特征个数,选择初始目标矩阵B=[],B用于保存所选择的特征向量,初始列转向架轴温数据的最大模长为
当t=1时,列车第1个转向架轴温特征选择的详细步骤如下:
步骤2.1.1、计算列车第一个转向架轴温的模长为||x1||,并与当前最大模长进行比较,/>更新当前最大模长,令/>
步骤2.1.2、将列车第一个转向架轴温x1作为正交向量的基础,并令r1=x1,其中,r1表示列车第一个转向架轴温的正交向量;
步骤2.1.3、为了使最终求得的正交向量的组合是标准正交矩阵,因此,对求得的每个转向架轴温数据的正交向量进行单位化处理,列车第一个转向架轴温的单位化正交向量是其中,||r1||表示列车第一个转向架轴温的正交向量的模长,b1表示列车第一个转向架的标准正交向量;
步骤2.2、当t≥2时,列车第t个转向架轴温特征选择的详细步骤如下:
步骤2.2.1、计算当前输入的列车轴温数据的模长||xt||,并与当前最大的模长进行比较,若/>更新当前的最大模长,并令/>若/>保留当前最大模长/>其中,/>表示前t个转向架轴温数据中的最大模长;
步骤2.2.2、为了方便计算第t个转向架轴温的正交向量,即残差向量,令rt=xt,使用施密特正交的方法计算当前温度向量rt与基向量bi之间的正交向量,计算公式为其中,i取1到k,k表示所选择出的特征个数,rt表示第t个转向架轴温的正交向量,即与保留的前k个特征之间的残差,bi表示保留的第i个特征向量;
步骤2.2.3、对求解得到的正交向量进行单位化处理得到基向量bk+1,计算公式为其中,bk+1表示第k+1个特征向量。
步骤3、通过自适应的选择策略,选择合适的正交向量作为选择的列车轴温数据的有效特征,此有效特征用于对列车转向架轴温数据进行分类,检测列车的运行状态,保证列车平稳运行,具体按照以下步骤实施:
步骤3.1、计算第t个列车转向架轴温的正交向量(残差向量)rt与前t个列车转向架轴温中最大模长之间的压缩比率,并与阈值th进行比较,若/>将经过单位化处理的正交向量bk+1作为新的基底保留添加到选择的特征矩阵中,表达式为B=[B,bk+1],由于加入了新的基底,故选择出的特征维数增加,表达式为k=k+1;反之,若/>则重复步骤2.2以及步骤3.1;
步骤3.2、最终输出所选择的列车k个转向架轴温特征矩阵为B,B=[b1,b2,…,bk],b1,b2,…,bk表示所选择出的特征向量,k表示选择出的特征的个数。
步骤3.1中阈值th选择如图2所示,阈值th为数据压缩比,即目标维数k与原始数据的维数d的比值,表明数据的压缩比率,用公式表示为
本发明支持向量机验证过程的流程图如图3所示,具体步骤如下:
对步骤2得到的降维后的轴温特征矩阵B=[b1,b2,…,bk]∈Rn×k进行采样,选择其中的百分之八十作为训练集,将其输入到SVM模型中进行训练,剩余的百分之二十作为测试集,通过测试集的正确率来说明该算法的有效性。详细步骤如下:
步骤a、训练:输入轴温训练集以及训练集所对应的标签,并且确定核函数的类型,然后通过Lagrange乘子法求解,得到最优Lagrange乘子a*,其中,Lagrange的方程为约束条件为/>最后通过判别函数求解得到偏差b*。其中,xi表示列车转向架的轴温,i=1,2,…,n。yi表示所对应的标签,i=1,2,…,n。k(xi·xj)表示所选择的核函数。
步骤b、测试:将测试集输入到已经训练好的Lagrange乘子a*、偏差b*和核函数,即训练好的SVM模型,并输出样本类别。将输出的标签与真实的标签作对比,得到训练集的正确率。