如何解决我可以为 ELM 模型应用泛化代码吗?
我使用极限学习机 (ELM) 模型进行预测,并将我的数据集划分为 70% 的训练数据和 30% 的测试数据。我想添加用于交叉验证的代码,我尝试这样做,但在这样做时遇到了问题。请任何人都可以帮助我。
我的代码:
#------------------------------import data--------------
train = pd.read_excel('INRStrai.xlsx')
test = pd.read_excel('INRStes.xlsx')
#--------------------------------(scaler data)------------
scaler = MinMaxScaler()
scaler_X = MinMaxScaler()
scaler_Y = MinMaxScaler()
# fit_transform for training data:
X_train = scaler_X.fit_transform(train.values[:,:-1])
y_train = scaler_Y.fit_transform(train.values[:,-1:])
X_test = scaler_X.transform(test.values[:,:-1])
y_test = scaler_Y.transform(test.values[:,-1:])
#----------------------------(input size)-------------
input_size = X_train.shape[1]
#---------------------------(Number of neurons)-------
hidden_size = 17
#---------------------------(To fix the RESULT)-------
seed =16 # can be any number,and the exact value does not matter
np.random.seed(seed)
#---------------------------(weights & biases)------------
input_weights = np.random.normal(size=[input_size,hidden_size])
biases = np.random.normal(size=[hidden_size])
#----------------------(Activation Function)----------
def relu(x):
return np.maximum(x,x)
#--------------------------(Calculations)----------
def hidden_nodes(X):
G = np.dot(X,input_weights)
G = G + biases
H = relu(G)
return H
#Output weights
output_weights = np.dot(pinv2(hidden_nodes(X_train)),y_train)
#------------------------(Def prediction)---------
def predict(X):
out = hidden_nodes(X)
out = np.dot(out,output_weights)
return out
#------------------------------------(Make_PREDICTION)--------------
prediction = predict(X_test)
#unscaler_prediction=prediction*(4.58620-1.15000)+1.15000
#unscaler_y_train=y_train*(4.58620-1.15000)+1.15000
unscaler_prediction=prediction*(4.5862069-1.23333333)+1.23333333
unscaler_y_test=y_test*(4.5862069-1.23333333)+1.23333333
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。