用jupyter写代码:根据共享单车数据集bike_train.csv,实现总租车数量预测功能任务 注意:后800条数据为测试集 一、载入数据特征说明 datetime:时间。年月日小时格式 season:季节。1:春天;2:夏天;3:秋天;4:冬天 holiday:是否节假日。0:否;1:是 workingday:是否工作日。0:否;1:是 weather:天气。1:晴天;2:阴天;3:小鱼或小雪;4:恶劣天气 temp:实际温度 atemp:体感温度 humidity:湿度 windspeed:风速 casual:未注册用户租车数量 registered:注册用户租车数量 count:总租车数量二、数据预处理三、相关性分析和特征值选取四、构建模型五、预处理六、绘图
时间: 2024-03-21 10:37:46 浏览: 207
Python数据分析与可视化项目交通出行类-共享单车预测租赁数量-约300行(随机森林、支持向量机模型).zip
好的,我可以帮你回答这个问题。首先,你需要安装并启动 Jupyter Notebook,然后按照以下步骤进行操作:
1. 导入所需的 Python 库:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
```
2. 载入数据:
```python
data = pd.read_csv("bike_train.csv")
```
3. 查看数据:
```python
data.head()
```
4. 数据预处理:
```python
# 将 datetime 列转换为时间格式
data['datetime'] = pd.to_datetime(data['datetime'])
# 将时间拆分为年、月、日和小时
data['year'] = data['datetime'].dt.year
data['month'] = data['datetime'].dt.month
data['day'] = data['datetime'].dt.day
data['hour'] = data['datetime'].dt.hour
# 删除不需要的列
data.drop(['datetime', 'casual', 'registered'], axis=1, inplace=True)
# 将分类变量转换为哑变量
data = pd.get_dummies(data, columns=['season', 'weather'])
# 将数据集分为训练集和测试集
train = data[:-800]
test = data[-800:]
```
5. 相关性分析和特征值选取:
```python
# 计算特征之间的相关性
correlation = train.corr()
# 选取相关性较高的特征
features = ['hour', 'temp', 'year', 'month', 'day', 'humidity', 'weather_1', 'weather_2', 'weather_3']
```
6. 构建模型:
```python
# 获取训练集和测试集的特征和标签
X_train = train[features]
y_train = train['count']
X_test = test[features]
y_test = test['count']
# 训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
```
7. 预处理:
```python
# 预测测试集的总租车数量
y_pred = model.predict(X_test)
# 计算均方根误差
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print("RMSE:", rmse)
```
8. 绘图:
```python
# 绘制预测值与真实值的散点图
plt.scatter(y_test, y_pred)
plt.xlabel("True Values")
plt.ylabel("Predictions")
plt.show()
```
以上就是根据共享单车数据集预测总租车数量的完整代码。希望能对你有帮助!
阅读全文