ELM分类法Python实现

ELM分类法Python实现

By:YANG LIU

import numpy as np
import matplotlib.pyplot as plt
def sigmoid(a,b,x):
return 1.0/(1+np.exp(-1.0*(x.dot(a)+b)))
def ELM_prototype(X,T,C,n,L):
a=np.random.normal(0,1,(n,L))
aa=a
b=np.random.normal(0,1,L)
bb=b
H=sigmoid(a,b,X)
HH=H.T.dot(H);HT=H.T.dot(T)
beta=np.linalg.pinv(HH+np.identity(L)/C).dot(HT)
Fl=H.dot(beta)
return aa,bb,beta,Fl
x1=np.array([1,2,3,4,5,6,7,8,9])
x2=np.array([2,4,6,40,50,60,14,80,18])
X=np.vstack([x1,x2]).T
print(X)
T=np.array([1,1,1,2,2,2,1,2,1])——训练数据
aa,bb,beta,Fl=ELM_prototype(X,T,C=1e5,n=2,L=100)
plt.plot(x1,T,lw=1.5,label=‘Training goal’)
plt.plot(x1,Fl,lw=3,label=‘ELM output’)
plt.legend()
plt.show()
x1=np.array([10,20,30,40,50,60,70,80,90])
x2=np.array([100,40,60,80,100,120,140,160,180])——测试数据
X=np.vstack([x1,x2]).T
H=sigmoid(aa,bb,X)
Fl=H.dot(beta)
plt.plot(x1/10,Fl,lw=3,label=‘ELM output’)
plt.legend()
plt.show()

ELM分类法Python实现训练拟合结果完全重合,图像中训练目标值增加了0.1以便于观看。
ELM分类法Python实现
测试值训练结果,基本符合预期,说明分类结果正确。