头歌--共享单车之租赁需求预估
目录
第1关:数据探索与可视化
第2关:特征工程
第3关:租赁需求预估
第1关:数据探索与可视化
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt#********* Begin *********#
train_df = pd.read_csv('./step1/bike_train.csv')
train_df['hour'] = train_df.datetime.apply(lambda x:x.split()[1].split(':')[0]).astype('int')
group_hour=train_df.groupby(train_df.hour)
hour_mean=group_hour[['count','registered','casual']].mean()
fig=plt.figure(figsize=(10,10))
plt.plot(hour_mean['count'])
plt.title('average count per hour')
plt.savefig('./step1/result/plot.png')
plt.show()
#********* End *********#
第2关:特征工程
import pandas as pd
import numpy as np
from datetime import datetime
def transform_data(train_df):#********* Begin *********#train_df['date'] = train_df.datetime.apply(lambda x: x.split()[0]) train_df['hour'] = train_df.datetime.apply(lambda x: x.split()[1].split(':')[0]).astype('int') train_df['year'] = train_df.datetime.apply(lambda x: x.split()[0].split('-')[0]).astype('int') train_df['month'] = train_df.datetime.apply(lambda x: x.split()[0].split('-')[1]).astype('int') train_df['weekday'] = train_df.date.apply(lambda x: datetime.strptime(x, '%Y-%m-%d').isoweekday())return train_df#********* End **********#
第3关:租赁需求预估
#********* Begin *********#
import pandas as pd
import numpy as np
from datetime import datetime
from sklearn.linear_model import Ridge
train_df = pd.read_csv('./step3/bike_train.csv')
# 舍弃掉异常count
train_df=train_df[np.abs(train_df['count']-train_df['count'].mean())<=3*train_df['count'].std()]
# 训练集的时间数据处理
train_df['date']=train_df.datetime.apply(lambda x:x.split()[0])
train_df['hour']=train_df.datetime.apply(lambda x:x.split()[1].split(':')[0]).astype('int')
train_df['year']=train_df.datetime.apply(lambda x:x.split()[0].split('-')[0]).astype('int')
train_df['month']=train_df.datetime.apply(lambda x:x.split()[0].split('-')[1]).astype('int')
train_df['weekday']=train_df.date.apply( lambda x : datetime.strptime(x,'%Y-%m-%d').isoweekday())
# 独热编码
train_df_back=train_df
dummies_month = pd.get_dummies(train_df['month'], prefix='month')
dummies_year = pd.get_dummies(train_df['year'], prefix='year')
dummies_season = pd.get_dummies(train_df['season'], prefix='season')
dummies_weather = pd.get_dummies(train_df['weather'], prefix='weather')
train_df_back = pd.concat([train_df, dummies_month,dummies_year, dummies_season,dummies_weather], axis = 1)
train_label = train_df_back['count']
train_df_back = train_df_back.drop(['datetime', 'season', 'weather', 'atemp', 'date', 'month', 'count'], axis=1)
test_df = pd.read_csv('./step3/bike_test.csv')
# 测试集的时间数据处理
test_df['date']=test_df.datetime.apply(lambda x:x.split()[0])
test_df['hour']=test_df.datetime.apply(lambda x:x.split()[1].split(':')[0]).astype('int')
test_df['year']=test_df.datetime.apply(lambda x:x.split()[0].split('-')[0]).astype('int')
test_df['month']=test_df.datetime.apply(lambda x:x.split()[0].split('-')[1]).astype('int')
test_df['weekday']=test_df.date.apply( lambda x : datetime.strptime(x,'%Y-%m-%d').isoweekday())
# 独热编码
test_df_back=test_df
dummies_month = pd.get_dummies(test_df['month'], prefix='month')
dummies_year = pd.get_dummies(test_df['year'], prefix='year')
dummies_season = pd.get_dummies(test_df['season'], prefix='season')
dummies_weather = pd.get_dummies(test_df['weather'], prefix='weather')
test_df_back = pd.concat([test_df, dummies_month,dummies_year, dummies_season,dummies_weather], axis = 1)
test_df_back = test_df_back.drop(['datetime', 'season', 'weather', 'atemp', 'date', 'month'], axis=1)
clf = Ridge(alpha=1.0)
# 训练
clf.fit(train_df_back, train_label)
# 预测
count = clf.predict(test_df_back)
# 保存结果
result = pd.DataFrame({'datetime':test_df['datetime'], 'count':count})
result.to_csv('./step3/result.csv', index=False)
#********* End *********#
头歌--共享单车之租赁需求预估相关推荐
- 共享单车之租赁需求预估
第1关:数据探索与可视化 任务描述 本关任务:编写python代码,完成一天中不同时间段的平均租赁数量的可视化功能. 相关知识 为了完成本关任务,你需要掌握: 读取数据 数据探索与可视化 读取数据 数 ...
- 共享单车之租赁需求预估第2关:特征工程
import pandas as pd import numpy as np from datetime import datetimedef transform_data(train_df):''' ...
- 头歌 共享单车大数据项目数据分析
第一关:数据探索与可视化 import pandas as pd import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as ...
- 共享单车小程序需求规格说明书
共享单车小程序需求规格说明书 目录 概述 1 1.1编写目的 1 1.2项目背景 1 1.3定义和缩写词 2 任务概述 2 2.1目标 2 2.2运行环境 2 2.3条件与限制 2 3.功能需求 2 ...
- java基于微信小程序的共享单车电动车租赁系统 uniapp 小程序
随着在我国国民水平的提高,低碳环保的概念也深入人心越来越多的人选择了绿色环保的出现方式,共享单车更是为绿色出行提供了一个有利的保障.通过本人的调查研究发现,很多大学的共享单车的管理还是用手工传统的方式 ...
- kaggle 共享单车项目数据分析和单车租赁数预测
项目背景 自行车共享系统是租用自行车的一种方式,在这里,通过遍布城市的信息亭网络,可以自动获得会员资格.租赁和自行车归还.使用这些系统,人们可以从一个地方租一辆自行车,并根据需要将其送回另一个地方.目 ...
- Python实战案例:我们对共享单车的需求有多大?
现如今,共享单车在生活中可谓处处可见,那么它的租赁需求是多少呢?今天我们就基于美国华盛顿共享单车的租赁数据,利用Python和可视化对租赁需求进行预测. 01 数据来源及背景 该数据集是美国华盛顿共享 ...
- mysql共享单车租赁系统_共享单车租赁需求预测
前言 现如今,共享单车在生活中可谓处处可见,那么它的租赁需求是多少呢?今天我们就基于美国华盛顿共享单车的租赁数据,对租赁需求进行预测. 目录 正文 1. 数据来源及背景 数据背景: 该数据集是美国华盛 ...
- kaggle共享单车数据分析及预测(随机森林)
文章目录 一.数据收集 1.1.项目说明 1.2.数据内容及变量说明 二.数据处理 2.1.导入数据 2.2.缺失值处理 2.3.Label数据(即count)异常值处理 2.4.其他数据异常值处理 ...
最新文章
- React使用Styled-Componets来添加样式
- 线性代数知识汇总(转载)
- Blazor University (5)组件 — 字面量、表达式和指令
- 2017蓝桥杯省赛---java---B---10(k倍区间)
- mcq 队列_MCQ | 软件生命周期模型
- 顺序查找-判断质数/记录出现次数
- android:视频录制编写代码一直报非法状态错误,很多时候定位在setVideoEncoder和setAudioEncoder...
- Springboot创建webService接口时的cxfconfi文件报错出现DispatcherServletPath不能找到
- 神经动力学模型的建立
- Html5中长线条怎么写,我的年终总结
- 【013】如何给EXCEL编写的宏设置打开密码_#VBA
- css安卓手机位置偏差,完美解决移动端使用rem单位时CSSSprites错位问题_html/css_WEB-ITnose...
- H 小P的数学问题(分块)
- 精美网页设计案例_用户体验设计的精美艺术
- java初中级面试题集锦
- ESP8266 Arduino开发之路(2)— 连接到无线WiFi路由器
- 报错Module not found: Error: Can't resolve './public/javascript/page/index/index.js' in 'E:\pr
- 计算机控制系统开发,浓密过程计算机控制系统设计与开发
- python习题:函数
- 基于SSM网上水果生鲜超市商城|电商购物系统