遥望数据竞赛

平安驾驶行为预测驾驶风险比赛

2018-06-01  本文已影响386人  爱秋刀鱼的猫

最近平安车险的一个数据挖掘比赛,训练集2000w,属于数据不均衡的回归问题,正负例之比大约1:7。

比赛链接
http://www.datafountain.cn/?u=7612745&&#/competitions/284/intro

本赛题提供部分客户1分钟级驾驶行为数据及对应客户的赔付率作为训练集,包括经纬度定位及驾驶状态等(已脱敏),参赛队伍需要对其进行数据挖掘和必要的机器学习训练。另外,我们会提供同期其他部分客户的驾驶行为数据来做评测,检测您的算法是否能准确的识别出当时客户的驾驶风险。

整理一下这个比赛的思路:


特征工程

特征工程是机器学习/深度学习里面非常重要的一个环境,觉得的模型效果的上限。特征工程的好坏,对比赛的影响非常大。在这里用pandas来读取csv文件,来做基本的特征处理。

从左到右,分别是用户id,轨迹id,时间,经度,维度,方向,高度,速度,通话状态。Y表示当前用户的赔付率。

每一个用户,对应多个轨迹id,每一个轨迹id,对应多行数据。但是每一个用户,只对应一个赔付率。也就是说,特征工程的单位是基于用户,为每一个用户构建一个特征向量。

最后,返回生成的特征

        feature = [item, num_of_trips, num_of_records,num_of_state_0,num_of_state_1,num_of_state_2,num_of_state_3,num_of_state_4
            ,float(speed_state[0]),float(speed_state[1]),float(speed_state[2]),float(speed_state[3]),float(speed_state[4]),float(speed_state[5]),float(height_state[0])
            ,float(height_state[1]),float(height_state[2]),float(height_state[3]),float(height_state[4]),float(height_state[5]),float(direction_state[0]),float(direction_state[1])
            ,float(direction_state[2]),float(direction_state[3]),float(direction_state[4]),float(direction_state[5]),float(hour_state[0]),float(hour_state[1])
            ,float(hour_state[2]),float(hour_state[3]),float(hour_state[4]),float(hour_state[5])
            ,float(hour_state[6]),float(hour_state[7]),float(hour_state[8]),float(hour_state[9]),float(hour_state[10]),float(hour_state[11])
            ,float(hour_state[12]),float(hour_state[13]),float(hour_state[14]),float(hour_state[15]),float(hour_state[16]),float(hour_state[17])
            ,float(hour_state[18]),float(hour_state[19]),float(hour_state[20]),float(hour_state[21]),float(hour_state[22]),float(hour_state[23])
            ,float(hour_state[24]), float(hour_state[25]), float(hour_state[26]), float(hour_state[27]),float(hour_state[28]), float(hour_state[29])
            ,float(hour_state[30]), float(hour_state[31]), float(hour_state[32]), float(hour_state[33]),float(hour_state[34]), float(hour_state[35])
            ,float(hour_state[36]), float(hour_state[37]), float(hour_state[38]), float(hour_state[39]),float(hour_state[40]), float(hour_state[41])
            ,float(hour_state[42]), float(hour_state[43]), float(hour_state[44]), float(hour_state[45]),float(hour_state[46]), float(hour_state[47])
            ,hdis1,target]
数据补全,异常处理 和 归一化
  1. 对于缺失数据,可以使用均值,中位数,或者众数填充。

  2. 归一化
    2.1 Z-Score标准化
    2.2 Min-Max归一化

min_max_scaler = preprocessing.MinMaxScaler() 
minmax_train = min_max_scaler.fit_transform(train_x) 
minmax_test = min_max_scaler.transform(test_x) 
train_x, test_x = pd.DataFrame(minmax_train), pd.DataFrame(minmax_test)
  1. 不平衡数据的处理
    一般是上采样或下采样。我们这次比赛是为0的数据和非0的数据是7:1的关系。我们尝试了上采样和下采样,但是效果没有明显变化。感觉这个也和测试集数据的分布有关系。可以尝试,当不一定有效果。
模型

我们尝试的模型有随机森林,lgb,线性回归,svm等。综合下来,最好的效果是lgb。对于模型的参数是一个很麻烦的事情,尤其是新添加了几个特征之后,模型的参数就全变了。没有办法判断是特征没有效果还是参数没有效果。我们的想法是把特征都推上去,然后调参。

比赛很遗憾,没有杀进决赛,最后的名次是初赛15名,复赛16名。领了3000元的奖金,作为伙食费散场了。

上一篇 下一篇

猜你喜欢

热点阅读