備好數據後,數據科學家還要做什麼?

備好數據後,數據科學家還要做什麼?

大數據文摘出品

編譯:元元、張馨月

在這個數據科學越來越火的時代,數據科學家的工作到底是怎樣的呢?

數據科學越來越火,很多人都想轉行入坑數據科學家,這當然是好事。可是很多人都以為數據科學、機器學習等等流行詞對應的工作,就是把數據塞進Sckit-Learn這個算法庫裡而已。

事實遠遠沒有那麼簡單,下面我帶大家走進真實的數據科學世界。

讓我們從數據蒐集完成後開始講起。

問題闡述

“數據消耗”反映了特定服務類別數據的下載和上傳量,比如社交網絡,音頻等等。我們來看一個具體的例子。假設我們研究的是一個計數器,利用該計數器可以查看與亞馬遜網絡服務(Amazon Web Service,簡稱為AWS)連接的機器數量。

如果我們直接對原始數據進行分類,我們會得到如下結果:

備好數據後,數據科學家還要做什麼?

我們可以注意到,這是對數據進行線性判別分析(Linear discriminant analysis,簡稱為LDA)後的二維示意圖。理論上講,LDA的結果可以體現出原數據的 ± 90%;雖然不是100%,但是這裡我們可以看出,直接對數據進行分類完全沒有意義。有人建議我換別的算法或者調整超參數,但是其實,把算法直接套在原數據上的想法糟透了。

理解數據

現在,我們來挖掘一番。數據到底長什麼樣?我強烈建議初學者多花些時間觀察理解數據,而不要急著輸入“from sklearn.cluster import KMeans”這樣的代碼行。這裡我們研究一下這個例子的一個數據特徵,但是請注意,大多數數據特徵都是相似的。

下面是AWS計數器的結果(其實不是,但是我們就假定它是吧)

備好數據後,數據科學家還要做什麼?

從上到下:總數,平均值,標準差,最小值,25分位,中位數,75分位,最大值

我們可以看到,幾乎所有的數值都為0。不過您仔細看會發現,其實有些值達到3千萬。您用這樣的數值直接計算出來的距離值,再帶入LDA算法中就不可能有意義。即使您縮小數據的規模使所有的數值都在0—1之間,那麼絕大部分的數值也都會在0到大概0.0000005之間,對計算距離也沒有幫助。

如果我們只看非零的數值,分佈就很有意思了:

備好數據後,數據科學家還要做什麼?

數據處理

上圖看起來像是LogNormal分佈。現在我們就可以進行簡單的數據標準化了。採用Box-Cox法可以轉化LogNormal分佈。這個方法可以把包含LogNormal在內的許多分佈儘可能的標準化。

轉換的過程就是把下面公式中的lamda值最小化。

備好數據後,數據科學家還要做什麼?

我們的數據集中有大量的0,所以lamda值最小化後的結果如下圖所示:(請注意:我們需要大於0的結果,因此我們先給每個數值加上1之後再用公式計算)

備好數據後,數據科學家還要做什麼?

您可以看到上圖中大概在9的位置有一個小突起,這就是我們大多非0值的位置。從計算距離的角度看,現在我們的數據分佈已經比原來的好太多倍了,但是仍然有進步的空間。

讓我們重新審視這個例子中數據的背景。我們想要根據機器的行為對其分類。在“機器對機器”的世界裡,機器的行為包含了大量信息。“機器使用了亞馬遜網絡服務”這件事聽起來很滑稽,但其實含義非常重要。

我們給這些機器編碼,讓它們承擔特定的任務,比如報告天氣、展示廣告等等。它們做任務的代碼都是編寫好的,因而它們不可能隨機的開始在臉書或者其他平臺上操作。

事實上,它們可以使用一項服務(比如說AWS)本身就包含了大量信息。基於上面的分析,我決定對數據集中非零的數值進行標準化,使其規模在0.5到1之間;而對值為零的數據點保持不變。那麼怎麼標準化呢?當然是採用Box-Cox轉化法——而且只對非零值進行轉化。

請看下圖的結果比較。左圖是變換所有數據後得到的位於0—1區間的分佈。右圖是放大的0.5—1區間的分佈。

備好數據後,數據科學家還要做什麼?

雖然說左圖看起來沒有比前面的方法提升很多,但是我向您保證,在後面應用算法的過程中兩者的區別很大。

結果

下面我們對經過預處理的數據重新分類。不需任何手動調整我們就得到了如下結果。

備好數據後,數據科學家還要做什麼?

結論

我發現人們常常看到算法就如同打了雞血,一頭扎進建模的過程中。有的人甚至說,你不需要理解算法背後的數學原理。

我不贊同這個觀點。我認為還是應該理解一個算法的基本原理,至少要能理解到知道什麼樣的數據輸入才是有意義的。

比如說,我們剛才舉例用的K-Means算法的基本原理就是點之間的距離,那麼當您擁有“千萬”這樣的數量級時,您就不能期望直接把數據帶入算法就會獲得合適的結果,因為這時數值範圍太大了。

綜上所述,一遍一遍地檢查數據,直到對它瞭然於胸,然後再讓這些高級的算法完成後續的工作。

相關報道:

https://towardsdatascience.com/this-is-what-i-really-do-as-a-data-scientist-d637ed747ef9


分享到:


相關文章: