使用BP神经网络预测共享单车需求的参考代码
时间: 2024-02-18 09:04:06 浏览: 91
基于BP神经网络实现共享单车数据预测.rar
5星 · 资源好评率100%
以下是使用BP神经网络预测共享单车需求的参考代码:
```python
import pandas as pd
import numpy as np
from sklearn.neural_network import MLPRegressor
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
# 读取数据
data=pd.read_csv('bike-sharing-demand.csv')
# 特征工程
data['date']=pd.to_datetime(data['datetime'])
data['year']=data['date'].dt.year
data['month']=data['date'].dt.month
data['day']=data['date'].dt.day
data['hour']=data['date'].dt.hour
data=data.drop(['datetime','date'],axis=1)
# 划分训练集和测试集
X=data.drop(['casual','registered','count'],axis=1)
y=data['count']
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42)
# 数据标准化
scaler=StandardScaler()
X_train_scaled=scaler.fit_transform(X_train)
X_test_scaled=scaler.transform(X_test)
# BP神经网络模型训练
model=MLPRegressor(hidden_layer_sizes=(30,30,30),max_iter=1000)
model.fit(X_train_scaled,y_train)
# 模型预测
y_pred=model.predict(X_test_scaled)
# 模型评估
from sklearn.metrics import r2_score,mean_squared_error
print('R2 score:',r2_score(y_test,y_pred))
print('MSE:',mean_squared_error(y_test,y_pred))
```
其中,`bike-sharing-demand.csv` 是共享单车需求数据集。首先进行特征工程,将日期时间拆分成年、月、日和小时四个特征,并删除不需要的列。然后将数据集划分为训练集和测试集,并对训练集和测试集进行标准化处理。接着使用 MLPRegressor 进行 BP神经网络模型的训练,并使用训练好的模型对测试集进行预测。最后使用 r2_score 和 mean_squared_error 评估模型的性能。
阅读全文