刚学粒子群算法,然后用粒子群算法优化神经网络的隐藏节点数,代码写的不是太好,如果代码有问题,请大家多多指教。第一次写博客,多多包涵。
本文的粒子群算法用的是标准粒子群算法,权重更新采用线性递减策略。
这是SSE图
import numpy as np
import random
import matplotlib.pyplot as plt
import neurolab as nl
train_x =[]
d=[]
samplescount=1000
myrndsmp=np.random.rand(samplescount)
for yb_i in xrange(0,samplescount):
train_x.append([myrndsmp[yb_i]*4*np.pi-2*np.pi])
for yb_i in xrange(0,samplescount):
d.append(np.sin(train_x[yb_i])*0.5+np.cos(train_x[yb_i])*0.5)
myinput=np.array(train_x)
mytarget=np.array(d)
#PSO参数设置
class PSO():
def __init__(self,max_iter):
#self.w = 0.8