BP神经网络共享单车需求预测代码
时间: 2023-07-03 22:16:56 浏览: 131
BP神经网络预测代码
好的,以下是一个简单的基于BP神经网络的共享单车需求预测代码。
```python
import numpy as np
import pandas as pd
from sklearn.neural_network import MLPRegressor
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error
# 读取数据
data = pd.read_csv('bike_sharing.csv')
# 特征选择
features = ['season', 'holiday', 'workingday', 'weather', 'temp', 'atemp', 'humidity', 'windspeed']
# 数据归一化
scaler = MinMaxScaler()
data[features] = scaler.fit_transform(data[features])
# 训练集和测试集划分
train_data = data.sample(frac=0.8, random_state=1)
test_data = data.drop(train_data.index)
# 构建BP神经网络模型
model = MLPRegressor(hidden_layer_sizes=(10, 10), max_iter=1000)
# 训练模型
model.fit(train_data[features], train_data['count'])
# 预测结果
train_pred = model.predict(train_data[features])
test_pred = model.predict(test_data[features])
# 计算均方误差
train_rmse = np.sqrt(mean_squared_error(train_data['count'], train_pred))
test_rmse = np.sqrt(mean_squared_error(test_data['count'], test_pred))
print('训练集均方误差: {:.2f}'.format(train_rmse))
print('测试集均方误差: {:.2f}'.format(test_rmse))
```
以上代码使用了`MLPRegressor`类构建了一个包含两个隐藏层的BP神经网络模型,并使用均方误差作为模型评估指标。需要注意的是,代码中做了数据归一化处理,以保证模型能够更好地拟合数据。
阅读全文