2020中國高校計算機大賽·華為雲大資料挑戰賽-資料分析(二)
一、行船軌跡
這裡我畫了幾張相同trace的行船記錄,看看他們的軌跡是否一致,為了和test保持一致,我畫了出現在test裡面的trace. 上面的軌跡圖可以看出,一些軌跡還是比較規整的,但是一部分軌跡是存在不一致的,有的船可能因為總總原因,並不是按原路線行駛,甚至會有提前登陸的情況,這種情況在test可能也會發生。為此 我們在看看test裡面截斷的路線是怎樣的
從test裡面的gps軌跡可以看出來, 一半擷取的是前面的一小段 ,而後的記錄幾乎沒有,這就需要我們的模型能夠從test裡面識別出完整的路勁,以及當前航道的目的地是哪裡,這樣才能準確預測到港時間。 從另一個角度來說就是通過test被擷取的gps軌跡資料,能夠在train裡面找到 相近的gps軌跡資料 ,從而找出這段軌跡對應的完整路勁。當然 通過trace欄位也可以粗略知道軌跡,但是可能港口的名字有誤差並不統一,或者說實際到港的目的地與trace並不相符,實際路勁也是有差別的,需要好好做資料清洗的工作。
二、資料提取
1、首先我們從20G的資料中,先通過流的方式逐一讀取,由於test裡面沒有vesselNextport等欄位,所以我暫時把這些欄位都刪除了,並對一些數值特徵進行了型別轉化,最大化在不損失精度的情況下壓縮資料,下面是初步壓縮後的資訊。可以看到資料已經從原來的20G變成了5G以內。
三、觀察資料
接下來我們對資料觀察一下,看看有什麼規律。 Label問題 1、首先題目是要我們預測到港時間,那麼怎樣才算到港呢,這裡我們截取了一個訂單的最後幾條記錄,發現船的經緯度已經不在發生什麼改變,speed也是0的狀態,但是該訂單仍然在記錄,並且方向在不斷改變,從這裡結合實際情況我們能猜想到,該運單船隻應該是遇到了塞港,導致需要不斷變換方向,緩慢移動到目的地。但是根據官方的說明,其實這已經算是到港了。我們觀察到這前後的時間差長達4個小時之久, 那麼如果我們取記錄的最後一條log作為到港時間,就顯的不太合理,這會與官方給的時間上有比較大的誤差人工智慧
的方法把軌跡圖全部畫出來,人工分類) 座標問題 3、對於測試集中的資料,我們觀察到Onboard的時間都是第一條記錄的時間,但是 第一條記錄的座標卻和出發港的座標相差很大 ,我們猜測test裡面的起始資料也有可能被截斷了,導致記錄並不是真正的初始記錄,而是已經行船了一定時間的記錄,但是Onboard的時間確實是截斷的最早時間。這樣說可能有點繞,我們從下圖看就一目瞭然。 關於港口座標資訊,我們可以從event裡面的sport檔案中得到,當然裡面存在大量無用或者錯誤的Gps資訊,通過官方的說明我們可以 刪除那些無用的資料 ,然後merger到我們的訓練集中。一般test裡面的港口資訊在event裡面都是有的,所以我們不需要做太多處理。另外我們也可以根據百度地圖來分析驗證各個港口的座標以及船隻的實際航行位置。這裡放上百度地圖的座標查詢工具:
四、總結與展望
那這次的分析分享大概就到這裡,由於目前排名並不是很靠前,所以太多技巧性的東西也不是很有把握,希望大家在看完本篇後能有所啟發,也預祝大家能取得好成績!後期複賽的話自己也有很多想法,比如從NLP的角度,這個題目有點類似於文字分類、文字相似度、以及句子翻譯等任務。比如輸入一段gps等特徵序列,得到一串的估計時間等等。當然也可以傳統的NN+LGB來做,這些都還只是猜想,思考問題從不同的角度出發,有時候往往能有意想不到的收穫。不過目前最重要的還是先狗進複賽再說。後續如果還有時間和機會做這個比賽的話,也會和大家持續分享自己的思路!希望大家多多支援! 共同學習進步!!