1. 程式人生 > >【天池競賽系列】淘寶穿衣搭配演算法第二賽季12名思路

【天池競賽系列】淘寶穿衣搭配演算法第二賽季12名思路

給的資料集有4部分

達人搭配組合

商品資訊

購買記錄

線上測試集

在第一賽季中的思路和阿里星小江分享的差不多

http://datartist.cn/?p=5

第二賽季自己實力不夠,思路陷入迷信模型中,導致被幹出了前10

那麼我就來講講12名的思路吧

首先根據達人搭配提取出類別搭配對,一共2600+

然後把歷史記錄按同一個人同一個月購買的資料傳入MR,得到搭配對,然後統計次數,去掉類別不搭配的商品對,這個結果線上2.72

然後是模型的一部分

剛開始模型選取的預測樣本是預測集搭配類相似度top400

然後把達人搭配弄成兩兩搭配,有210W+

這些全部作為模型的正樣本

負樣本也全部使用達人搭配裡面的商品,取類別搭配的商品對,隨機取樣和正樣本1:5

這樣得到的結果,把歷史記錄放前面,模型結果放後面大概是6.09

後來意識到預測樣本召回太小了,於是通過關係網路又構建了一大波預測樣本。

商品對之間的關係可以分為三種,達人搭配,相似,同時購買。


於是通過這三種關係互相傳遞得到10幾份樣本,再加進去用模型預測,最後結果在6.32

後面通過簡單3:1的比例穿插融合歷史記錄和模型結果得到6.45

模型特徵有51個:兩個商品的銷量,兩個商品在每個月的向量在商品本身的佔比26個,每個月銷量佔比向量的相似度,商品文字的TFIDF餘弦相似度,還有其他各種加權相似度15個,類別權重cat_1,cat_2,weight,詞權重權重cat_1,cat_2,term_1,term_2,weight.這兩個提分還是挺大的。類別權重就是類別搭配對在達人搭配中的次數除以cat_1的次數,詞權重思路也是差不多,但是詞權重的程式碼不太好寫。我寫完之後過幾天自己都看不懂了。。。

最後天我添加了一個特徵,搭配商品在達人搭配中出現的次數,導致線上成績5.5。。。。。我覺得有可能是我程式碼寫錯了,線下測試明明是提升很多的

這比賽跪掉的原因總結如下:迷信模型,沒有充分考慮到傳遞搭配的權重問題,如果把傳遞的一些特徵新增到模型中或許也有提升。

也沒有充分融合各部分的結果,把不同樣本放到同一個模型中預測不太靠譜,要麼加上代表這類樣本的特徵,要麼直接用權重來融合每一部分的結果

這樣才能體現出商品對的權重資訊,因為商品對可能出現在不同樣本集中,這代表了不同的傳遞的資訊量的融合。

下面這段模型融合的程式碼中,我是直接取的商品對的得分最大值,應該加權的.聽說前面那些7,8分的都沒用模型,直接按權重相加,頓時就給大神們跪了。

create table result1208 as
select item_1 as item_id,item_2 as sim_item,prediction_score as sim,rank
from(
select item_1,item_2,prediction_score,row_number() over(partition by item_1 order by prediction_score desc) as rank
from(
select item_1,item_2,max(prediction_score) as prediction_score from(
select * from result_match_sim
union all select * from result_cb
union all select * from result_cd
union all select * from result_ce
union all select * from result_cf
union all select * from result_cg
union all select * from result_ch
union all select * from result_ci
union all select * from result_cj
union all select * from result_ck
union all select * from result_cm
union all select * from result_cn
union all select * from result_co
union all select * from result_cp
)a group by item_1,item_2,prediction_score
)a)a where rank<=200;

至於影象方面,得到的特徵太長了,算的時候比較浪費資源,而且一算就是一天,就沒有用。

後面朋友告訴我可以用來算搭配類的相似度,把得到的結果前面幾個放到提交結果的前面會有很大提升。

最後依依不捨的去平臺數了下程式碼,有4800行SQL,MR大概有個千行吧

比賽結束後,最大的感觸就是,還是自己太菜

相關推薦

天池競賽系列穿衣搭配演算法第二賽季12思路

給的資料集有4部分 達人搭配組合 商品資訊 購買記錄 線上測試集 在第一賽季中的思路和阿里星小江分享的差不多 http://datartist.cn/?p=5 第二賽季自己實力不夠,思路陷入迷信模型中,導致被幹出了前10 那麼我就來講講12名的思路吧 首先根據達人搭配

天池競賽系列阿里移動推薦演算法思路解析

賽題地址:http://tianchi.aliyun.com/competition/information.htm?raceId=1 登入即可下載資料 從4月到7月,學習了很多也收穫了很多 題目就不多說了,一句話表達就是根據過去一個月的行為預測14年12月19

天池競賽系列資金流入流出預測思路

賽題地址:http://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.VZW16k&raceId=3 登入即可下載資料 題目一句話:根據13年7月到14年8月的申購贖回資

