当前位置:首页 > Python程序设计与实践 大作业实验报告 陆阳 孙勇 裘升明
for i in range(num):
print \划分训练集:\ j=i+10 if j!=31:
df_set=df_train_user[(df_train_user.time>=i) (df_train_user.time df_set.to_csv(\ df_test=df_train_user[(df_train_user.time==j) (df_train_user.behavior_type==4)][[\ df_test=df_test.drop_duplicates() df_test=pd.merge(left=df_test,right=df_items,how=\ates() df_test.to_csv(\ else: df_set=df_train_user[(df_train_user.time>=i)&(df_train_user.time end=time.time() print '训练集划分耗时%f秒' %(end-start) & & ⑶ 平衡正负样本 正负样本比例需从1:100降为1:10~1:20之间。 贴关键代码 import pandas as pd import random import time from get_features import * start=time.time() df_feature2=pd.DataFrame() j=10 for k in range(20): i=j+k df_feature=pd.read_csv(\ df_feature_p= df_feature[df_feature.tag==1] df_feature_n = df_feature[df_feature.tag==0] lp = len(df_feature_p) ln = len(df_feature_n) if float(ln)/lp > 14: a = range(0,ln) slice = random.sample(a,lp*14) # lp*15 df_feature_n = df_feature_n.iloc[slice] df_feature pd.concat([df_feature_p,df_feature_n],ignore_index=True) df_feature2=pd.concat([df_feature,df_feature2]) df_feature2.to_csv(\end=time.time() print '对训练集抽样耗时%f秒' %(end-start) = 3、特征提取 特征提取在数据挖掘中很重要,那么为什么它们那么重要呢?之前提到过,要想输出测试集的类别标签,需要模型在训练集经过学习,那么模型在训练集上学习的是什么? 我们知道,在给模型输入数据的时候,实际上模型用到的都是特征(及其对应的类别标签),而特征就是用于描述为什么该样本的类别标签就是如此,在本赛题中即用于描述某用户为什么购买/不购买某商品。比如,用户购买某商品的原因,是因为以前经常买,信得过,那么这里可以用“用户购买该商品的天数/用户访问该商品的天数”来刻画用户对该品牌的忠诚度。当然,并不是单一的特征就能描述所有情况,通常来说,需要针对所有可能的情形进行考虑,从而深刻而全面地刻画用户购买/不购买商品的原因。这样,模型才能真正学到其中的规律,从而在测试集表现优异。而这一过程,就称之为特征工程。显然,要做好特征工程,需要我们自身对“用户会否购买商品”这一业务具有较深刻的理解,即领域知识,并将其用模型可理解的方式表现出来,如何抽取特征? 1、统计用户在31天中的购买量、点击量、收藏量、加购物车次数、有操作记录的天数、发生购买的天数、点击转购买率等等,并以点击转购买率做升序/降序 排序进行观察,可以发现点击量越高的,点击转购买率也往往越低,尤其点击量极高的用户,往往购买量为0。由此可以考虑将用户购买量、点击转购买率等一系列特征用于描述用户是否会在未来一天发生购买。 2、统计用户从初次访问商品到最终购买商品的时间,可以发现绝大多数购买都是当天接触当天完成,越往后用户购买的可能性越低。由此可以推测用户对商品的购买意愿是随着距离上次访问的时间拉长而衰减的,进而可以使用衰减函数来模拟该购买意愿。 一方面,利用领域知识对数据进行分析、实验验证。另一方面,从分析的结果、实验的反馈来更新领域知识。这是一个不断迭代的过程,需要成体系、且不断地完善。 以下仅供参考: (1)、基本统计类特征 A. 销量(分割日期前1、2、3、4、5、10天) B.成交订单数(以同一天同一个用户为一个订单) C.购买人数 D.以上3类特征分别再针对点击、收藏、加购物车等进行统计 (2)、转化率类特征 A.销量/点击数 B.成交订单数/点击订单数 C.购买人数/点击人数 D.上述3个特征分别在针对收藏、购物车等操作进行统计 (3)、比值类特征 A.返客率(某周期内多次购买的用户数/总购买用户数) B.老客户率(3天【或其他周期7、15、30】前曾购买过且在前3天内再次购买的用户数/3天内总购买用户数) C.人均点击数、人均购买量、人均收藏量、人均加购物车量等
共分享92篇相关文档