赛题简介
淘宝网是中国深受欢迎的网购零售平台,其中服饰鞋包行业占据市场的绝大部分份额,围绕着淘宝诞生了一大批优秀的服饰鞋包导购类的产品。穿衣搭配是服饰鞋包导购中非常重要的课题,它所延伸出的技术、算法能广泛应用到大数据营销几乎所有场景中,如搜索、推荐和营销服务。淘宝穿衣搭配算法竞赛将为参赛者提供搭配专家和达人生成的搭配组合数据,百万级别的淘宝商品的文本和图像数据,同时还将提供用户的脱敏行为数据。期待参赛者能从以上行为、文本和图像数据中挖掘穿衣搭配模型,为用户提供个性化、优质的、专业的穿衣搭配方案。
数据格式
搭配套餐数据:dim_fashion_match_sets
coll_id || bigint || 搭配套餐ID || 1000
item_list || string || 搭配套餐中的商品ID列表(分号分隔,每个分号下可能会有不只一个商品,后面为可替换商品,逗号分隔)|| 1002,1003,1004;439201;1569773,234303;19836
dim_fashion_match_sets 样例:
1 160870;3118604
2 1842610;2741506
3 893028;993019,1375599,1913565,3036503;2849440;2546147;2329974,2661094,347849;884801,127779,3122713;2338561
4 2612866;1272124;2181942
5 3128145;2683359;855149
商品信息表:dim_items
item_id || bigint || 商品ID || 439201
cat_id || bigint || 商品所属类目ID || 16
terms || string || 商品标题分词后的结果,顺序被打乱 || 5263,2541,2876263
img_data || string || 商品图片(注:初赛图片直接以文件形式提供,图片文件命名为item_id.jpg,表中无该字段)
dim_items样例:
29 155 123950,53517,106068,59598,7503,171811,25618,147905,203432,123580,178091,154365,127004,31897,82406
49 228 73035,33202,116593,48909,92233,181255,127004,38910,182506,181709,207662,154365,103661,24893
59 284 123950,38910,22837,5026,15459,47776,158346,101881,131272,176333,196079,23211,148988,144893,167633
用户历史行为表:user_bought_history
user_id || bigint || 用户ID || 62378843278
item_id || bigint || 商品ID || 439201
create_at || string || 行为日期(购买)|| 20140911
user_bought_history样本:
1915871 8 20150417
4371603 8 20150418
8034236 8 20150516
6135829 8 20150405
11650079 8 20150404
5324797 23 20150509
7969649 23 20150413
待预测的商品列表:test_items
item_id || bigint || 商品ID || 90832747
test_items样例:
1417
2227
3967
7237
8467
10477
10777
12547
Data Loading
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 03 13:53:48 2015
@author: Zhang_Jun
"""
import pandas as pd
# load data
dim_fashion_matchsets = pd.read_table('.\data\dim_fashion_matchsets.txt',\
sep='\s+',names = ['coll_id','item_list'])
dim_items = pd.read_table('.\data\dim_items.txt',\
sep = '\s+' , names = ['item_id','cat_id','terms','img_data'])
user_bought_history = pd.read_table('.\data\user_bought_history.txt',\
sep = '\s+' , names = ['user_id','item_id','create_at'])
test_items = pd.read_table('.\data\items.txt', names = ['test_items_id'])
Tool Preparation
# -*- coding: utf-8 -*-
"""
Created on Sat Oct 03 15:49:46 2015
@author: Zhang_Jun
"""
from collections import Counter
import itertools
#--------------------------