共享单车

预测每时段共享单车使用数量概率

Link: https://www.kaggle.com/c/bike-sharing-demand

题目描述

共享单车是当下十分流行的租借交通,使用共享单车,人们可以从一个地方租借一辆单车,并行驶到想去的地方,之后把车停在那里即可。

共享单车的使用量是一个很有吸引力的问题,共享单车的使用量可用于研究城市交通的移动性,也可帮助企业进行收支分析,例如对于一个区域,究竟投放多少辆,不同时间又需要多少人维护,这些问题对于企业发展都非常重要。而共享单车的使用量并非一成不变的,尤其针对不同的时段、日期,使用量存在较大的差异。

这道题,给出了某个地区在一段时间内的共享单车使用量,预测该时段内之后的使用量。

小提示

  • 先检查数据是否存在缺失值
  • 数据的列并是很多,但是如何提取出有效的feature是至关重要的。
  • 多画图,多分析,多筛选。

先修技能

  • 特征选择和特征组合
  • 相关系数和相关矩阵分析
  • 随机森林、逻辑回归、L1、L2正则化
  • seaborn

术语解释

  • 特征选择:特征选择( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ),或属性选择( Attribute Selection )。是指从已有的M个特征(Feature)中选择N个特征使得系统的特定指标最优化,是从原始特征中选择出一些最有效特征以降低数据集维度的过程,是提高学习算法性能的一个重要手段,也是模式识别中关键的数据预处理步骤。对于一个学习算法来说,好的学习样本是训练模型的关键。
  • L1、L2正则化:L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)。

输入格式

数据包括了train、test两张表,数据字段含义如下:

  • datetime 日期时间
  • season 1、2、3、4分别对应春夏秋冬
  • holiday 今天是否是节假日
  • workingday 今天是否是工作日
  • weather 1 晴天、多云;2 雾天;3 小雨、小雪;4 大雨、冰雹、暴雪
  • temp 摄氏温度
  • atemp 体感摄氏温度
  • humidity 湿度
  • windspeed 风速
  • casual 非登记用户用车
  • registered 登记用户用车
  • count 总用车量

train表是日期从每月1-15日的数据,test表是每月16-19日的数据,也是将要进行预测的时间段。

输出格式

请按test集顺序输出对应的结果,注意,如果不按顺序可能影响分数哦。具体如下,可详见sample_submission.csv。

datetime,count
2011-01-16 00:00:00,10
2011-01-16 01:00:00,10
2011-01-16 02:00:00,10
...
...

评价

使用Root Mean Squared Logarithmic Error (RMSLE)进行预测,其公式如下:

$$\sqrt{\frac{1}{k}\sum_{i=1}^{k}(\lg{(true_i + 1)} - \lg{(pred_i + 1)}) ^ 2}$$

  • k是总样本
  • true是真实值
  • pred是预测值
  • lg(x)是以2为底的对数函数

数据

测评配置环境

python

pip install -U numpy
pip install pandas
pip install -U scikit-learn

测评代码

from sklearn.metrics import mean_squared_error
import pandas as pd
res = pd.read_csv('input/res.csv')
currect = pd.read_csv('input/result.csv')
mean_squared_error(np.log2(1 + currect['count']), np.log2(1 + res['count'])) ** 0.5
# 越小越好,最小为0,一般不超过10.

results matching ""

    No results matching ""