穿衣搭配演算法_賽制描述

關於使用者歷史購買資料:舉個簡單例子可能會存在使用者買了上裝A後又買了與之搭配的下裝B,配飾C等等。 關於terms:淘寶的商品標題大部分為有規律性的,其中可能會包

穿衣搭配演算法_方案三

ReplaceItem1.java將原先的matchsets中的產品替換為它的分詞結果,分詞結果以空格隔開,產品與產品間用逗號隔開,輸出結果ToTerms1.txt。為了之後比較每個產品與預測產品的相似度,排除方案二中出現多可替代產品,而造成該搭配的相似度虛高的

原創最新2018如何獲取別人店鋪寶貝的上下架時間?

別人 com 查詢 如何獲取 系統 src 加載 周期 bst 無需任何其他第三方工具! 1.打開搜狗瀏覽器或者谷歌瀏覽器,輸入你要查看的寶貝; 例如: item.taobao.com/item.htm?id=573646654522 將後面的id改為你要查看的寶貝id

Android 進階頭條:向上滾動廣告條ViewFlipper

所謂前人栽樹,後人乘涼,在此感謝博主的貢獻。 參考博文: 仿淘寶首頁的淘寶頭條View垂直滾動 歡迎關注我的微信公眾號 不只是原創技術文章,更多的是對生活的思考總結 我在博主的基礎上做了如下工作: 修復了滾動條第二條點選事件無法觸發這個

購物車頁面仿App

首先是效果圖 xml佈局檔案 activity_shopping.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" and

前端庫適配 rem適配 lib-flexible.js 個人總結

前言 上篇文章中使用 rem適配 ,現在說下大部分都在使用的rem。看完這篇文章移動端頁面開發適配 rem佈局原理,發現我根本就不懂(心想管他了),但是隻要會使用即可,乾貨來了。 下載

好文面試題:如何充分利用多核CPU,計算很大的List中所有整數的和

引用 前幾天在網上看到一個淘寶的面試題:有一個很大的整數list,需要求這個list中所有整數的和,寫一個可以充分利用多核CPU的程式碼,來計算結果。 一:分析題目 從題中可以看到“很大的List”以及“充分利用多核CPU”,這就已經充分告訴我們要採用多執行緒(任務)進行

詳情頁面仿App

activity_detai.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_p

SEO官方搜尋排序演算法淺析(鬼腳七)

淘寶上有幾百萬的賣家,根據二八原則,20%的賣家佔了80%的交易,可能在淘寶搜尋的比例比這個還要高,15%的賣家,佔了80%的交易。在論壇上,經常有人在說,我們中小賣家生意沒法做了,淘寶不關心我們。其實這個理解完全錯了。大賣家之所有得到更多的流量,就是因為他們更熟悉搜尋的一些規則,做了更多的優化。而中小賣家,

python 爬蟲信譽分抓取

一、需求分析 輸入旺旺號,獲取淘寶賣家的信用分 二、思路 淘寶需要模擬登陸,我們這裡抓不到,因此為了繞過登陸,發現了淘一兔,我們可以通過這裡,得到淘寶賣家的信用分,結果是一樣的。 http:

iOS開發系列九宮格布局

使用 objc with div self. orm i++ back hab /** * 這個盡管非常easy,算是一個小技巧,可是碰到了就記錄下來吧.積跬步,致千裏嘛. */ - (void)scratchableLatex { for (int i=

JVM命令系列jmap

mark bsp null 參考 nfa location bootstra 內容 遠程debug 命令基本概述 Jmap是一個可以輸出所有內存中對象的工具,甚至可以將VM 中的heap,以二進制輸出成文本。打印出某個java進程(使用pid)內存內的,所有‘對象’的情況(

iOS開發系列NSObject方法介紹

ati ber oid ring cto rgb dst -s 推斷 NSObject是OC中的基類,全部類都繼承於此,這裏面也給我們提供了非常多與“類”和“方法”相關的方法,本文將解說幾個非常有用的方法。 正文: Per

大數據系列HDFS文件權限和安全模式、安裝

重新啟動 inux 客戶 元數據 masters cnblogs 格式 新的 檢測 HDFS文件權限 1、與linux文件權限類型 r:read w:write x:execute權限x對於文件忽略,對於文件夾表示是否允許訪問其內容 2、如果linux系統用戶sanglp

大數據系列MapReduce示例好友推薦

trac [0 ont protect run task main orm pat package org.slp; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text;

大數據系列在hadoop2.8.0下配置SecondaryNameNode

hadoop .cn color dfs repl images replicat style 節點 修改namenode上的hdfs-site.xml configuration> <property> <name>dfs.r

SignalR學習系列4. SignalR廣播程序

back aspnet ocs || tutorial strong family load over 創建項目 創建一個空的 Web 項目,並在 Nuget 裏面添加 SignalR,jQuery UI 包,添加以後項目裏包含了 jQuery,jQuery.UI ,和