有这样一个场景,线上有一些生效的策略判断哪些是作弊订单,你通过数据挖掘挖掘了一些特征也判断了一些作弊订单,现在需要下你挖掘出来的特征的效果,那么主要关注两方面:
(1)你的特征对于作弊订单的召回率和大盘影响面
(2)你的特征对于线上生效策略的补充作用(假如你的特征都是线上策略覆盖的,那就没啥意义)
对于第2点,这个时候就需要用到【python求列表的交集、并集、差集】
数据介绍
data_rule_eff是根据我们线上策略判断的作弊订单
data_device、data_face、data_dest是根据我们挖掘到的新特征判断的作弊订单
求列表的交集、并集、差集
求某一个特征与线上策略的交集、并集、差集、对称差集
#交集,& 两个列表里共有的,重合部分
list(set(data_device['order_id'].tolist())&set(data_rule_eff['order_id'].tolist()))
#并集,|合并两个列表里子项,去重
list(set(data_device['order_id'].tolist())|set(data_rule_eff['order_id'].tolist()))
#差集,- 左边列表里面减去两者交集
list(set(data_device['order_id'].tolist())-set(data_rule_eff['order_id'].tolist()))
#对称差集,^ 两个列表取并集后减去差集
list(set(data_device['order_id'].tolist())^set(data_rule_eff['order_id'].tolist()))
求多个特征与线上策略的交集、并集、差集、对称差集
# 先merge后再执行类似操作
data_merge=pd.concat([data_dest,data_face,data_device])
data_merge=list(data_merge['order_id'].unique())
len(data_merge)