昨天直接提交的随机数据已经实现了整个提交测试流程,下面开始认真的思考问题了:
首先观察训练数据:
data = pd.read_csv('ccf_offline_stage1_train.csv')
print(data.head())
print(data.shape[0])
print(data.shape[1])
最终发现数据有:1754884行
其中有很多Coupon_id为null的数据。我们做的是优惠券使用预测,可是这些数据都没有用优惠劵,所以,首先将这些数据挑选出来。
data2 = data[data['Coupon_id'] == "null"]
print(data2.head())
print(data2.shape[0])
print(data2.shape[1])
最终发现null数据有:701602行,保存为.csv备用
data1.to_csv('ccf_offline_stage1_train_NoNull.csv',index=False,header=True)
不为null数据有:1053282行,保存为.csv备用
data2.to_csv('ccf_offline_stage1_train_Null.csv',index=False,header=True)
先看下null数据集合:
data = pd.read_csv('ccf_offline_stage1_train_Null.csv')
print(data.head())
print(data.shape[0])
print(data.shape[1])
结果出现错误:意思就是data没有null的
FutureWarning: elementwise comparison failed这个是什么鬼?可能原因:
1)没有领取优惠券的全部消费了?
2)阿里提供数据的时候提供的都是消费数据,因为没有领取优惠劵,也没有实际消费的,在阿里不可能留下数据!
所以,我们在预测的时候,如果没有领取优惠券,可以直接预测为消费!(查看了test数据,不可能出现这种情况!)
再看下nonull数据集合
data = pd.read_csv('ccf_offline_stage1_train_NoNull.csv')
print(data.head())
print(data.shape[0])
print(data.shape[1])
取出负样本:没有消费的数据:
data2 = data[data['Date'] == "null"]
print(data2.head())
print(data2.shape[0])
print(data2.shape[1])
data2.to_csv('ccf_offline_stage1_train_N.csv',index=False,header=True)
发现负样本:977900个
同样取出正样本:
data1 = data[data['Date'] != "null"]
print(data1.head())
print(data1.shape[0])
print(data1.shape[1])
data1.to_csv('ccf_offline_stage1_train_P.csv',index=False,header=True)
正样本:75382个
那么平均的使用率为75382/1053282=0.071569