雷鋒網AI科技評論按:我們正處於數據驅動的人工智慧浪潮中,在折服於數據的強大力量的同時,有些同學會對數據望而生畏,盲目崇拜。本文將深入淺出地介紹數據收集、統計、利用的全過程,幫助大家克服「數據崇拜症」。
儘管人腦中存儲的數據還有待進一步開發和探索,但不可否認,我們的感官感覺到的一切都是數據!好記性不如爛筆頭,將這些數據寫下來貌似會更可靠一些,特別是將它們寫入電腦。如果我們將這些筆記組織地很好,我們就可以將它們稱為「數據」(儘管我也看到有人把一些寫得亂七八糟的近乎於塗鴉的文件也命名為「數據」)。說實話,我不知道為什麼有些人會把數據看做很高大上的東西,對其敬畏有加。
為什麼要盲目崇拜數據呢?
我們需要學會面對數據採取一種平常心的實用主義態度,所以本文旨在幫助初學者了解數據背後的秘密,並幫助從業人員向那些有「數據崇拜症」的新人解釋數據的基本知識。
在開啟數據之旅時,如果你直接使用從網上購買的數據(http://bit.ly/gcp-publicdata),你很有可能會忘記這些數據是從何而來。在本文中,我將從頭開始向大家展示數據產生的過程,讀者可以在任何時間、任何地點創建自己的數據。
如下圖所示,地板上擺放著我的食物儲藏櫃中常年儲備的「彈藥」。
本文作者簡直堪稱酵母醬代言人。圖中有三種尺寸的酵母醬。
實際上,這張圖片本身就是數據——我們將其作為信息存儲下來,而你的設備則使用它向你展示豐富的色彩。(如果你想知道,當你可以看到圖像的數字矩陣時,圖像的存儲形式是怎樣的,請參閱本文作者關於監督學習的簡介:http://bit.ly/quaesita_slkid)
讓我們來梳理一下我們看到的信息吧!至於你想要關注什麼、記住什麼信息,我們有無數種選擇。下圖是我在觀察這張圖片時,所看到的東西。
以克為單位的重量並不一定是最值得注意的信息。我們可以選擇容量、價格、原產國或者其它任何我們關注的信息作為數據的內容。
如果閉上你的眼睛,你還能記得剛才你看到的每一個細節嗎?是不是記不太清了?這正是我們需要收集數據的重要原因。如果我們能在腦海中完美地記住並且處理它,那就沒有必要收集數據了。網際網路就像是隱居在山洞裡的世外高人,以上帝視角記錄著人類所有產生的數據,並且可以將這些數據完美地呈現出來。
由於人類的記憶就像是一個漏鬥,如果我們就像在學校裡修統計學的「原始年代」中一樣將信息都記錄下來,將會是很有幫助的。是的,朋友們,我們可以把信息直接記錄在紙上。
這就是數據。所以,告訴我為什麼我們要崇拜數據呢?數據往往是為了迎合它的人類作者的喜好而對現實進行的經過「加工」之後的描述。這裡面充滿了微妙的選擇,我們應該記錄物體的乾重還是溼重?如何處理容量的單位?而且,我們還可能在創建數據時犯錯。如果你繼承並使用我的數據,那麼你就不能只相信你所看到的,除非你知道在數據收集的過程中發生了什麼。
記錄在紙上的數據(相較於存儲在我的海馬體重的記憶,或者放在地板上的食物)要好得多,它更加耐用、更可靠。
人類的記憶是一個漏鬥。
我們認為進行「記憶革命」是理所應當的,這種革命早在幾千年前就開始了,那時商人需要一種可靠的方式記錄下「誰向誰賣了多少蒲式耳的東西」。不妨體會一下,擁有一個能夠比我們的大腦更好地存儲數字的通用書寫系統是一件多麼棒的事情。當我們記錄數據時,我們可能會對我們已經形成的對於現實世界的充分感知的一種破壞。但是在那之後,我們可以通過完全無損的方式將數據的副本傳遞出來。將數據記錄下來的力量是驚人的!只有很少的思想和記憶會被遺漏。
當我們分析數據時,我們正在訪問別人的記憶。
你會擔心機器智能超越人腦嗎?現在看來,僅憑紙張也可以做到這一點。要讓你的大腦記住這 27 個小數字並非易事,而如果你將它們記錄在紙上,那就可以長期保存該信息。
儘管數據的持久性得到了保證,但使用紙張處理數據會讓人產生很多煩惱。例如,如果我突發奇想,想要把這些數字從大到小重新排列一遍,那該怎麼辦呢?難道我們要祈求魔法的幫助,念出「紙啊!請給我一個更好的排序吧!」這樣的咒語嗎?這太荒謬了。
你知道計算機軟體最神奇的地方是什麼嗎?它能讓上面的咒語成為現實!所以,現在讓我們從使用紙張工作進化到使用電腦處理數據。
電子表格是計算機初學者們接觸到的第一個數據處理軟體。如果你很早就接觸過電子表格,會因為熟悉而對它們倍感親切。不過,電子表格的功能相當有限,這也是數據分析師更喜歡用 Python 或 R 語言來處理數據的原因。
我覺得電子表格還是弱了一點。與當前流行的數據科學工具相比,它們的功能相當有限。我更喜歡使用 R 和 Python 語言的組合,那麼這次讓我們重點了解一下 R 語言。你可以在你的瀏覽器中使用 Jupyter 開發環境執行下面的步驟(http://bit.ly/jupyter_try):
weight <- c(50, 946, 454, 454, 110, 100, 340, 454, 200, 148, 355, 907, 454, 822, 127, 750, 255, 500, 500, 500, 8, 125, 284, 118, 227, 148, 125)
weight <- weight[order(weight, decreasing = TRUE)]
print(weight)
如果你是初學者,你會認為 R 語言中的排序「咒語」並沒有那麼明顯。
然而,「咒語」本身就是這樣,電子表格軟體中的菜單也是這樣。你只知道這些是因為你接觸過它們,而不是因為它們本身就是普遍概率。要使用計算機進行工作,你需要向資深「佔卜師」們請教這些「魔法咒語/手勢」,然後勤加練習。而「網際網路」則是我最崇敬的「聖人」,它的洞曉世間的一切。
在瀏覽器的 Jupyter 開發環境下運行代碼片段的結果。我在代碼中加入了一些注釋,用來解釋每一行的作用。
為了加速的你學習「魔法」的進程,不要僅僅複製粘貼這些「咒語」,不妨試著對它們進行修改,看看會發生什麼。例如,如果將上面代碼片段中的「TURE」改成「FALSE」,會發生什麼變化?
你很快就可以得到答案,是不是很神奇!?我非常熱愛編程,其中一個原因就是,它是「魔法咒語」和「樂高積木」的混合體。
如果你希望自己能夠成為神奇的「魔術師」,那就學著去寫代碼吧。
簡單地說,這種編程模式就是:在網際網路上查詢如何做某件事,利用你剛剛學到的「魔術咒語」,看看如果你對其進行調整會發生什麼,然後把它們像樂高積木一樣堆在一起,執行你的命令。
實際上,就算這 27 個數字被排好了序,對我們也沒有多大的意義!當我們閱讀這一串數字時,我們會忘記剛剛讀過的內容。人類的大腦就是這樣,給定排好序的一百萬個數字的列表,我們最多只能記住最後幾個數。我們需要一種快速的方法對數據進行排序和總結,這樣我們就會對我們在看的數據有很好的掌握。
這就是數據分析(http://bit.ly/quaesita_datasci)的作用!
median(weight)
使用了正確的「咒語」後,我們就可以馬上知道重量的中位數是多少。
對電影的品味和我一樣的人就能看懂這張圖(http://bit.ly/fish_called_wanda)
這個問題的答案是 248g。誰不喜歡這種馬上就能得到結果的函數呢?!有很多可以用來進行總結的函數可供選擇:min(),max(),mean(),median(),mode(),variance()...不妨把這些函數都試試。你也可以試著使用下面這個神奇的函數,看看會發生什麼:
summary(weight)
順便說一下,這裡得到的東西被稱為統計量。計算統計量會破壞你的原始數據。這不是統計學領域的內容,有興趣的讀者可以觀看下面這個 8 分鐘的學科介紹視頻:http://bit.ly/quaesita_statistics。
本節關注的是通過圖片對數據進行總結。事實證明,一圖勝千言,每個數據點都可以通過一張圖代表,也可以用圖片代表很多的數據點。(在本例中,我們會製作一張只包含 27 個重量數據的圖)。
小費罐可以看作自然形成的條形圖,它的高度越高意味著服務越受歡迎。除了類別是安排好的,直方圖與它幾乎是相同的東西。
如果我們想知道我們數據中的重量是是如何分布的,例如,是否有更多的項介於 0 到 200g 之間,還是有更多的項介於 600g 到 800g 之間?那麼直方圖是我們的首選。
自然界中的「直方圖」
直方圖是總結和顯示我們的示例數據的方法之一。直方圖中的數據塊更高代表這種數據出現的更頻繁。
將條形圖和直方圖看做是人氣比賽。
要想在電子圖表軟體中製作直方圖,「魔法咒語」是點擊一長串的不同的菜單。而在 R 語言中,這個過程要快得多:
hist(weight)
下面是我們通過這行代碼得到的結果:
這是一個看起來很「醜」的直方圖,但是我已經習慣了生活中美好的事務,而且知道你可以通過幾行 R 語言代碼讓它變得更漂亮(http://bit.ly/histogram_tutorial)。拋開美觀性不談,這張圖可以很好地說明基本的知識。
在橫軸上,我們有幾個「桶」。我們默認以 200g 為一個「桶」的寬度,但是我們很快就可以改變這個寬度。在縱軸上的刻度是計數:在數據中,我們有多少次看到重量是在 0g 到 200g 之間?直方圖中顯示的是 11 次。那麼 600g 到 800g 之間有多少次呢?只有 1 次。(食鹽的重量)。
我們可以自己選擇「桶」的寬度,在不對代碼進行修改的默認情況下,我們得到的是寬度為 200g 的「桶」,但是也許我們也應該改用寬度為 100g 的「桶」。沒問題!訓練中的「魔術師」可以改進我們的「咒語」來發現它是如何起作用的。
hist(weight, col = "salmon2", breaks = seq(0, 1000, 100))
運行結果如下:
現在我們可以清楚地看到,最常見的類別是 100-200 和 400-500。真的有人在乎這個結果嗎?也許並有。但我們只是想告訴大家我們可以這麼做。另一方面,一個真正的數據分析師,應該擅長快速查看數據,並且掌握尋找有趣的信息的藝術。如果他們業務精湛(http://bit.ly/quaesita_analysts),那就價值連城了。
如果我們繼續使用這 27 條數據(http://bit.ly/quaesita_popwrong),我們也可以使用剛才的直方圖來表示人口分布。
這差不多就是一個數據分布的樣子:如果你針對整體的人口(所有你關注的信息,http://bit.ly/quaesita_statistics)數據,而不是針對某個示例(你現在恰好擁有的數據)應用「hist()」函數,你得到的直方圖就可以表示數據的分布。
數據分布可以為你提供關於整體人口統計數據的「人氣比賽」結果。它基本上就是人口直方圖。橫軸:人口數據值。縱軸:相對頻率。
如果我們將人口都看做包裝食品,那麼分布就會像所有食品重量的直方圖一樣。這種分布只是我們腦海中的一種理論上的概念——一些包裝食品已經消失在時間的迷霧中了。即使我們想要,我們也不能生成這個數據集,所以我們能做的最好的事情就是使用一個好的樣本來估計它。
這個問題的答案眾說紛紜,但我贊成的定義是:「數據科學(http://bit.ly/quaesita_datasci)是使數據變得有用的學科」。它的三個子領域包括:
(1)挖掘大量信息,從而獲得啟發(數據分析,http://bit.ly/quaesita_analysts)
(2)根據有限的信息明智地做出決策(數據統計,http://bit.ly/quaesita_statistics)
(3)使用數據中的模式自動化任務(機器學習/人工智慧,http://bit.ly/quaesita_emperor)
所有的數據科學都可以歸結為:知識就是力量。
宇宙間充斥著各種各樣的信息,它們有待於人們發掘並好好利用。雖然我們的大腦在引導我們完成現實任務的方面具有驚人的能力,但它們並不擅長存儲和處理某些非常有用的信息。
這也就是為什麼我們人類一開始採用泥版文書的方式記錄數據,之後用紙張,再之後用矽晶片來記錄數據。我們開發了迅速查看信息的軟體,現在知道如何使用它的人將自己稱作數據科學家或數據分析師。而那些開發出這些工具,並且讓從業者更好、更快地掌握信息的人,才是真正的幕後英雄。順便說一下,即使是網際網路也是一種分析工具(我們很少這麼想,因為即使是小朋友也能做這種「數據分析」)。
我們所感知到的一切都會被存儲在某個地方(至少是暫時存儲)。數據並沒有什麼神奇的(除了將它寫下來比用大腦來管理更加可靠)。有些信息是有用的,有些信息是誤導性的,其它信息都沒有太大意義。數據也是如此。
我們都是數據分析師,一直都是。
我們認為我們具有的驚人的生物能力是理所應當的,並且誇大了我們信息處理能力和機器輔助的各種系統之間的差距。這種不同之處在於持久性、處理速度和規模...但相同的常識規則同時適用於二者。為什麼這些規則在方程的第一個符號出現時就被忽視了呢?
你還在盲目崇拜數據嗎?
我很高興能夠將數據作為人類科學進步的燃料,但盲目崇拜數據,把它奉為神秘的東西是沒有意義的。我們最好能夠簡單地討論數據,因為從某種意義上說,人人都是數據分析師,一直如此! 雷鋒網(公眾號:雷鋒網) 雷鋒網
Via:https://towardsdatascience.com/what-is-data-8f94ae3a56b4
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。