发明内容
发明目的:为了克服现有技术的不足,本发明提供一种基于Kohonen网络聚类和ReliefF特征选择的空气质量指数预测方法,该方法解决了预测时特征量过多且未曾考虑空气具有不同的模式导致的预测效率差的问题。
技术方案:本发明所述的基于Kohonen网络聚类和ReliefF特征选择的空气质量指数预测方法,包括:
(1)对原始空气数据集Air进行预处理,得到处理后的空气数据集A;
(2)采用Kohonen网络聚类,将数据集A分为m类,得到第k类数据集Ak,k∈ [1,m];
(3)采用ReliefF特征选择算法处理数据集Ak,得到第k类数据集Ak特征重要程度的排名Rk;
(4)通过特征重要程度排名Rk,删去第k类数据集Ak排名后c个特征,得到第k 类经过特征选择后的数据集Fk;
(5)通过NAR神经网络,用数据集Fk前t天的数据预测t+1天的空气质量指数,得到第k类NAR神经网络训练模型netk。
(6)随机选取数据集A中一条数据x,根据x所在类的特征排名Rz选取特征,用模型netz得到预测结果y。
进一步地,包括:
所述步骤1的具体方法为:
(11)数据集Air定义为:CO
u,
PM10
u,PM2.5
u,
AQI
u分别为第u天的一氧化碳浓度、二氧化氮浓度、臭氧浓度、PM10浓度、PM2.5浓度、二氧化硫浓度和空气质量指数,共n条数据,其中,Air=[air
1,air
2,…,air
u,…,air
n-1,air
n]
T,
(12)对每个特征进行归一化处理;
(13)从第一条数据开始,将t天内的数据及第t+1天的空气质量指数按照时间顺序整理为一条数据,得到有n-t条数据、7×t+1个特征的数据集A,A=[a1,…,au,…,an-t-1,an-t]T,au=[COu,...,AQIu,COu+1,...,AQIu+t-1,AQIu+t]。
进一步地,包括:
所述步骤2的具体方法为:
(21)定义Kohonen网络的输入为Ii,定义数据集I为数据集A的前7×t个特征, I={I1,I2,…,Ii,…,In-t},i∈[1,n-t];
(22)定义Kohonen网络的输出为J,J={J1,J2,…,Jj,…,J7×t},j∈[1,7×t];
(23)定义输入层与输出层之间的权重为Wij,Wij的初始值随机确定;
(24)定义Kohonen网络的学习率为δ(s),领域宽度为
当前迭代次数为s,最大迭代次数为T,s∈[0,T];
(25)令i=1,s=0,j=1;
(26)计算Ii中Iij与J中Jj之间的距离dij,dij=||Iij-Wij||;
(27)j=j+1;
(28)如果j>7×t,跳转到步骤(29),否则,跳转到步骤(26)
(29)对于输入样本Ii,从输出层中找到最佳匹配特性的节点ji,即min dij所在的节点;
(210)计算领域宽度函数值并调整权值:
Wij(s+1)=Wij(s)+n(s)δ(s)(Iij-Wij(s));
(211)s=s+1;
(212)如果s>T,跳转到步骤(213),否则跳转到步骤(26);
(213)计算其余样本I
p在此网络中与权重之间的距离D
i,D
i={d
1,d
2,…,d
p,…,d
n-t-1},
(214)对于输入样本Ii,从Di中选取距离最小的样本归属为一类;
(215)i=i+1;
(216)如果i>n-t,跳转到步骤(217),否则跳转到步骤(25);
(217)所有样本聚类完成,分为m类,得到第k类数据集Ak,k∈[1,m]。
进一步地,包括:
所述步骤3的具体包括:
(31)定义第k类数据集Ak的第f个特征,f∈[1,7×t],f的初始值为1;
(32)定义数据集Ak为ReliefF算法的类别Fk1,其余类别为ReliefF算法的类别Fk2,k的初始值为1;
(33)定义Pk为类别Fk1在数据集A中所占的比例;
(34)定义diff(f,x,y)表示样本x与样本y在特征f上的差,如果x(f)=y(f),则diff(f, x,y)=0,否则diff(f,x,y)=1;
(35)从类别Fk1中随机选取一个样本x,选取与该样本距离最近的q个最近邻Hk, Hk={h1,h2,…,hr,…,hq},从类别Fk2中选取与该样本距离最近的q个最近邻Mk,Mk={m1,m2,…,mr,…,mq};
(36)令特征权重W(f)=0;表示为:
(37)f=f+1;
(38)如果f>7×t,跳转到步骤(39),否则跳转到步骤(35);
(39)对特征权重W(f)进行排序,得到第k类数据集Ak的特征排名Rk;
(310)k=k+1;
(311)如果k>m,跳转到步骤(312),否则,跳转到步骤(34);
(312)得到所有类别的特征排名R,R={R1,R2,…,Rk,…,Rm}。
进一步地,包括:
所述步骤4具体包括:
(41)令f=7×t;
(42)查询特征f在Rk中的特征排名;
(43)如果f在特征排名Rk后c个,c∈[1,7×t-1],则跳转到步骤(44),否则跳转到步骤(46);
(44)如果f不是空气质量指数,则跳转到步骤(45),否则跳转到步骤(46);
(45)删除f所在特征;
(46)f=f-1;
(47)如果f=0,则跳转到步骤(48),否则跳转到步骤(42);
(48)遍历结束,得到第k类经过特征选择后的数据集Fk。
进一步地,包括:
所述步骤5具体包括:
(51)定义第k类经过特征选择后的数据集Fk的部分数据集作为训练集Pk,其余部分作为测试集Tk;
(52)定义训练集Pk除最后一个特征的其余特征,即前t天经过特征选择后的空气数据为训练输入Pk-in,最后一个特征,即第t+1天的空气质量指数为训练输出Pk-out;
(53)定义训练集Tk除最后一个特征的其余特征,即前t天经过特征选择后的空气数据为训练输入Tk-in,最后一个特征,即第t+1天的空气质量指数为训练输出Tk-out;
(54)定义h为单隐层NAR神经网络隐藏神经元的个数,定义MSE为均方误差;
(55)令MSEmin=1;
(56)Pk-in作为输入,Pk-out作为输出,通过具有h个隐藏神经元的单隐层NAR神经网络进行训练,得到第k类具有h个神经元的NAR神经网络训练模型netkh;
(57)Tk-in作为输入,通过NAR神经网络训练模型netkh,得到输出结果Yk-out,计算Tk-out与Yk-out的MSE;
(58)如果MSEmin>MSE,则跳转到步骤(59),否则跳转到步骤(510);
(59)MSEmin=MSE,netk=netkh,hbest=h;
(510)h=h+1
(511)如果hbest+5>h,则跳转到步骤(56),否则跳转到步骤(514);
(512)输出第k类NAR神经网络训练模型netk。
进一步地,包括:
所述步骤6具体包括:
(61)定义z为x所在的第z类,z∈[1,m];
(62)令k=1,dmin为dxk的最小值;
(63)计算Ak类的中心ak,即Ak中所有数据的平均值;
(64)计算x与ak的距离dxk,dxk=||x-dxk||;
(65)如果dmin>dxk,跳转到步骤(66),否则跳转到步骤(68);
(66)dmin=dxk;z=k;
(67)k=k+1;
(68)如果k>m,跳转到步骤(69),否则跳转到步骤(63);
(69)令f=7×t;
(610)查询特征f在Rz中的特征排名;
(611)如果f在特征排名Rz后c个,c∈[1,7×t-1],则跳转到步骤(612),否则跳转到步骤(614);
(612)如果f不是空气质量指数,则跳转到步骤(613),否则跳转到步骤(614);
(613)删除f所在特征;
(614)f=f-1;
(615)如果f=0,则跳转到步骤(616),否则跳转到步骤(610);
(616)遍历结束,得到经过特征选择后的x’;
(617)将x’作为所在类的NAR神经网络训练模型netz的输入,得到预测结果y。
有益效果:本发明利用Kohonen网络聚类对空气数据进行聚类,从而获得在相同时间段内变化规律相似的类别,有助于发掘更为准确的预测模型,提高预测精度;利用ReliefF特征选择算法获得特征排名,并去除对预测帮助较小的特征,从而提高运行效率。
具体实施方式
下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
Kohonen网络是自组织竞争型神经网络的一种,该网络为无监督学习,能够识别特征并自动聚类。相对于其他聚类方法,Kohonen网络聚类算法实施简单,适用范围广,运行效率高,能够满足本发明的聚类要求。本发明通过Kohonen网络聚类算法得到不同的空气模式,有助于提高预测精度。
ReliefF算法是对Relief算法的改进,适用于多个样本的特征权重计算。空气数据的特征较多,且部分特征对于预测无帮助,若选择所有特征进行预测,则会大大降低运行效率。因此在不损失预测精度的前提下,选择对预测有帮助的特征,对提高运行效率具有重大意义。本发明通过ReliefF算法得到不同空气模式的特征排名,选取排名靠前的特征,即选择对预测有帮助的特征进行预测,从而提高运行效率。
本发明所述的基于Kohonen网络聚类和ReliefF特征选择的空气质量指数预测方法,参阅图1所示,包括:
步骤1:对原始空气数据集Air进行预处理,得到处理过后的空气数据集A,具体方法为:
步骤101:定义Air为初始空气数据集,数据集Air的根据城市和时间有序划分,定义CO、NO2、O3、PM10、PM2.5、SO2、AQI分别为单条空气数据的一氧化碳浓度特征、二氧化氮浓度特征、臭氧浓度特征、PM10浓度特征、PM2.5浓度特征、二氧化硫浓度特征和空气质量指数特征,Air={CO,NO2,O3,PM10,PM2.5,SO2,AQI},共有n条数据;
步骤102:对每个特征进行归一化处理,使每个特征的值在[0,1]内;
步骤103:从第一条数据开始,将t天内的数据及第t+1天的空气质量指数按照时间顺序整理为一条数据,得到有n-t条数据、7×t+1个特征的数据集A。
步骤2:通过Kohonen网络聚类,将数据集A分为m类,得到第k类数据集Ak,k ∈[1,m],具体方法,参阅图2所示,为:
步骤201:定义Kohonen网络的输入为Ii,定义数据集I为数据集A的前7×t个特征,I={I1,I2,…,Ii,…,In-t},i∈[1,n-t];
步骤202:定义Kohonen网络的输出为J,J={J1,J2,…,Jj,…,J7×t},j∈[1,7×t];
步骤203:定义输入层与输出层之间的权重为Wij,Wij的初始值随机确定;
步骤204:定义Kohonen网络的学习率为
领域宽度为
当前迭代次数为s,最大迭代次数为T,s∈[0,T];
步骤205:i=1;
步骤206:s=0,j=1;
步骤207:计算Ii中Iij与J中Jj之间的距离dij,dij=||Iij-Wij||;
步骤208:j=j+1;
步骤209:如果j>7×t,跳转到步骤210,否则跳转到步骤207
步骤210:对于输入样本Ii,从输出层中找到最佳匹配特性的节点ji,即min dij所在的节点;
步骤211:计算领域宽度函数值并调整权值, Wij(s+1)=Wij(s)+n(s)δ(s)(Iij-Wij(s));
步骤212:s=s+1;
步骤213:如果s>T,跳转到步骤214,否则跳转到步骤207;
步骤214:计算其余样本I
p在此网络中与权重之间的距离D
i,D
i={d
1,d
2,…,d
p,…,d
n-t-1},
步骤215:对于输入样本Ii,从Di中选取距离最小的样本归属为一类;
步骤216:i=i+1;
步骤217:如果i>n-t,跳转到步骤218,否则跳转到步骤206;
步骤218:所有样本聚类完成,分为m类,得到第k类数据集Ak,k∈[1,m]。
步骤3:通过ReliefF算法处理数据集Ak,得出第k类数据集Ak特征重要程度的排名Rk,具体方法参阅图3所示,为:
步骤301:定义f为第k类数据集Ak的特征序号,即第k类数据集Ak的第f个特征, f∈[1,7×t],f的初始值为1;
步骤302:定义数据集Ak为ReliefF算法的类别Fk1,其余类别为ReliefF算法的类别Fk2,k的初始值为1;
步骤303:定义Pk为类别Fk1在数据集A中所占的比例;
步骤304:定义diff(f,x,y)表示样本x与样本y在特征f上的差,如果x(f)=y(f),则 diff(f,x,y)=0,否则diff(f,x,y)=1;
步骤305:从类别Fk1中随机选取一个样本x,选取与该样本距离最近的q个最近邻Hk,Hk={h1,h2,…,hr,…,hq},从类别Fk2中选取与该样本距离最近的q个最近邻Mk, Mk={m1,m2,…,mr,…,mq};
步骤306:令特征权重W(f)=0;
步骤308:f=f+1;
步骤309:如果f>7×t,跳转到步骤310,否则跳转到步骤306;
步骤310:对特征权重W(f)进行排序,得到第k类数据集Ak的特征排名Rk;
步骤311:k=k+1;
步骤312:如果k>m,跳转到步骤313,否则跳转到步骤305;
步骤313:得到所有类别的特征排名R,R={R1,R2,…,Rk,…,Rm}。
步骤4:通过特征重要程度排名Rk,删去第k类数据集Ak排名后c个特征,得到第 k类经过特征选择后的数据集Fk,具体方法,参阅图4所示,为:
步骤401:令f=7×t;
步骤402:查询特征f在Rk中的特征排名;
步骤403:如果f在特征排名Rk后c个,c∈[1,7×t-1],则跳转到步骤404,否则跳转到步骤406;
步骤404:如果f不是空气质量指数,则跳转到步骤405,否则跳转到步骤406;
步骤405:删除f所在特征;
步骤406:f=f-1;
步骤407:如果f=0,则跳转到步骤408,否则跳转到步骤402;
步骤408:遍历结束,得到第k类经过特征选择后的数据集Fk。
步骤5:通过NAR神经网络,用数据集Fk前t天的数据预测t+1天的空气质量指数,得到第k类NAR神经网络训练模型netk,具体方法参阅图5所示,为:
步骤501:定义第k类经过特征选择后的数据集Fk的前70%为训练集Pk,后30%为测试集Tk;
步骤502:定义训练集Pk除最后一个特征的其余特征,即前t天经过特征选择后的空气数据为训练输入Pk-in,最后一个特征,即第t+1天的空气质量指数为训练输出Pk-out;
步骤503:定义训练集Tk除最后一个特征的其余特征,即前t天经过特征选择后的空气数据为训练输入Tk-in,最后一个特征,即第t+1天的空气质量指数为训练输出Tk-out;
步骤504:定义h为单隐层NAR神经网络隐藏神经元的个数,定义MSE为均方误差;
步骤505:h=5,MSEmin=1;
步骤506:Pk-in作为输入,Pk-out作为输出,通过具有h个隐藏神经元的单隐层NAR 神经网络进行训练,得到第k类具有h个神经元的NAR神经网络训练模型netkh;
步骤507:Tk-in作为输入,通过NAR神经网络训练模型netkh,得到输出结果Yk-out,计算Tk-out与Yk-out的MSE;
步骤508:如果MSEmin>MSE,则跳转到步骤509,否则跳转到步骤510;
步骤509:MSEmin=MSE,netk=netkh,hbest=h;
步骤510:h=h+1;
步骤511:如果hbest+5>h,则跳转到步骤506,否则跳转到步骤514;
步骤512:输出第k类NAR神经网络训练模型netk。
步骤6:随机选取数据集A中一条数据x,确定所属类Az,根据Rz选取特征,用模型netz得到预测结果y,具体方法参阅图6所示,为:
步骤601:随机选取数据集A中一条数据的前42个特征值记为x;
步骤602:定义z为x所在的第z类,z∈[1,36];
步骤603:k=1,dmin=100;
步骤604:计算Ak类中心ak,即Ak中所有数据的平均值;
步骤605:计算x与ak的距离dxk,dxk=||x-dxk||;
步骤606:如果dmin>dxk,跳转到步骤607,否则跳转到步骤609;
步骤607:dmin=dxk;
步骤608:z=k;
步骤609:k=k+1;
步骤610:如果k>m,跳转到步骤611,否则跳转到步骤604;
步骤611:令f=42;
步骤612:查询特征f在Rz中的特征排名;
步骤613:如果f在特征排名Rz后21个,则跳转到步骤614,否则跳转到步骤616;
步骤614:如果f不是空气质量指数,则跳转到步骤615,否则跳转到步骤616;
步骤615:删除f所在特征;
步骤616:f=f-1;
步骤617:如果f=0,则跳转到步骤618,否则跳转到步骤612;
步骤618:遍历结束,得到经过特征选择后的x’;
步骤619:将x’作为所在类的NAR神经网络训练模型netz的输入,得到预测结果y。本发明涉及多个变量,下表1是变量说明表:
表1变量说明表
为了更好地说明本方法的有效性,通过对532902条空气数据处理,利用Kohonen网络聚类得到聚类数据集,用ReliefF进行特征提取,最后通过NAR神经网络训练,得到预测模型。改进的空气质量指数预测算法,与传统的预测算法相比,提高了预测精度;与未经过特征提取的算法相比,在保证了预测精度的前提下,提高了运行效率。
步骤1:对原始空气数据集Air进行预处理,得到处理过后的空气数据集A,具体方法为:
步骤1.1:定义Air为初始空气数据集,数据集Air的根据城市和时间有序划分,定义CO、NO2、O3、PM10、PM2.5、SO2、AQI分别为单条空气数据的一氧化碳浓度特征、二氧化氮浓度特征、臭氧浓度特征、PM10浓度特征、PM2.5浓度特征、二氧化硫浓度特征和空气质量指数特征,Air={CO,NO2,O3,PM10,PM2.5,SO2,AQI},共有532902条数据;
步骤1.2:对每个特征进行归一化处理,使每个特征的值在[0,1]内;
步骤1.3:从第一条数据开始,将6天内的数据及第7天的空气质量指数按照时间顺序整理为一条数据,得到有532896条数据、43个特征的数据集A。
步骤2:通过Kohonen网络聚类,将数据集A分为36类,得到第k类数据集Ak,k ∈[1,36],具体方法为:
步骤2.1:定义Kohonen网络的输入为Ii,定义数据集I为数据集A的前42个特征, I={I1,I2,…,Ii,…,I532896},i∈[1,532896];
步骤2.2:定义Kohonen网络的输出为J,J={J1,J2,…,Jj,…,J42},j∈[1,42];
步骤2.3:定义输入层与输出层之间的权重为Wij,Wij的初始值随机确定;
步骤2.4:定义Kohonen网络的学习率为
领域宽度为
当前迭代次数为s,最大迭代次数为10000,s∈[0,10000];
步骤2.5:i=1;
步骤2.6:s=0,j=1;
步骤2.7:计算Ii中Iij与J中Jj之间的距离dij,dij=||Iij-Wij||;
步骤2.8:j=j+1;
步骤2.9:如果j>42,跳转到步骤2.10,否则跳转到步骤2.7
步骤2.10:对于输入样本Ii,从输出层中找到最佳匹配特性的节点ji,即min dij所在的节点;
步骤2.11:计算领域宽度函数值并调整权值, Wij(s+1)=Wij(s)+n(s)δ(s)(Iij-Wij(s));
步骤2.12:s=s+1;
步骤2.13:如果s>10000,跳转到步骤2.14,否则跳转到步骤2.7;
步骤2.14:计算其余样本I
p在此网络中与权重之间的距离D
i,D
i={d
1,d
2,…,d
p,…, d
532895},
步骤2.15:对于输入样本Ii,从Di中选取距离最小的样本归属为一类;
步骤2.16:i=i+1;
步骤2.17:如果i>532896,跳转到步骤2.18,否则跳转到步骤2.6;
步骤2.18:所有样本聚类完成,分为36类,得到第k类数据集Ak,k∈[1,36]。
步骤3:通过ReliefF算法处理数据集Ak,得出第k类数据集Ak特征重要程度的排名Rk,具体方法为:
步骤3.1:定义f为第k类数据集Ak的特征序号,即第k类数据集Ak的第f个特征, f∈[1,42],f的初始值为1;
步骤3.2:定义数据集Ak为ReliefF算法的类别Fk1,其余类别为ReliefF算法的类别Fk2,k的初始值为1;
步骤3.3:定义Pk为类别Fk1在数据集A中所占的比例;
步骤3.4:定义diff(f,x,y)表示样本x与样本y在特征f上的差,如果x(f)=y(f),则 diff(f,x,y)=0,否则diff(f,x,y)=1;
步骤3.5:从类别Fk1中随机选取一个样本x,选取与该样本距离最近的10个最近邻Hk,Hk={h1,h2,…,hr,…,h10},从类别Fk2中选取与该样本距离最近的10个最近邻 Mk,Mk={m1,m2,…,mr,…,m10};
步骤3.6:令特征权重W(f)=0;
步骤3.8:f=f+1;
步骤3.9:如果f>7×t,跳转到步骤3.10,否则跳转到步骤3.6;
步骤3.10:对特征权重W(f)进行排序,得到第k类数据集Ak的特征排名Rk;
步骤3.11:k=k+1;
步骤3.12:如果k>36,跳转到步骤3.13,否则跳转到步骤3.5;
步骤3.13:得到所有类别的特征排名R,R={R1,R2,…,Rk,…,Rm}。
步骤4:通过特征重要程度排名Rk,删去第k类数据集Ak排名后c个特征,得到第 k类经过特征选择后的数据集Fk,具体方法为:
步骤4.1:令f=42;
步骤4.2:查询特征f在Rk中的特征排名;
步骤4.3:如果f在特征排名Rk后21个,则跳转到步骤4.4,否则跳转到步骤4.6;
步骤4.4:如果f不是空气质量指数,则跳转到步骤4.5,否则跳转到步骤4.6;
步骤4.5:删除f所在特征;
步骤4.6:f=f-1;
步骤4.7:如果f=0,则跳转到步骤4.8,否则跳转到步骤4.2;
步骤4.8:遍历结束,得到第k类经过特征选择后的数据集Fk。
步骤5:通过NAR神经网络,用数据集Fk前6天的数据预测7天的空气质量指数,得到第k类NAR神经网络训练模型netk,具体方法为:
步骤5.1:定义第k类经过特征选择后的数据集Fk的前70%为训练集Pk,后30%为测试集Tk;
步骤5.2:定义训练集Pk除最后一个特征的其余特征,即前6天经过特征选择后的空气数据为训练输入Pk-in,最后一个特征,即第7天的空气质量指数为训练输出Pk-out;
步骤5.3:定义训练集Tk除最后一个特征的其余特征,即前6天经过特征选择后的空气数据为训练输入Tk-in,最后一个特征,即第7天的空气质量指数为训练输出Tk-out;
步骤5.1:定义第k类经过特征选择后的数据集Fk的前70%为训练集Pk,后30%为测试集Tk;
步骤5.2:定义训练集Pk除最后一个特征的其余特征,即前t天经过特征选择后的空气数据为训练输入Pk-in,最后一个特征,即第t+1天的空气质量指数为训练输出Pk-out;
步骤5.3:定义训练集Tk除最后一个特征的其余特征,即前t天经过特征选择后的空气数据为训练输入Tk-in,最后一个特征,即第t+1天的空气质量指数为训练输出Tk-out;
步骤5.4:定义h为单隐层NAR神经网络隐藏神经元的个数,定义MSE为均方误差;
步骤5.5:h=5,MSEmin=1;
步骤5.6:Pk-in作为输入,Pk-out作为输出,通过具有h个隐藏神经元的单隐层NAR 神经网络进行训练,得到第k类具有h个神经元的NAR神经网络训练模型netkh;
步骤5.7:Tk-in作为输入,通过NAR神经网络训练模型netkh,得到输出结果Yk-out,计算Tk-out与Yk-out的MSE;
步骤5.8:如果MSEmin>MSE,则跳转到步骤5.9,否则跳转到步骤5.10;
步骤5.9:MSEmin=MSE,netk=netkh,hbest=h;
步骤5.10:h=h+1
步骤5.11:如果hbest+5>h,则跳转到步骤5.6,否则跳转到步骤5.14;
步骤5.12:输出第k类NAR神经网络训练模型netk。
步骤6:随机选取数据集A中一条数据x,确定所属类Az,根据Rz选取特征,用模型netz得到预测结果y,具体方法为:
步骤6.1:随机选取数据集A中一条数据的前42个特征值记为x;
步骤6.2:定义z为x所在的第z类,z∈[1,36];
步骤6.3:k=1,dmin=100;
步骤6.4:计算Ak类中心ak,即Ak中所有数据的平均值;
步骤6.5:计算x与ak的距离dxk,dxk=||x-dxk||;
步骤6.6:如果dmin>dxk,跳转到步骤6.7,否则跳转到步骤6.9;
步骤6.7:dmin=dxk;
步骤6.8:z=k;
步骤6.9:k=k+1;
步骤6.10:如果k>36,跳转到步骤6.11,否则跳转到步骤6.4;
步骤6.11:令f=42;
步骤6.12:查询特征f在Rz中的特征排名;
步骤6.13:如果f在特征排名Rz后21个,则跳转到步骤6.14,否则跳转到步骤6.16;
步骤6.14:如果f不是空气质量指数,则跳转到步骤6.15,否则跳转到步骤6.16;
步骤6.15:删除f所在特征;
步骤6.16:f=f-1;
步骤6.17:如果f=0,则跳转到步骤6.18,否则跳转到步骤6.12;
步骤6.18:遍历结束,得到经过特征选择后的x’;
步骤6.19:将x’作为所在类的NAR神经网络训练模型netz的输入,得到预测结果y。
本发明创造性地提出了一种将空气类比于天气,具有不同的模式,相同模式的空气数据变化规律相似,通过Kohonen网络聚类,得到同一模式的空气数据,再ReliefF特征选择算法,去除不影响空气质量指数预测的特征,最终用NAR神经网络对不同模式的空气数据进行预测的方法。
本发明下载环境部数据中心的532902条空气数据,并分别与算法BP,ELM,小波神经网络进行对比试验后,本发明采用的方法预测准确率提高了8.7%~17.6%;时间上,用ReliefF的nar网络时间减少了两倍左右。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。