kaggle-taxi-duration 预测
Preprocessing
-
预处理还是老一套,查看有没有缺失值,查看features的种类,连续的还是离散的,分别应该怎么处理。查看目标变量分布,如果label不是偏正态分布,考虑做对数转换,如果是分类问题,考虑样本是不是均衡,如果不均衡应该怎么办?
-
因为特征中包含时间,所以需要查看训练集和测试集的时间分布,看看是不是时间序列问题,通过分析发现,本任务并不是时间序列问题。如果是时间序列问题,那么在划分训练集验证集的时候就要按时间划分了。
Feature extraction
该样本的特征包括上车和下车的经纬度,可以看作是一个二维坐标,对这个坐标做pca变换,并没有降维,相当于对坐标进行了旋转。
Feature construction
-
需要根据现有的特征挖掘新的特征,这个任务中的特征有 上车时间,上车的经纬度和下车的经纬度。很容易想到由于任务的目标是预测taxi载客时间,所以这个时间应当跟距离强相关。因此,可以利用经纬度计算出二点的距离,距离分为测地线距离和曼哈顿距离两种。
-
时间特征,在不同时间点上车的乘客在车上花的时间应该也不一样,将给定的datetime 分为年月日,具体到小时和秒。
-
通过观察训练集和测试集的坐标点的分布,我们可以发现训练集和测试集坐标点的分布比较一致,考虑到相邻点可能有相同的性质,这些点应当看作一类,所以考虑对坐标点聚类,给每个点都分配一个类标号。
Feature selection
结合xgboost的feature importance和filter遍历方法做特征选择。
Modeling
画出模型误差随着参数变化的曲线图,从而选择较好的参数。
本次任务使用的评价指标位RMSLE,所以应该自定义评估指标。