基于用户画像的商品推荐挑战赛baseline0

基于用户画像的商品推荐挑战赛baseline

比赛地址

一、赛事背景

讯飞AI营销云基于深耕多年的人工智能和大数据技术,赋予营销智慧创新的大脑,以健全的产品矩阵和全方位的服务,帮助广告主用AI+大数据实现营销效能的全面提升,打造数字营销新生态。

在这里插入图片描述
评估指标:
在这里插入图片描述
在这里插入图片描述

最简单的baseline:

import pandas as pd
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
from sklearn.preprocessing import  OneHotEncoder
## 模型预测的
from sklearn import linear_model
from sklearn import preprocessing
from sklearn.svm import SVR
from xgboost.sklearn import XGBClassifier

import lightgbm as lgb
import xgboost as xgb

## 参数搜索和评价的
from sklearn.model_selection import GridSearchCV,cross_val_score,StratifiedKFold,train_test_split
from sklearn.metrics import accuracy_score,f1_score,roc_auc_score,recall_score,precision_score


train = pd.read_csv('dataset/train.txt',header = None)
test = pd.read_csv('dataset/apply_new.txt',header = None)
submit = pd.read_csv('submit_sample.csv')

col = ['pid','label','gender','age','appid','time','province','city','make','model']
col_test = ['pid','gender','age','appid','time','province','city','make','model']
train.columns = col
test.columns = col_test

df = pd.concat([train,test]) #合并train和test,并且用is_train进行标记
df

df['appid_nunique'] = df.loc[:,['appid']]['appid'].apply(len)
df['time_nunique'] = df.loc[:,['time']]['time'].apply(len)

df.fillna(method='pad', inplace=True) # 填充前一条数据的值,但是前一条也不一定有值
df.fillna(0, inplace=True)

train_data = df[df['label'] != 2]
test_data = df[df['label'] == 2]

onehotencoder = OneHotEncoder()
province_oht_train = pd.get_dummies(train_data[['province']])
province_oht_test = pd.get_dummies(test_data[['province']])

train_data = pd.merge(train_data,province_oht_train,left_index=True, right_index=True,how='inner')
test_data = pd.merge(test_data,province_oht_test, left_index=True, right_index=True,how='inner')

col = ['pid','appid','time','province','city','make','model']
df_train = pd.DataFrame()
for c in train_data.columns:
    if c not in col:
        df_train[c] = train_data[c]
col = ['pid','label','appid','time','province','city','make','model']
df_test = pd.DataFrame()
for c in test_data.columns:
    if c not in col:
        df_test[c] = test_data[c]
X_train = df_train[df_train['label'].notnull()].drop(['label'],axis=1)
Y_train = df_train[df_train['label'].notnull()]['label']
x_train,x_val,y_train,y_val = train_test_split(X_train,Y_train,test_size=0.3)
def build_model_xgb(x_train,y_train):
    model = xgb.XGBClassifier(n_estimators=150, learning_rate=0.1, gamma=0, subsample=0.8,\
        colsample_bytree=0.9, max_depth=7) #, objective ='reg:squarederror'
    model.fit(x_train, y_train)
    return model
    print('Train xgb...')
model_xgb = build_model_xgb(x_train,y_train)
val_xgb = model_xgb.predict(x_val)
auc = roc_auc_score(y_val,val_xgb, average='macro')
print('auc with xgb:',auc)
p = precision_score(y_val,val_xgb, average='macro')
print('precision with xgb:',p)
R = recall_score(y_val,val_xgb, average='macro')
print('recall with xgb:',R)

#auc with xgb: 0.60756207427427
#precision with xgb: 0.6084775623548617
#recall with xgb: 0.60756207427427

sub = pd.DataFrame()
sub['user_id'] = test.pid
sub['category_id'] = test_xgb
sub.to_csv('submit0624.csv',index = False)

好多天没做了,争取上分!!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
近几年中国在淘宝、京东、天猫等巨头电商公司带动下迅猛发展,电商在中国显示出了强大的生命力,每家电商公司的商品更是以指数级的数量增长,可是在商品增长的同时,也无形中增加了用户寻找商品的困难程度。这个问题在小型智能移动终端尤其明显,用户在小型智能移动终端浏览大量的商品不仅会占用客户的时间还会消耗大量的流量,这种欠佳的浏览体验是导致用户转移购物平台的一个主要因素。本文设计并实现基于“用户画像”的商品推送系统正是在上述问题的基础之上立项的,将用户画像与主动推送相结合,避免了用户在海量商品中苦苦寻求自己感兴趣的商品,不仅解决了商品过载的问题而且实现了对用户的精准营销。主要研究内容如下:首先介绍了基于“用户画像”的商品推送系统的立题意义以及相关的理论基础,对国内外推送系统的发展状况进行了深入调研,详细的阐述了所需要使用的技术。其次对基于“用户画像”的商品推送系统从需求、设计和实现的三个方面进行详细的说明,本系统主要构成为以下两个部分:(1)用户画像系统,首先以用户的个人历史行为为基础,通过评分矩阵模型构建用户兴趣模型,然后基于标签规则将用户兴趣模型转换为用户标签模型,用户画像系统则是以用户标签模型为基础生成的,并通过Echarts图表将用户画像进行展示。与传统推送系统相比,本系统将用户置于最重要的部分,对每个用户都实现精准营销。(2)商品个性化推送平台,调用本接口可以返回商品列表,返回的商品列表是在用户兴趣模型的基础上混合多种规则并加以过滤得到的最符合用户偏好的推送商品集合,以接口的形式给不同类型的小型智能移动终端提供数据。本接口应用Thrift框架编写,通过该框架进行系统之间的交互具有高性能、低延迟、支持同步和异步通信等优点。最后,为推送效果提供测试方案,商品推送系统的参数调优通过NDCG算法,NDCG表示归一化折损累积增益,该算法是当下比较流行的推荐系统评测指标之一,通过用户对推送商品的操作行为量化出用户对商品列表的满意程度,根据用户满意度进而对系统参数进行调整

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值