從爬蟲到可視化,我的數據拓展之路

史前時代

大數據時代,媒體最熱鬧,隔三差五被微信朋友圈的文章洗禮,Hadoop、Spark、Redis、Elastic Search,漂亮的名詞背了不少,好像學了很多,然而其實並不會用。

剛進入數據領域,為了理解潮流的名詞,我買了本數據倉庫的書,書寫的比較有條理,很長很學術,很厚很完整,我從晚上12點看,基本12.30就睡著了,催眠作用比喝牛奶實用的多,可以想像最後這本書壓箱底了幾年,而且直到現在還壓著。

作為一個大公司的碼農,如果尋求安逸,大家可以在自己的領域裡很舒服,比如很早的我,作為可視化工程師從來就不碰數據,用個random函數做個假數據,和後端工程師對下格式,最後把自己造的數據換成伺服器的真數據就好了。數據無非是後端給到我的一個api,其實不關心後端在幹嘛也可以混的順理成章。那我知道webgl渲染的一些細節,知道怎麼去做可視化映射,怎麼利用canvas和div做動畫,但仍然不會寫SQL,不知道資料庫是怎麼存數據的,也不知道怎麼去搞分析,不知道一個數據可視化在商業分析中扮演了怎樣的角色,不知道業務方會想些什麼,以及什麼交互對用戶是很重要的。

產業越大,切的越細,數據就是這樣,我們想想最簡單的數據處理,就是一張excel的表格,寫個函數加減乘除,妥妥拽拽就可以求點結果畫點圖,中學生都會做,但當你數據量大了,數據的依賴多了,分析複雜了,有了客戶端,有安全性問題,七八十來個因素一加,這個產業就被複雜的工種切得支離破碎,從前大家都會用excel,現在一些人就活在了自己領域的孤島里,比如我們做數據可視化,可以把可視化做的更美更交互,但其實人家發明excel的時候是為了解決數據統計問題,美美的數據可視化並不完全解決人家的商業問題,我們如何讓自己的技術棧變得更廣一點?

新世界的窗戶

當大河發源於冰川的時候,有時小的和後山上的小溪一個體量,同理一個學科的初衷也許簡單的驚人,分分鐘就能搞出一個demo,比如寫爬蟲,請求伺服器,解析下,完了存起來,你在nodejs寫不到20行就可以搞最小demo:

從某種意義上說,百度是中國最大的爬蟲,從一個簡單的初心出發,爬蟲可以從20行的小程序到變成一個40000人公司的核心技術(當然比喻極端了點) 當然我們也沒有那麼多野心,無非是這個程序怎麼可以變得更強大,更重要的是更酷更有趣。

從某一年的秋天開始,我寫下第一行爬蟲發現入門是如此簡單後,就開始孜孜不倦地去爬取各種網站,根據寫網站的一點簡單經驗,可以說那些不用登陸的二線互聯網公司的網站基本是爬的一馬平川,餐飲、火車票、飛機票、poi點,一切都來的很爽很簡單。

找一點意義

上大一的時候,曾經非常討厭C++課,因為看不懂黑界面里跑的「Hello World」有啥意義,同理,我相信這個只能在命令列印一行數據的爬蟲對80%人來說也乏善可陳,我們的爬蟲如何變得更酷呢?

如果考試和魔獸爭霸一樣有趣,正常智商的人都能成為超級學霸,如果我們玩的技術有趣一點,我們就能發展自我驅動的學習。爬蟲有啥用,需要把簡單的技術嫁接到有意思的事情上去,比如做可視化,我們用數據去量化我們朦朧感知的世界,比如用杭州市外賣的數據去印證濱江區現在發展到啥程度了,比如看上海的各種業態在上海不同的區域里怎麼分布,比如用招聘網站的數據看哪個職位更有錢途,過去我們知道房子保值,也知道IT是個很熱門的方向,但我們未必知道哪個城市的某幾個版塊漲的快,IT的哪個領域最有機會,趨勢又是怎樣的。我們如何獲得真實的數據然後讓人看明白趨勢找到有價值的區域?

房子是許多人這輩子最大的投資,因此研究也許對你非常重要,而仔細想想,房價這玩意,價值大而數據量小,一個上海兩千萬人, 700萬戶房,x%正在交易,你說這個數據能有多大?一個鏈家正在賣的房子10萬套,我們不用hadoop,不用spark,搞搞mysql或者postgres,最常見的資料庫就可以暢遊房價數據。

那麼,最直接的房價應用就是選房了,房源的信息很多,我們的要求很多,鏈家網的選擇器按鈕卻很少,生了娃的丈母娘公公婆婆一起住,至少是三室一廳的房,你又有了心儀的版塊,其他版塊的房子距離上班太遠,房齡太老的房子不想住,不想提前和一群老年人住一塊,其實首付有沒有那麼多,其實月供也略緊巴,一定不能超出x萬元,然後,帶個搞笑的,搞不好哪家親戚說門牌號不能帶4...

