赞
踩
以下是一个使用Python的Keras库创建一个简单的多层感知器(Multilayer Perceptron, MLP)模型进行回归预测的示例代码。我们将随机生成一些二维数据点,并训练神经网络来拟合这些数据以进行预测。
Python代码如下:
import numpy as np import matplotlib.pyplot as plt from keras.models import Sequential from keras.layers import Dense from sklearn.model_selection import train_test_split # 设置随机数种子 np.random.seed(42) # 随机生成模拟数据 input_dim = 1 output_dim = 1 X = np.random.rand(1000, input_dim) y = 3 * X ** 2 + 0.5 * np.sin(2 * np.pi * X) # 假设为某种非线性关系 # 不进行标准化处理,因为此处的数据范围适合神经网络直接处理 # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建Sequential模型 model = Sequential() model.add(Dense(64, activation='relu', input_shape=(input_dim,))) model.add(Dense(32, activation='relu')) model.add(Dense(output_dim, activation='linear')) # 编译模型,指定损失函数、优化器及评估指标(这里使用均方误差) model.compile(loss='mean_squared_error', optimizer='adam') # 训练模型 history = model.fit(X_train, y_train, epochs=100, batch_size=32, validation_split=0.2) # 使用模型进行预测 predictions = model.predict(X_test) # 可视化预测结果与实际值对比 plt.figure(figsize=(10, 6)) plt.scatter(range(1,len(y_test)+1), y_test, color='blue', linewidth=1, label='Actual Values') plt.plot(range(1,len(y_test)+1), predictions, color='red', linewidth=1, label='Predictions') plt.xlabel('Input Feature') plt.ylabel('Output Feature') plt.legend() plt.title('Actual vs Predicted Values') # plt.show() plt.savefig('plot201.png') # 保存图形到文件 # 计算并绘制预测误差 error = y_test - predictions plt.figure(figsize=(10, 6)) plt.hist(error, bins=20, edgecolor='black') plt.xlabel('Prediction Error') plt.ylabel('Frequency') plt.title('Distribution of Prediction Errors') # plt.show() plt.savefig('plot202.png') # 保存图形到文件 # 如果需要计算RMSE作为整体误差指标 from sklearn.metrics import mean_squared_error rmse = np.sqrt(mean_squared_error(y_test, predictions)) print(f"Root Mean Squared Error (RMSE): {rmse:.2f}")
程序结果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。