天猫复购预测

项目背景

 商家会在一些特定的日期开展大型的促销活动,比如618,双11等。 但是促销吸引来的很多都是一次性的消费者,对销售业绩的增长没有长远的帮助。 为此,商家需要识别出可能复购的用户,再精准地投放广告,将其转换为忠诚客户。 训练数据集包含了双11期间和双11前6个月用户的消费记录。 预测数据集包含了双11期间的新消费者的信息。 需要预测双11中哪些新消费者会进行复购。

数据集:https://tianchi.aliyun.com/competition/entrance/231576/information 

数据处理 

# 导入包
import pandas as pd
import numpy as np
# 读取数据
user_info = pd.read_csv('user_info_format1.csv')

# 指定数据类型以压缩内存
d_types = {'user_id': 'int32', 'item_id': 'int32', 'cat_id': 'int16', 'seller_id': 'int16', 'brand_id': 'float32', 'time_stamp': 'int16', 'action_type': 'int8'}

user_log = pd.read_csv('user_log_format1.csv',dtype = d_types)
train = pd.read_csv('train_format1.csv')
test = pd.read_csv('test_format1.csv')

 

 

# 查看数据集结构
display(user_info.info())
print('------'*20)
display(user_log.info())
print('------'*20)
display(train.info())
print('------'*20)
display(test.info())

 

# 空值处理
display(user_info.shape)
display(user_info.isnull().sum())
print('------'*20)
display(user_log.shape)
display(user_log.isnull().sum())
print('------'*20)
display(train.shape)
display(train.isnull().sum())
print('------'*20)
display(test.shape)
display(test.isnull().sum())

 


# 用户画像数据中性别为2,年龄为0的表示未知数据,同样进行删除
index_sex=[]
sex = user_info[user_info['性别'] == 2]
l = len(sex.index)
for i in range(l):
    index_sex.append(sex.index[i])
user_info.drop(labels=index_sex,axis=0,inplace=True)

index_age=[]
age=user_info[user_info['年龄'] == 0]
l = len(age.index)
for i in range(l):
    index_age.append(age.index[i])
user_info.drop(labels=index_age,axis=0,inplace=True)

display(user_info.shape)
display(user_info[user_info['性别']==2].value_counts())
display(user_info[user_info['年龄']==0].value_counts())

 

# 用户日志数据集空值处理,总数据条数为5500万,而空值只有9万条数据,直接删除
user_log['品牌ID'].fillna(0,inplace = True)
index_log = []
log = user_log[user_log['品牌ID'] == 0].index
l = len(log)
for i in range(l):
    index_log.append(log[i])
user_log.drop(labels=index_log,axis=0,inplace=True)
display(user_log.shape)
display(user_log.isnull().sum())

 

# 重复值处理
# 查看数据是否重复
display(user_info.duplicated())
# 筛选重复数据
display(user_info[user_info.duplicated()])
# 查看重复数据的数量
display(user_info.duplicated().su
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值