极限学习机ELM
import numpy as np
import math
import pandas as pd
import matplotlib.pyplot as plt
def elmtrain(P,T,N,TF,TYPE):#P为训练集的R*Q特征矩阵,T训练集的标签阵,N隐含层的结点个数,TF激活函数,TYPE回归(0)或分类(1)
R,Q=P.shape#R个特征,Q个样本,每列为一个样本
S,Q = T.shape#
IW=np.random.rand(N,R)#生成随机初始权重矩阵
B=np.random.rand(N,1)#初始化偏置矩阵
BiasMatrix = np.tile(B,(1,Q))
tempH = np.dot(IW,P)+ BiasMatrix#隐含层输出矩阵
if TF=='sin':
H = np.sin(tempH)
elif TF=='sig':
H = 1 / (1 + np.exp(-tempH)