一种基于时间序列类别的计算机数据分类方法与流程

文档序号:11865384阅读:来源:国知局

技术特征:

1.一种基于时间序列类别的计算机数据分类方法,其特征在于,包括如下步骤:

步骤1,生成搜索长度集合;

步骤2,为每一个搜索长度,生成所有时间序列数据的子序列,子序列的长度为L2,并标准化所有子序列,标准化后的所有子序列组成集合S;

步骤3,利用集合S,训练一个SOINN神经网络,将训练好的神经网络的每一个节点,加入到Shapelet候选集合C中;

步骤4,使用Shapelet候选集合C,将所有时间序列转换到Shapelet表示,转换后的数据集合为T;

步骤5,使用特征选取算法,在数据集合T上选取特征,得到特征集合为A,同时训练得到分类器Cls;

步骤6,对于特征集合A中的每一个特征,将其相应的候选Shapelet加入到Shapelet集合中;

步骤7,预测时间序列的类别:使用Shapelet集合中的Shapelet对时间序列进行转换,然后使用分类器Cls对转换后的数据进行分类。

2.根据权利要求1所述的方法,其特征在于,步骤1包括如下步骤:

步骤1-1,人工设定参数:最大搜索长度MaxLength,最小搜索长度MinLength和参数beta,跳转至步骤1-2;

步骤1-2,令L=MaxLength,若L<MinLength,则结束步骤1;否则将L加入到搜索长度集合中,跳转至步骤1-3;

步骤1-3,将L更新为L/beta,跳转至步骤1-2。

3.根据权利要求2所述的方法,其特征在于,步骤2中,假设时间序列t的搜索长度为N,则其开始于位置e的长度为L2的子序列集合S为<t(e),t(e+1),…t(e+L2-1)>,采用z-标准化,将该子序列归一化为均值等于0,方差等于1,标准化的方法如下:

mean(S)=(S(1)+S(2)+…+S(L2))/L2,

std(S)=sqrt(((S(1)-mean(S))^2+(S(2)-mean(S))^2+…+(S(L2)-mean(S))^2)/L2),

S=<(S(1)-mean(S))/std(S),(S(2)-mean(S))/std(S),…,(S(L2)-mean(S))/std(S)>,

其中,mean(S)表示子序列集合S中所有数据的平均值,S(e)表示子序列集合S中位置e上的取值,std(S)表示子序列集合S中所有数据的标准差,sqrt表示开方运算。

4.根据权利要求3所述的方法,其特征在于,步骤3中使用的聚类算法为SOINN自组织增量神经网络算法,SOINN神经网络由节点集合和边集合构成,每个节点都有一个权重、阈值和累积值,节点的阈值为该节点的邻居中离该节点最远的节点与该节点的距离,节点的权重为所有属于该节点的类别的数据的平均值,节点的累积值为属于该节点类别的数据的数量。

5.根据权利要求4所述的方法,其特征在于,步骤4中,长度为N的时间序列t和长度为L2的Shapelet sp之间的距离为时间序列t的所有标准化后的长度为L2的子序列与sp的欧式距离中最小的一个,定义如下:

dist(sp,t)=minqEuclideanDistance(sp,S(t,L2,q)),

其中,S(T,L2,q)代表时间序列t起始于位置q的长度为L2的标准化后的子序列,EuclideanDistance代表欧式距离,minq代表位置q变动时后面式子的最小值,dist(sp,t)代表Shapelet sp和时间序列t之间的距离,sp表示一个Shapelet;

时间序列t在Shapelet空间中,对应属性上的属性值如下:

tran(sp,t)=exp(-dist(sp,t)/(sp.threshold*alpha);

其中alpha为设置的参数,dist(sp,t)为Shapelet sp和时间序列t之间的距离,exp为指数函数,sp.threshold为候选Shapelet sp在SOINN神经网络中对应节点的阈值,tran(sp,t)代表转化后的属性值,

给定K1个候选Shapelet<sp1,sp2,…,spK1>,时间序列t转化到Shapelet空间后的数据为:

<tran(sp1,t),tran(sp2,t),…,tran(spK1,t)>;

其中tran(spR,t)为表示时间序列t在Shapelet spR上的取值,R取值范围为1~K1,

根据上述方式将所有时间序列转换到Shapelet空间得到一个新的数据集合T。

6.根据权利要求5所述的方法,其特征在于,步骤5中,使用L1正则化项作为特征选择算法,svm作为分类器,训练过程为最小化以下损失函数L(w):

<mrow> <mi>L</mi> <mrow> <mo>(</mo> <mi>w</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>k</mi> </munderover> <mo>|</mo> <msub> <mi>w</mi> <mi>j</mi> </msub> <mo>|</mo> <mo>+</mo> <mi>C</mi> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>m</mi> <mi>a</mi> <mi>x</mi> <msup> <mrow> <mo>(</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>y</mi> <mi>i</mi> </msub> <msup> <mi>w</mi> <mi>T</mi> </msup> <msub> <mi>x</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow>

其中n为时间序列数量,k为候选Shapelet数量,w为svm的权重,wj为权重w第j维上的取值,wT为权重w的转置,xi为第i个时间序列转化到Shapelet空间后的数据,yi为第i个时间序列的类别,C为设置的参数,max(x,y)代表取x,y中的最大值,最小化L(w)后,得到的w即为svm分类器的权重。

7.根据权利要求6所述的方法,其特征在于,步骤6中,使用步骤5中训练的w,选择Shapelet:如果一个w在一个特征上的取值不为0,则将其对应的候选Shapelet加入到Shapelet集合中;否则将w在该特征上的取值全部删除。

8.根据权利要求7所述的方法,其特征在于,步骤7中,对于一个新的时间序列,首先使用步骤6中选取的Shapelet集合,将时间序列数据转化到Shapelet空间,然后使用训练好的w对转化后的数据进行分类:对于二类问题,只训练一个w,分类时,若wTx1>0,输出正类,否则,输出负类;对于多类问题,对于每一个类别,训练一个w,分类时,输出wTx1最大的类别,x1表示转化后的数据。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1