基于极限学习机ELM的数据回归预测:多输入单输出实现
基于极限学习机ELM的数据回归预测 多输入单输出 代码含详细注释不负责 数据存入Excel替换方便指标计算有决定系数R2平均绝对误差MAE平均相对误差MBE在数据分析与预测领域极限学习机ELM以其快速的学习速度和良好的泛化性能备受关注。今天咱们就来聊聊基于ELM的多输入单输出数据回归预测并且会涉及从Excel读取数据、指标计算等内容。数据准备我们将数据存入Excel这样替换数据非常方便。假设我们的数据文件名为data.xlsx其中有多列输入特征最后一列是输出结果。代码实现下面是Python实现基于ELM的多输入单输出数据回归预测的代码咱们一步一步来看import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score, mean_absolute_error from scipy.linalg import pinv2 # 从Excel读取数据 data pd.read_excel(data.xlsx) X data.iloc[:, :-1].values y data.iloc[:, -1].values # 划分训练集和测试集 X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42) # ELM参数设置 input_size X_train.shape[1] hidden_size 10 # 隐藏层神经元数量可以根据实际情况调整 output_size 1 # 随机生成输入层到隐藏层的权重和隐藏层偏置 W np.random.randn(input_size, hidden_size) b np.random.randn(1, hidden_size) # 定义激活函数这里使用Sigmoid函数 def sigmoid(x): return 1 / (1 np.exp(-x)) # 计算隐藏层输出 hidden_output sigmoid(np.dot(X_train, W) b) # 计算输出层权重 beta pinv2(hidden_output).dot(y_train) # 预测 hidden_output_test sigmoid(np.dot(X_test, W) b) y_pred hidden_output_test.dot(beta) # 指标计算 r2 r2_score(y_test, y_pred) mae mean_absolute_error(y_test, y_pred) mbe np.mean((y_test - y_pred) / y_test) * 100 print(f决定系数R2: {r2}) print(f平均绝对误差MAE: {mae}) print(f平均相对误差MBE: {mbe}%)代码分析数据读取pythondata pd.readexcel(data.xlsx)X data.iloc[:, :-1].valuesy data.iloc[:, -1].values这里使用pandas库的readexcel函数读取Excel数据。然后将除最后一列外的所有列作为输入特征X最后一列作为输出标签y。数据划分pythonXtrain, Xtest, ytrain, ytest traintestsplit(X, y, testsize0.2, randomstate42)通过sklearn的traintestsplit函数将数据划分为训练集和测试集测试集占比20%random_state设置为42是为了保证每次运行代码划分结果一致方便调试和对比。ELM参数设置与随机初始化pythoninputsize Xtrain.shape[1]hiddensize 10outputsize 1W np.random.randn(inputsize, hiddensize)b np.random.randn(1, hidden_size)确定输入层大小、隐藏层神经元数量和输出层大小。然后随机生成输入层到隐藏层的权重W和隐藏层偏置b这里使用np.random.randn生成符合标准正态分布的随机数。激活函数与隐藏层输出计算pythondef sigmoid(x):return 1 / (1 np.exp(-x))hiddenoutput sigmoid(np.dot(Xtrain, W) b)定义Sigmoid激活函数然后通过矩阵乘法计算输入层到隐藏层的加权和并加上偏置再经过Sigmoid函数得到隐藏层输出。输出层权重计算与预测pythonbeta pinv2(hiddenoutput).dot(ytrain)hiddenoutputtest sigmoid(np.dot(Xtest, W) b)ypred hiddenoutputtest.dot(beta)使用广义逆pinv2计算输出层权重beta。对于测试集同样计算隐藏层输出然后通过隐藏层输出与输出层权重相乘得到预测结果。指标计算pythonr2 r2score(ytest, ypred)mae meanabsoluteerror(ytest, ypred)mbe np.mean((ytest - ypred) / ytest) * 100利用sklearn的r2score和meanabsolute_error计算决定系数R2和平均绝对误差MAE。手动计算平均相对误差MBE先计算每个样本的相对误差再求平均并乘以100转换为百分比。通过以上步骤我们就实现了基于极限学习机ELM的多输入单输出数据回归预测并计算了关键指标来评估模型性能。在实际应用中可以根据不同的数据特点和需求调整隐藏层神经元数量等参数以获得更好的预测效果。基于极限学习机ELM的数据回归预测 多输入单输出 代码含详细注释不负责 数据存入Excel替换方便指标计算有决定系数R2平均绝对误差MAE平均相对误差MBE
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2414960.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!