天池商鋪定位資料探勘競賽思路總結

2021-08-11 04:17:32 字數 2138 閱讀 4925

天池資料探勘競賽是國內資料探勘圈是很正規,規模很大,組織很好的競賽平台。作為在讀的一名資料探勘小白,懷著當炮灰的念頭,毅然決然的參加了這次競賽。

賽題在這裡就不詳細描述,有興趣的朋友可以去天池搜尋,商鋪定位比賽。主要是告訴你使用者去逛商場的時候,手機會搜到wifi熱點,通過給你wifi列表,使用者交易時經緯度,交易時間,店鋪經緯度,店鋪型別,店鋪**和商場名稱等資訊,讓你去**該使用者再次發生交易時,位於哪家店鋪。訓練集給出了2023年8月一整月的資料,讓你去**2023年9月前兩周的商鋪定位情況。

資料探勘競賽有乙個基本的流程,首先對問題進行分析,然後進行資料預處理,然後繼續進行傳說中最厲害的特徵工程,最後利用模型去對目標問題進行分析**,得到結果。有些朋友的部落格也分析的比較清楚,這裡就不贅述了。在這裡主要給出題目的分析思路和自己操作的結果

在比賽的開始階段,可以很明顯的想到wifi是能夠確定店鋪的關鍵因素。後續的事實也證明了wifi的重要性。起初我們在做規則學習,利用wifi的強度構造了wifi距離,也就是在訓練集中,對每乙個樣本的wifi序列出現的強度值求均值,然後利用測試樣本中每乙個樣本的wifi序列和訓練樣本中wifi序列中的交集部分求歐式距離,最終取距離最近的店鋪作為**結果。起初這樣做,效果很差,正確率只有0.16。

後來發現會出現有兩個訓練樣本和乙個測試樣本算距離,乙個交集個數為4,乙個交集個數為3,但是按照交集個數的算了相應wifi的距離後是4(假設每個wifi距離為1)和3,我們的思路會將測試樣本的答案分配給交集個數為3的店鋪,但這與實際不相符合,一般來說交集個數大,他離這家店鋪也就會比較近,因此我們在算完距離以後,將算出來的距離除了乙個交集個數的平方,從而放大交集個數對結果的影響,經過這樣的改動,我們的成績提公升到了0.8589,還是有質的提公升。

麥芽大神的開源思路其實比較簡單,就是將wifi出現次數比較少的wifi刪去,然後按照商場,將每一家商場下所有的wifi做onehot,在裡面是1的位置填充強度值,將其作為特徵,再加上交易時的經緯度,利用xgboost做多分類,就可以達到0.9073的分數。實在是羨慕,大神思路明了,**簡潔。然後在仔細看了**之後,居然發現大神不小心把rowid加入訓練和**,我從中摘出來之後,居然又上公升了萬分之5,哈哈還是挺開心的。

最後自己對**進行修改,想著加入特徵。但分析資料後,因為測試集中沒有店鋪相關的資訊,我沒有辦法將店鋪相關的特徵加入進來,只能挖時間維度了。我通過tableau畫出了平日和週末的流量圖,發現兩者有著明顯的不同,因此我們將是否是工作日作為一列特徵加入其中,通過多分類的訓練,居然上公升了萬分之十六,還是比較開心。然後自己又重新審視資料,發現8月份有乙個比較特殊的節日,那就是七夕節,我就將其加入週末中,成績又上公升了萬分之一。之後我們通過觀察資料發現,發現使用者去店鋪的時間基本是有大概的規律,有的使用者只是早上而且是同一家,有的是很多家,因此我們將所有店鋪的記錄發生的時間統一到小時的角度,作為特徵加入模型,又上公升了萬分之四,最終成績終於有了較大的提公升,最終由於自己思路的限制,止步複賽。但是感覺第一次參加這種比賽能夠從2897支隊伍中做到前200還是比較開心的,希望天池越來越好,希望自己下次能夠有好成績。這裡也感謝隊友新神和林神,很強勢。

最後總結一下在比賽中自己的一些收穫和經驗教訓:

1. pandas在資料分析方面真的是利器,無與倫比。但是迴圈真的比較慢。而且在迴圈巢狀的過程中不要在迴圈中出現深拷貝,對時間上的損耗十分大。比賽之初的**居然可以跑三天。。。。。最終實在是等不起了,然後將所有的資料格式更改為dict,然後對其遍歷,30分鐘就可以搞定。

2. pkl檔案序列化到硬碟,沒有壓縮引數,導致檔案體積很大。

3. 在以後做比賽還是做開發的時候,需要統一py的版本,因為py改動激進,在字元編碼方面和py2完全不一樣,在這個問題上浪費了很多時間

4. 在碰到資料量大的情況,利用分而治之的思想比較重要,在這個題目中資料量比較大,因此我們分商場對其進行處理。劃分成子問題,這樣效果會好的多,並且執行速度上也會快的多。而且對有些變數的onehot也就變成了可能。

5. 碰到類別變數或者字串變數,可以對類別等進行統計分組,或者找出類別之間的關係和特徵,最後考慮onehot,或者利用自然語言處理中的詞向量的思想

6. 在分析真實資料的時候,是否是工作日,節假日等十分重要,這種特殊的時間段,往往會表現出不一樣的分布,分開處理,往往效果會好的多。

7. 時間維度刻畫特徵,分段離散化,找起點形成時間距離。

8. 異常資料需要做剔除,會使得**準確率變高。

9. xgboost調參,特徵重要性畫法都比較重要

天池新人賽 資料探勘

組別 wlh 奧林匹克百公尺跑資料 python 程式設計是基於python的環境進行,可以在環境中構造資料模型 畫出建立的方程模型影象和散點圖的影象,進行對比 x test np.linspace 1896,2008,100 none 在文件中讀取x的值 f test w0 w1 x test 之...

天池 金融風控資料探勘task1

1 混淆矩陣 2 準確率 accuracy 精確率 precision 召回率 recall 3 f1指數 4 p r曲線 5 auc 包圍的面積 6 roc 真正例率和假正例率作為橫縱軸 1 ks kolmogorov smirnov k s曲線與roc曲線類似,不同在於 roc曲線將真正例率和假...

資料探勘實戰之天池精準醫療大賽(5) 特徵工程1

現在開始資料探勘中最玄妙也是最重要的部分 特徵工程 feature engineering 初學機器學習,一般只是對此概念及相關內涵有所了解,此處試圖以實踐性的角度,詳細闡述特徵工程。引用一句老掉牙的話,資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。好特徵即使使用一般的模型,也...