阿里天池比賽報告
比賽題目:
在商場內精確的定位使用者當前所在店鋪,當使用者在商場環境中開啟手機的時候,存在定位訊號不准、環境資訊不全、店鋪資訊缺失、不同店鋪空間距離太近等等挑戰。出題方提供了2023年8月大概100家商場的詳細資料,包括使用者定位行為和商店等資料(已脫敏),要求通過對資料的分析處理來對下乙個月做出**。
已知資訊,表一二:
應用工具:
python語言、numpy庫、pandas庫
資料分析:
拿到這麼多資料時,首先想到的是mall的數量,竟然已經知道每家shop都在那個mall中,那麼就做第乙個分類,將各個shop按mall分組(mall數量:75,shop數量:8477, 乙個mall中包含[46,220]shop),共97組。
資料中比較明顯的特徵是經緯度,經緯度可以做乙個shop中mall的粗略定位,於是做出位置的散點圖:
挑選多組來看,還是可以用的,點與點之間的距離相對是比較離散的,也存在特別密集的地方,如果經緯度再精確一點,就可以直接拿經緯度來進行準確定位了,但是目前的資料效果並不明顯,而且還降低了準確率,原因是1、位置不是很準確;2、存在不同樓層的情況。
除此之外wifi也是乙個比較惹人注意的乙個特徵,乙個使用者的wifi資訊包含1-10條(90%是10條),
wifi資訊包含wifi名、wifi強度、是否連線wifi,容易想到的是將這些資訊整合起來,乙個shop對應許多wifi,將wifi作為乙個特徵,如果測試集中的使用者檢測到的wifi和哪家shop越相似(wifi對應數量和強度差值大小),那麼我們更有把握說此使用者在哪家shop中,由此來想就有了比較明確的方向,至於裡邊的資料處理,放在後邊分析,目前有了比較重要的特徵。
shop的人均消費指數這一特徵,沒什麼用,至少我還不知道怎麼用,至於那些大牛們他們應該也自己的見解。
shop的型別一直是我打算入手的一部分,但是看了大牛們的聊天,型別的使用並沒有是通過時間反映出來的,主要來區分早午晚餐、夜店、白天非飯點經營店鋪(衣鞋、首飾等),那麼每天的時間點變成了乙個間接的分類物件,初次之外
一家shop出現wifi數量[1, 3330]個(包含個人熱點的干擾)
解題思想:
1、讀取檔案:pandas庫中的dataframe是對二維資料進行處理的有用工具,在較多資料分析中有應用,無論是matplotlib還是其他的庫都支援直接操作,pandas.read_csv(file_name)讀取**成dataframe格式,獲取有用的資料特徵。
2、分檔案儲存:97家mall,97個檔案逐個將所有的mall的資訊放到不同的mall檔案中,共97個檔案,檔案內容:mall:(暫時用的的資訊,之後還會放入有用的特徵)。
3、演算法實現1:已知每家shop可以檢測到的所有wifi以及wifi強度(乙個wifi出現多次,取平均),拿到測試集,乙個user所處地點能檢查到的所有的wifi資訊,作比對,wifi出現次數最多,並且wifi強度越相近,我們可以認為在這家商鋪。訓練結果在85左右,於是提交的一次,84分,可以看出wifi算是比較重要的特徵之一,如何強化這個特徵,提高wifi的利用率呢?在之前的資料分析中可以看到,演算法實現1存在很嚴重的問題:首先在一家shop中同一wifi出息的次數沒有做很好的處理,舉個例子來說吧,例如w_12335在s_1578中出現了1次,強度是-85,w_12336在s_1578中出現了50次,平均強度是-77,明顯w_12335是個移動熱點,而w_12336是固定的wifi,所以這兩個wifi就不能同等對待;其次對於強度平均值來說,也是乙個錯誤的處理,資料分析中乙個wifi在一家shop中的強度方差會出現5%的大於200,甚至有到達1200的,那麼這就有問題了。
4、演算法實現2:加權打分,wifi出現次數 c1,強度經過剔除影響方差的異常資料後為s1,user的wifi強度s2,user和shop對應wifi數量c2,[1/c1,abs(s1-s2)/100]*w1+1/c2*w2得到分數,
分數最小的確定shop,w1,w2需要用訓練集訓練,過程比較慢,效果提高不是很明顯。
5、演算法實現3:演算法模型,看了一些大神的操作,決定還是用模型來跑一下,剔除移動熱點,乙個mall乙個模型,wifi作為眾多的特徵,又上了時間戳,時間戳主要是用來區分早、中、晚、工作日、雙休五個特徵,通過降維和資料歸一化,跑了隨機森林的模型,訓練效果挺不錯的,但是忙著準備考試,還沒提交就結束比賽了,很遺憾沒有進複賽。
存在問題與總結:
問題1、偏向使用某一特徵,一開始咬住wifi這一特徵來做處理,雖然可以達到84以上,但是再怎麼做優化也到不了90,雖然也對經緯度做了分析,但是對時間戳等幾個特徵的分析幾乎沒有。
解決方法:不主觀的認為某一特徵有沒有用,將特徵分下去做逐個分析,盡量挖掘每乙個特徵和結果的關係。
問題2、拿到特徵後對特徵分析不夠詳細,本次比賽對wifi的處理,盲目的直接使用模型,盲目的同等對待每乙個點,盲目的根據自己的感覺寫打分函式。
解決方法:加強交流,將自己的分析結果分享出來,多讓別人找問題;對於使用的演算法或模型,寫出使用的原因,分析自己使用的合理性、準確性。
問題3、時間複雜性,跑程式占用太多時間
解決方法:熟悉hadoop分布式,提高效率
pushmail的一點總結
從push方法上說有ip push和sms push。ip push就是讓手機始終握著gprs,從而有個ip,讓mail server和手機之間始終有個通路,這樣server一旦有郵件就馬上通過ip push到手機終端上了。sms push就是mail server有郵件了,通知運營商push個簡訊...
索引的一點總結
1.索引是一棵b樹 3級索引能容納400萬行資料,4級索引能容納40億行資料。2.表的組織方式有兩種 堆或b樹。當在表上建立乙個聚集索引時,表就組織為乙個b樹 否則就組織為乙個堆。3.聚集索引約佔1 的表大小.非聚集索引佔30 40 表大小,曾見過非聚集索引和資料表一樣大或更大.4.索引碎片 完全沒...
HtmlAgilityPack的一點總結
最近工作中用到了htmlagilitypack的類庫,總的來說使用起來確實感覺挺方便,別的不多說,就這類似於能把html標籤自動補全的load 方法就感覺挺讚 其實上不是不全,而是將不完整的標籤給格式化一下 但這不就足夠了嗎?捨得自己去用正規表示式去匹配,萬一匹配的內容就是html作者寫的文字內容,...