视频链接:https://list.youku.com/albumlist/show/id_51986962.html
第五讲
26:23
对没有领券的用户数据信息要做删除处理。
训练集中存在没有领劵的数据项,但是在测试集中都是领取了优惠券的。在提取标签区间的数据的时候应该忽略掉那些没领卷的数据。
26:51
一月份到二月初春节期间领劵数量异常高,但是核销率却是正常的,所以后期应该避免使用该段时间的数据。
30:00
核销率代表用券消费次数占总消费次数的比率。
第六讲
12:47
缺失值处理方法
缺失值如果不进行处理的话有可能给模型带来噪声数据从而导致模型性能不佳。
缺失值处理的方法一般有如下几种:
- 直接删除相关样本,如果某个属性的缺失值过多,可以直接删除整个属性;
- 用其他值如0、-1、 均值、中位数、前后值、插值等进行替代;
- 用其他变量做预测模型来算出缺失变量;
- 把变量映射到高维空间,比如性别,有男、女、缺失三种情况,则映射成3个变量: 是否男、是否女、是否缺失。
14:00
缺失值查看方法:
1 | # 判断字段是否存在缺失值 |
pandas处理缺失值
在pandas中,一般可以使用如下三种方法进行缺失值处理:
pandas.DataFrame.dropna()
:直接删除相关数据。pandas.DataFrame.fllna()
:对相应的缺失值进行填充。pandas.Series.interpolate()
:对相应的缺失值进行插值填充。
第七讲
9:13
特征的好坏取决于特征中所包含的熵值,熵值越高,特征中包含的信息越多,又或者是方差越大,特征中所包含的信息越多。
- 单一变量的基础转换: x,x^2,sqrt x ,log x,缩放
- 如果变量的分布是长尾的,应用Box-Cox转换(用log转换虽然快但不一定是一个好的选择)
- 你也可以检查残差(Residuals)或是log odds (针对线性模型),分析是否是强非线性
- 对于基数比较大的数据,对于分类变量,创造一个表示每种类别发生频率的特征是很有用的。当然,也可以用占总量的比率或是百分比来表示这些类别
- 对变量的每一个可能取值,估计目标变量的平均数,用结果当做创造的特征
- 创造一个有目标变量比率的特征
- 选出最重要的两个变量,并计算他们相互之间、以及与其它变量之间的二阶交叉作用并放入模型中,比较由此产生的模型结果与最初的线性模型的结果
24:20
在pandas填充空值的时候最好给downcast
参数设置为infer
,不然可能会改变某些变量的类型。
33:38
离散特征简单介绍
当原始属性中存在标称型变量时我们无法直接得到该变量的均值,方差等信息,如用户的领券日期。
此时我们往往采用离散化的方法提取特征,离散化可分为直接编码,编码统计两种方案。
- 直接编码:One-Hot编码,又称为一位有效编码,主要是采用位状态寄存器来对个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。
- 编码统计:分别统计某个编码下的用户行为,比如得到用户在每种折扣率下的消费次数,每种距离下的领券次数等。
46:57
热启动特征
- 用户在时间段是否最后一次领券
- 用户在时间段是否第一次领券
rank排序特征
- 日期、距离、折扣率、满、减、次数、同一天次数、总次数rank
48:15
将历史区间的用户特征,商家特征、优惠券特征、用户-商家特征、用户-优惠券特征合并,新增三小不同特征块的交互特征:
history_field_User_id_Merchant_id_receive_not_consime_rate_in_User_id
:该用户对该商家的不核销次数占该用户不核销次数时比重;history_field_User_id_Merchant_id_receive_and_consime_rate_in_User_id
:该用户对该商家的核销次数占该用户核销次数的比重;history_field_User_id_Merchant_id_receive_and_consime_rate_in_Merchant_id
:该用户对该商家的核销次数占该商家被核销次数的比重;