kaggle共享单车案例的广义线性模型的python代码
时间: 2023-11-12 14:37:59 浏览: 124
以下是共享单车案例的广义线性模型的Python代码示例:
```python
import pandas as pd
import statsmodels.api as sm
# 读取数据
data = pd.read_csv('bike-sharing.csv')
# 将时间列转换为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['weekday'] = data['datetime'].dt.weekday
# 将季节列转换为哑变量
season_dummies = pd.get_dummies(data['season'], prefix='season')
data = pd.concat([data, season_dummies], axis=1)
# 将天气列转换为哑变量
weather_dummies = pd.get_dummies(data['weather'], prefix='weather')
data = pd.concat([data, weather_dummies], axis=1)
# 构建GLM模型
model = sm.GLM(data['count'], data[['holiday', 'workingday', 'temp', 'atemp', 'humidity', 'windspeed', 'year', 'month', 'hour', 'weekday', 'season_1', 'season_2', 'season_3', 'weather_1', 'weather_2', 'weather_3']], family=sm.families.Poisson())
# 拟合模型
result = model.fit()
# 输出模型概要信息
print(result.summary())
# 预测未来单车租赁量
future_data = pd.DataFrame({'holiday': [0], 'workingday': [1], 'temp': [25], 'atemp': [25], 'humidity': [60], 'windspeed': [10], 'year': [2012], 'month': [12], 'hour': [12], 'weekday': [3], 'season_1': [0], 'season_2': [1], 'season_3': [0], 'weather_1': [1], 'weather_2': [0], 'weather_3': [0]})
prediction = result.predict(future_data)
print('未来单车租赁量预测值为:', prediction)
```
以上代码中,首先读取共享单车数据,然后对时间列进行处理,并将季节和天气列转换为哑变量。接着,使用statsmodels库中的GLM函数构建泊松回归模型,将单车租赁量作为响应变量,天气情况、季节、假期、星期几、小时数等因素作为预测变量。最后拟合模型并输出模型概要信息,同时使用模型预测未来单车租赁量。
阅读全文