
共享单车是指企业在校园、地铁站点、公交站点、居民区、商业区、公共服务区等提供自行车单车共享服务,是一种分时租赁模式,是一种新型绿色环保共享经济。
本案例使用K近邻回归算法对共享单车使用量进行回归预测。所采用的数据集是共享单车使用量数据集,该数据集共有16个字段,731条数据,记录了不同日期、节假日、天气条件下的共享单车使用情况。
本案例通过数据可视化、数据字段统计、数据预处理以及构建K近邻回归模型实现了较为良好回归预测性能。

首先,读取数据集,该数据集是共享单车使用量数据集,其中包含了 731 条共享单车使用信息,每一条共享单车使用信息包含单车使用的日期(具体日期、季节、年份、月份、节假日是否为工作日等)和当日的天气信息(温度、湿度、风速等)。此外,记录当日单车使用总量的字段cnt=未注册用户使用量casual+注册用户使用量registered。

对各个数据字段进行缺失值检测,并选择过滤缺失值,结果如下:


从结果来看,数据非常完整,各字段均无缺失值,不需要对其进行处理。
接下来对各个数据字段进行重复值检测,结果如下:
检测到的重复行数为:0
无重复行,返回原数据表

数据无重复值,不需要进行去重处理。
对目标字段cnt进行异常值检测,查看单日共享单车使用量有无不合理的情况。结果如下:
检测到的异常值行数为:0
得到数据输出预览:

cnt字段无异常值,认为数据表中的共享单车使用量信息没有超出合理范围。
对各个数据字段统计基本信息,数值型字段会统计样本数量、均值、标准差、最大最小值和上下四分位数等,字符型字段会统计样本数量、不同取值个数、众数以及众数的频数等。
可以看出,所有字段中,只有dteday为字符型字段,其余均为数值型字段。可以看到,日期相关的字段,如season、yr、mnth、holiday、weekday、workingday和天气字段weathersit的最大最小值、中位数、上下四分位数均为整数,结合数据集详情页的统计信息可以判断,这些字段都是离散型数值。我们可以在后期进行编码处理,方便进行建模。

接下来绘制cnt字段的折线图,观察随着时间的变化,共享单车的使用量的变化趋势。
从图中可以看出, 在2011年夏天和2012年夏天,共享单车使用达到年度高峰,符合人们夏天出行骑单车较冬天多的常识。

绘制温度箱线图,温度的单位为,由于数据集本身经过计算,所以大体分布在0~1之间,转化为摄氏度即大致温度变化范围为-17.8度~26.7度。
从箱线图可以看出,温度分布的集中在33华氏度~65华氏度(0摄氏度~18.3摄氏度),是维度较高地区的正常温度范围。

绘制季节饼状图。可以看出,四个季节的样本数量大体相当,没有出现某一季节样本量过多或者过少的情况

对在各字段基本统计信息提到的几个离散型数值字段(season、yr、mnth、holiday、weekday、workingday和weathersit)进行OneHot编码,消除这些字段中数据大小差异所带来的影响。
OneHot编码后的数值字段添加在原数据表之后。

对数据集进行划分,设置划分比例为训练集 : 测试集 = 4 : 1。

构建K近邻回归模型,将cnt作为模型的标签列,其余各字段中,除dteday、causal和registered字段外,其他字段作为模型的特征列。
模型参数选择时,设置计算的邻居个数为8,权重计算方式为distance,以及设置距离计算方式为manhattan距离(街区距离)。

使用模型预测组件对K近邻回归模型进行测试集上的预测,预测后的标签为cnt_predict。

对K近邻回归模型进行评估。主要的指标选择均方误差(MSE)、平均绝对误差(MAE)、决定系数(R2)和中位绝对误差。
可以看到,我们构建的K近邻回归模型的回归预测效果良好,其中最重要的指标决定系数(R2)= 0.833,可以认为我们的K近邻回归模型能较好的对共享单车使用量情况进行预测。