根據這麼多要求,你看鏈家網的房源,搞不好看的頭昏腦脹,你跑到店裡去問中介,中介大概覺得你要求太高不好對付,那麼還有一種辦法,我們把鏈家網所有的數據趴下來,然後寫個sql,這樣我們可以看全上海的房源有沒有match你的房子了:

最簡單的的sql選擇語句,就可以解決你的查詢之苦,sql還有許多用法,sql也不僅僅只針對一個資料庫,我們的房價應用也不僅僅可以給自己找房子,你是一個開發商,你是一個中介公司,你是房屋管理部門,這份數據的使用方式都不一樣。

有一個問題,如果我們的sql查出來很多數據,我們看的很累,那該怎麼辦?

數據可視化

這是我的職業,也是我寫到這裡比較缺乏激情的部分,因為平時做的太多了。

但過去的幾年裡,當我把真實的數據畫出來的時候,已經產生過無數次震撼,如果我們畫地圖,把全球數千個城市躍然圖上,當我們把每個城市的麥當勞和肯德基放在一起對比,當我們把城市所有房子的單價、總價、增長幅度分別畫在地圖上...無論是房子、基站還是個人lbs甚至一個物聯網設備,在城市的尺度都是一個點。當可視化呈現,你都會發現許多趨勢,有時並不是點本身讓你發現了驚喜,而是整個社會有機生長所產生的pattern,讓你產生了新的思考和認識。

數據可視化千千萬,地理可視化也無窮盡,地理只是其中的一塊,但窺一斑而知全豹,我們如何去實現原生的地圖點圖,又如何用可視化界最通用的d3去實現點圖,又如何用leaflet這樣偏gis的庫去實現,點圖是否隨著縮放而變化,在縮放的過程中是固定了像素還是固定了尺度,是否可以隨著時間的遷移而運動,是否採用不同的渲染方案去繪製,是否可以讓點擊而產生一些交互...

可視化的選擇也很多,其實excel和keynote就很好,你不一定需要編程,編程也不一定需要搞GIS,GIS也有許多種,但其實小小的點圖既簡單又不簡單,有聊聊數行代碼寫得完的點圖,也有洋洋洒洒數百行寫不完的,延伸而言,每一種知識都不難理解,做完美每一件事情都不簡單,這也是可視化存在的意義,而不是前人就發明了一種萬能的可視化方法。

沒錯,最後是一個廣告

前面是我之前學習的一些片段,串起來成了一節課,因此最後是關於我們在太閣開課的廣告。

沁原老師說,可以來太閣搞一個在線全棧工程師的課程,我的內心是緊張的,雖然大大小小的xx大會講過許多次,但還沒完全習慣對著屏幕自言自語,也沒想到第一期來的同學多的出乎我的意料,如何對這些同學的學費負責?

在聊天中,我發現第一期的同學的職業和經歷非常雜,有分析師,有博士生,有學政治經濟的,也有程序員,所以我也有點糾結,和太閣的另外幾位同學花了很不少時間去準備這個課程,設定內容,平衡難度,etc...

正如前面所述,最簡單的數據分析就如處理一張excel一樣簡單,因此數據分析的每個環節都有簡單的理念和目的,比如爬蟲就是找到數據,資料庫就是一個數據的容器,而可視化就是把數據 映射到圖形,還有很多重要的知識,他們都是簡單的,而且隨著技術的發展和變遷,很多原理依然有用,因此原理很重要,另一個就是實操,這必須不能是一碗原理雞湯。

每節課,我們會從最小demo開始,遇到接二連三實際的問題,然後這個程序會變得越來越大,越來越複雜,我是這麼學習的,學科的進化往往也是這樣發展的,是歸納式的,問題導向的,步步為營的,你遇到了問題才去改進你的代碼和設計,並不是我們過去教科書那種演繹的方式,告訴你有哪些問題。

我們的內容很多,深挖淺述的一個月課程,也許可以花掉大家幾年的時間去延展,希望有興趣的你,和我們一起挖出許許多多微小的上游,在你未來的職業生涯里匯成一條奔流到海的長江。

寫了幾百字介紹了課程,還有48小時報名就截止了,歡迎有興趣的同學戳我們的鏈接。

點擊進入課程頁面

本文作者:周寧奕 更多精彩內容,歡迎訪問官網 BitTiger.io 或關注 「論碼農的自我修養」 微信公眾號:bit_tiger


推薦閱讀:

爬蟲軟體|爬蟲軟體的簡單介紹
【數據運用】「今夜燈光璀璨」DMSP數據介紹及運用實例——福州市20年建設用地變更情況
D3.js的應用:星巴克全球店址可視圖
人臉識別之數據和網路結構
張溪夢:如何打造高速增長團隊,實現快速增長

TAG:数据分析 | 数据可视化 | 数据 |