如何成為一個數據極客?
關於這個問題有好幾個相似的:如何成為一個數據極客/數據產品經理/數據科學家。曾經回答過一個關於數據產品經理的(數據產品經理是做什麼的? - 何明科的回答),其實個人覺得數據極客、數據科學家、數據工程師及數據產品經理這幾個職位或者稱號,在許多智能上是有很多重疊的。只是可能,極客更多使用非常規的手段來獲取或者分析數據;科學家在演算法及理論方面有更多造詣;工程師更偏重於實現;產品經理更偏重於產品運營、優化及設計。
個人粗暴得將覺得數據極客的職能分為幾大模塊:數據沉澱、解釋、驗證、探索及傳播。要想成為數據極客就需要在這些方面,或多或少有所建樹以及拿出有創意的解決方案。
一、沉澱(或數據獲取)
好數據加平庸的分析也往往會做出優質的產出,如同「食材新鮮就不需好廚師」;而爛數據加頂尖的分析也常常garbage in and garbage out,如同「巧婦難為無米之炊」。可見,獲取好的數據源並清洗乾淨,是多麼重要。
作為數據極客,當然不能面對老闆或者用戶的數據需求,攤手聳肩說,「對不起,沒有數據源」。作為數據極客要找到有創意的數據源及數據沉澱辦法,最後解決問題。正所謂「有數據也要做,沒有數據創造數據也要做」。
常規的用爬蟲獲取數據的方式(你是通過什麼渠道獲取一般人不知道的知識和信息的? - 何明科的回答)已經很平庸了,下面提一些更有創意的。
案例1:
為了對這幾年中國私募案例(VC+PE投資)中的投資條款進行研究(詳見有哪些「神奇」的數據獲取方式? - 何明科的回答),幫助創業者對投資條款有更定量的了解。從各種渠道收集了大幾百份Termsheet及SPA(真是求爺爺告奶奶),在脫敏之後,然後將其裡面的核心條款結構化整理成可分析的數據。關於如何艱難地求人拿到Termsheet及SPA就不再這裡贅述了,因為那種場景很難具象化。只是把一份SPA的縮圖放在下面,大家就可以了解將其裡面的核心條款結構化是怎麼一件難事。到目前為止,NLP在這方面的幫助仍然有限。
最終形成的是這個飽受創業者喜歡的投融資系列:http://zhuanlan.zhihu.com/hemingke/20514731。能夠將員工期權與公司估值之間的大致關係搞清楚而畫出如下美麗的回歸線條,一切努力也是值得的。
案例2:
為了獲得某一類人群的畫像及了解他們的消費習慣,不能因為我們沒有超級App就說不。我們只好走上了通過提供WiFi服務收集用戶數據的不歸路(詳見免費 Wi-Fi 的商業模式是什麼? - 何明科的回答)。
下圖是所謂的「數據極客」深入到咖啡廳及藍領工人宿舍中安裝Wi-Fi,以期望採集數據。
除了OpenWRT和普通的客戶端開發,連Arduino開發都用上了,以降低採集數據的成本。
案例3:
(以下案例為道聽途說,不能完全保證其準確性)
MIT某實驗室將聲音採集設備放到交易所大廳,通過採集交易員的吼叫聲然後做情緒分析,判斷當前交易所眾交易員的情緒,然後預測股市未來一段時間的走勢。
有海外對沖基金動用衛星拍攝照片,根據建築物的陰影長度,來跟蹤某國各地的建築情況,以此作為該國宏觀經濟的運行情況。
二、解釋
產品每天都要面對的問題會有:流量怎麼暴漲(或暴跌)了?新上的渠道效果怎麼樣?用戶的ARPU或者人均PV怎麼上升(降低)了?
數據極客,需要基於數據解釋產品或功能的某項核心指標(包括收入、DAU、ROI等等)的走勢及背後的原因,往往需要細化到多個維度(比如:時間、區域、渠道等)。基於這些解釋,做事後總結或者提前預警,試圖保證產品及功能在正確的軌道上發展。
下圖是某服務的實時PV數據,並有今日數據與昨日數據的對比。數據極客應該學會經常閱讀和理解數據並培養對數據的直覺,當數據出現異常的時候,能迅速往下深追找到真正的理由。極客的抬頭當然不能白頂,較之一般的數據人員,數據極客應該具有更加敏銳的數據經驗和直覺,快速定位問題,並用最快的方式驗證自己的假設並給出合理的解釋。
三、驗證
產品,特別是互聯網產品,按照天或者周的速度在更新和迭代,各種功能及改進都在高頻率得上上下下。
對新推出的功能或者改進,驗證其效果或者影響,使用的方式包括:簡單的時間維度或者地理緯度或者渠道緯度的對比,複雜一些的做AB Testing。Facebook在AB Testing方面積累深厚;對於各種UI方案甚至小到文案及顏色,都需要進行AB Testing來選出最優方案。Facebook曾經利用這個系統在某個WiFi段定點發布新功能,來戲弄某雜誌,誘騙其發布Facebook有產品的錯誤消息。(話說開發和運用這套AB Testing的人才是真正的數據極客,)
數據極客,需要在驗證的過程中屏蔽各種噪音來排除對真相的干擾。同時,在數據不充分或者無法實現AB Testing的情況下,找到噪音最小的方式來逼近真相。近年來推出了不少專業做AB Testing的工具,包括比較紅火的Optimizely。不過它是一個付費服務,具體收費標準見下圖。
面對如此的付費服務,數據極客是不是考慮給自己的團隊開發一個免費而更加靈活的系統呢?
四、探索
產品經理每天都在琢磨用戶需求、剛需、痛點、實現……
通過研究內外部的數據(比如:用戶的使用行為數據及搜索詞等,百度指數及貼吧發言等等),數據極客探索規律和探索用戶的需求,通過數據的方式進行初步驗證;或者滿足一定的功能,通過數據挖掘的方式滿足功能需求。
之前提到的案例(機器學習數據挖掘類工程師平時主要的工作內容是怎樣的? - 何明科的回答)就屬於探索一類,雖然整個過程起步不低(Hive + MySQL + Python + R的基礎框架),而且過程中不斷遇到阻礙,但是數據極客不會被打倒,需要不斷提供新的解決方案來還原真相找到答案,如同柯南所說「真相只有一個」。
下圖是深圳市早晨高峰時段某類人群出行的熱點圖,通過熱點分析,試圖找出這類人群的居住和上班的聚集區,為某個O2O服務提供最佳的線下布點機會。
在演算法上,Deep Learning/CV/Machine Learning等等,數據極客不敢說要一一精通,但是最好還是能略小一二到熟練使用各種框架的程度,才能輕鬆完整上面的各種任務。
五、傳播
數據極客如同增長黑客(Growth Hacker),在用戶增長方面也要有所創新和作為。
當下最易傳播並適合於數據黑客的媒體類型無疑是圖文並茂並結合數字的文章(被稱之為Infographics)。Infographics憑藉其直觀易讀和理性化的數據呈現方式,越來越受讀者的喜歡,並逐漸成為內容製作者青睞的方式。這裡有不少精彩的案例(文圖),這些案例都非常方便在手機端或者微信裡面傳播。
基於內部豐富的數據並結合外部的數據,製作有見地有傳播性的圖文文章,並便於在朋友圈及知乎等地傳播,為自己產品贏得口碑和品牌增值。
文圖是製作Infographics的一個簡單工具,下圖是它的交互界面。
六、數據極客的修鍊捷徑
在數據方面的修鍊,可以分為如下的技術細節(摘抄自中國目前數據分析數據挖掘市場情形是怎樣的,機會多嗎?前景如何? - 何明科的回答)。
如今隨著大數據的發展,越來越多的工具在湧現,而不用自己從零開發一套。比如:各種說爛了的Hive/Hadoop/MongoDB,日誌處理的Splunk,日誌分析的ELK三件套 (=elasticsearch+logstash+kibana),可視化的Tableau及我們研發的文圖。(精彩報告在:文圖案例)所以熟練掌握各種工具,能在成為數據極客的路上一路飛奔。
—————————————————————————————————————
更多文章及分享請關注我的專欄,數據冰山:http://zhuanlan.zhihu.com/hemingke
對於數據崗位的員工,互聯網公司頗有些不同的稱謂,像統計工程師、大數據工程師、數據分析師、演算法工程師、數據科學家等,每一種之間的技能差距簡直是風馬牛不相及。但我覺得,數據崗位的需求千變萬化,真正能通過數據解決問題的人,不僅要通曉兩到三種崗位的技能,而且要深刻理解數據方法論,能將數據玩弄於鼓掌之中,這種人我稱之為數據極客。好比武俠小說中的絕頂高手,殺人已不需要用劍,劍意就能殺人於無形。數據極客都需要具備哪些能力?懂數據的人會怎麼去思考和解決問題?我想舉我自身遇到的4個小例子來說明。
懂得創造數據
在大部分人的常識里,數據是客觀存在的,既不會遞增,也不會消減。所有當他們繪製報表、展開分析、構建模型時,很容易遭遇的瓶頸是沒有數據,俗話說,巧婦難為無米之炊。真實的狀況卻是:數據是無窮無盡的,哪怕有時我們與數據之間的距離很遠,就像遠在天邊的繁星,「手可摘星辰」只是一個傳說,但經過大氣層的折射我們卻能時刻感受到它們的光輝。不僅光會折射,數據同樣也會折射。舉一個小例子:
實習生Q跑來問我:「Boss趕著要大廳發言的數據去對付投資人,但是後台礙於發言的數據量級太大,一直都沒有保存,無論資料庫還是日誌系統都沒有記錄。」
我想了一下,問:「客戶端進入大廳頁面的事件一直都有監控,可以用那個數據替代嗎?」
「但是這個數據並不精確,因為進入大廳的並不完全轉化為發言。」
「是的,雖然不十分精確,但可以暫時用這個數據近似。然後,好友添加的數據一定程度也能反映大廳發言的熱度,因為之前的統計顯示,70%的好友關係產生來自於大廳。哦,對了,你有沒有關注大廳界面的發送按鈕的事件統計?這會是一個更為精確的替代數據。」
這就是一個數據有無到有被創造出來的例子。雖然原始數據沒有保存,但是數據極客的任務就是通過其他可能被獲取的數據逼近原始數據,從而還原一個較為真實的狀況。如果沒有數據能夠成為一個罷工的借口,那麼我相信恐怕90%的數據極客都得失業了。但反過來,如果不是對業務對數據的採集都了如指掌,同樣沒辦法快速實現這種變數據的戲法。
數據是立體的
20世紀初,畢加索興起了立體主義的繪畫潮流,追求以許多組合的碎片形態去描寫對象物,並將其置於同一個畫面之中,物體的各個角度交錯疊放創造出了一個多維的迷人空間。這和理想的數據展示多麼相似:客觀存在的問題經過多維度的數據解讀,被展現在一個二維的平面上,讓讀者即便只站在一個角度,也能看到這個問題在所有角度上的表現。再舉一個小例子(是的,這個例子完全與數據崗位無關,是一個來自客戶端工程師的困擾):
W是U公司負責海外業務的安卓工程師,最近盯的是視頻播放的項目,有次閑聊的時候說起,最近做了好幾個底層庫的性能優化,但從指標上看卻沒有明顯提升,每次向老大彙報的時候總是心虛。
「性能優化的指標是怎麼統計的?」
「海外業務的網路狀況普遍不好,所以我們最關注的是視頻頁面的載入時間,統計的是從頁面打開到視頻完全載入的時間差,取所有用戶的均值。」
「這個指標似乎不那麼全面,如果一個用戶等待的時間過長,他有可能提前關閉頁面,是否有統計過關閉頁面的數據?還有,看過這個時間差的分布狀況么?如果性能優化有針對一些特殊的客戶端(比如型號、CPU、內存),有沒有看過特殊客戶端下的指標有沒有提升?」
我默想W的下次彙報一定會大肆耀武揚威一番,嘿嘿。
這就是數據的魔力所在。通過層層剖析,始終能找到與問題相關的有區分度的數據,再通過數據的變化去定位到問題的發生原因或者發展趨勢,給出不容置疑的結論。所以,在解決任何問題之前(也不限於數據崗位),你都必須先構建起一套立體化的數據監控體系,來強有力的印證你的方案是有效的。
厭惡抽樣
無論是做推薦系統、精準營銷還是反欺詐,都會遇到一個現實的問題:如何檢測一個模型的實際效果?在觀察指標之餘,抽取一小部分的標記用戶,觀察他們的行為模式,人為去驗證這個模型的準確率,是一個必要的環節。但是抽樣如果用得泛濫了,就不是補藥而是毒藥了。再舉個小例子:
G是團隊的新人,有陣子我看他沒日沒夜的加班,忍不住過問了幾句,看是不是最近業務上碰到了什麼瓶頸。一問下來有點啼笑皆非:原來G正在負責一個反欺詐模型的建設,需要一些黑標籤,他從所有用戶中抽取了好幾個特徵用戶群,然後從每個用戶群中再抽樣一批用戶,通過日誌觀察是否有欺詐行為,這麼一來就耗掉了兩天的時間。
抽樣是一種從局部看整體的方法,在抽樣之上,你還要有對整體的把控。比如像G的做法就不符合數據極客的行為指南,既然可以通過日誌觀察到用戶的行為特徵,你就應該先把這種行為特徵轉化為可用的統計指標(比如識別欺詐,完全可以用收益相關的指標),再計算這幾個用戶群的均值特徵,這樣對比下來一目了然,而且省時省力。
善用工具
感謝谷歌創造了這個時代最廉價的數據核武器 - Hadoop(當然,如果Spark的bug再少一些,我會考慮把AMPLab放到谷歌的前面),數據的規模對大部分企業而言已經是一個無需顧慮的問題。但是數據極客不會滿足於會用工具的層次,理解工具的原理,靈活的使用工具,使工具變得更加順手,才能真正達到「善」用工具的境界。再舉一個小例子:
Z博士剛畢業不久,一腔熱血要把高大上的機器學習演算法用到我們的推薦系統上,但是第一次的運算結果居然要8個小時才能跑完,遠遠達不到產品團隊的更新要求。於是老大鼓動我去協助Z提升整個環節的效率,我們一起在白板上梳理了整個計算的流程,我發現有好幾處都是浪費資源降低效率的做法:原始數據由單機做一次處理再上傳到Hadoop、多個MapReduce其實可以合併為一個、甚至Hadoop的參數也可以根據機器的性能稍做調整:加大節點數、加大Map和Reduce環節的可用內存、添加壓縮以減少節點間傳輸的時間。稍作改造,運算時間便只剩下了原來的四分之一。
說到這裡,你也許會覺得數據極客也沒什麼巧妙,他們的方法論,和一切工作的方法論沒什麼不同,都會要多用腦子、多用工具、多種角度看待問題。既然如此,我可要恭喜你,你已經完全懂得了數據的妙用,而我一直以為,懂點數據,會對人的工作和生活大有助益。
更多精彩內容,歡迎關注微信公眾號「極客思享」(codingcoffee)
世界上最後一個軟體的實現方法
如果你看過核磁共振斷層造影技術就知道能把人心臟跳動的實時動畫繪製出來,如果配合現在的雲計算技術就可以實現整個人體任何動作的實時繪製,如果把手機變成APP的話,等於人的任何經濟社會活動的最細小實現過程的人體肌肉活動都能被雲計算繪製出來,而從今往後任何商業模型,軟體實現界面都只不過是這個軟體的壓縮表現而已。
這個軟體的實現過程是任何時間任何位置的顏色變化過程,也就是年月日分秒,位置,顏色,一個核磁共振那樣的3維世界,裡面每平方厘米的顏色變化的過程,前面提到的人體心臟跳動的醫學掃描圖像結果動畫就是軟體正常的最終運行界面了。典型的數據是2016年2月14日11點20秒的某個位置的顏色,每秒26幀的動畫組成的。
而具體實現邏輯自然是這些位置為什麼是某種顏色,比如一個玻璃杯子,的位置自然是存在實體的除非被打碎事件發生,玻璃杯子只能發生裝液體事件,那麼只需要掃描一次,這個杯子所在的平方厘米就會被這個杯子的3D數據佔據,這個世界上最後一個軟體通過全世界每個平方厘米發生的事情實現對任何事件的追蹤記錄來產生意義。
如果是前面提到的核磁共振斷層造影技術對人體的掃描動畫就更加簡單了,只需要掃描一次,人體數據就會變成一個實體表示數據,表示這個人在世界各地的活動情況,無論做什麼一切肌肉活動過程都能被這個系統精確的計算出來,因為人體數據通常根據數字人數據參考標準是135GB大小,那這個數據處理過程肯定是135G數據在每秒鐘26幀的動畫計算繪製過程而已。以這個數據計算方法足以計算出全世界一切人的一切活動過程,無論是社會學還是經濟學意義上的,配合雲計算系統實現就可以了。
什麼是大數據,靠大數據賺錢是什麼意思,是否有列可舉? - zhen-liang 的回答
謝邀!!!
數據geek嘛,首先要找點好玩的事情,要有意思且能夠發揮創意,最重要的是要夠酷炫!!!
那麼how呢?
前面兩位大哥回答得很長很帥也很正式,那我就說些好玩的並且可以馬上上手去弄的(PS.無論怎樣首先要有一定的理論基礎和編程功底哈,否則建議少看知乎先多看書)~
Step 1.具有應用價值。數據挖掘/機器學習領域演算法各種各樣多得飛起,然而作為Geek的你才不是為了學習或者工作才進行研究的,你是為了酷炫和實現自己的創意。so,你應該找一個現實生活中存在的問題或者現象,然後嘗試通過實現一種工具去解決改善它們,然後數據geek嘛,那當然以數據為本。這個才是作為geek的初衷和思路,一股腦買一大堆純理論的書鑽進去既枯燥效率又低關鍵還不好玩。
Step 2.收集數據。好了,這個時候你已經知道你要做什麼應用了。比如說你想做一個分析某社交網站上大家的言論來看看中國人民最近開心不開心會對股票有啥影響的工具,這個時候要做的第一件事情是先把數據搞到手,否則都是扯淡。這個時候第一選擇是先查查這個網站是不是提供了數據獲取API,如果有且滿足你要求的話皆大歡喜;如果沒有或者給得很有限,這個時候就需要做一個爬蟲工具啦,相關資料自己去找找看,還是十分簡單的。
Step 3.存起來。收集到了數據以後當然要存啦,這個時候你可以選擇存在文本文件里,當然也可以存在資料庫里,無所謂,反正是geek玩玩的項目,你開心就好。
Step 4.分析跑起來。搞到了數據以後首先要清洗一下,把一些亂七八糟的沒用的東西給過濾掉。然後就可以跑分析啦。這裡要說的是演算法啥的除非你對自己有信心或者有興趣搞搞看,否則的話一些開源的演算法已經很有幫助啦,比如一些中文分詞工具啦,一些機器學習演算法庫啦等等,好好研究一下它們的api和適用性其實就已經足夠你應付很多工作啦。有朋友會說那要不要用現在看起來很酷炫的sparkhadoop這種東西捏?我的建議是一般情況下是不用的,畢竟你是一個獨立geek,規模什麼的都有限,單機就很好啦。當然假設你的數據量很大了,你覺得分析速度太慢並且是個土豪有幾台計算機在手,那麼就擼起來好了(單機部署hadoopspark要麼是在做本地測試或者學習一下這兩個東西,否則沒有任何意義)。僅僅作為入門跑應用來說sparkhadoop還是十分簡單的。
Step 5.Show Time。當你得到計算結果的時候更重要的一步是要把它們展示出來,否則猶如錦衣夜行誰知之者?!所以這年頭數據可視化這麼重要,有些其實很水的數據結論但是配上高大上的展示效果以後就會看起來牛逼得一塌糊塗,作為geek在這點上絕對不能輸。
Step 6.生生不息大循環。數據是持續產生的,你的分析工作也應當如此。比如爬蟲之類的東西很容易因為對方頁面發生改變而廢掉,所以要細心呵護。此外,可以嘗試把數據獲取作為一個持續過程一直跑在那裡,而分析可以選擇周期性執行或者同樣持續不斷進行下去。
祝你玩得開心~
好多東西要去學習~~
人們將一些對計算機和網路技術有狂熱興趣的人叫極客,我認為,在互聯網時代,極客的概念應該延伸為為客戶提供極致服務的精神,也就是一種工匠精神,在各行各業中,有這種工匠精神的人,都應該叫極客。
@ershou 的回答寫的很好,尤其是抽樣那一點,我也踩過不少抽樣的坑。但是後面幾個回答感覺都沒有答到關鍵,還有人把什麼模型關聯分析羅列了一遍。敢情看一遍Jiawei Han的書就變成數據Geek了?
作為 @ershou 答案的補充我就寫兩個他沒有提到的關鍵點吧。
- Feature Engineering. 先不說其他的,工業界搞數據跑模型沒有大量的Feature Engineering就是找死。這個東西怎麼說呢,經驗成分很大。一方面是,一定要get your hands dirty扎到數據的泥潭中去搞才能積累起來這種能力。另一方面是,你要對自己的業務有著100%的了解,知道你自己在做什麼,知道每個feature代表著什麼,為什麼你的model能夠表現得很好。否則data science就變成玄學了。
- 理論知識。這一點其實非常非常非常重要,但卻被大多數人所忽略。其他答案中有很多人 提到,除非你對自己的演算法非常有信心否則可以直接使用一些開源工具。這一點我是很贊同的。但是這並不代表這些model背後的理論不重要。舉個例子,你連xgboost的參數都認不全,你怎麼去優化它。而且,個人經驗告訴我,理解model和model背後的理論知識,對feature engineering和調參都是有很大的幫助的。
最後就是,你懂得理論多,再加上實戰經驗豐富,很容易忽悠到資金,然後你就可以雇一大幫人來幫你寫爬蟲做報表還有其他的機械型的工作,自己才能真正地深入到數據中去尋找數據背後的規律和價值,這才是一個真正的數據geek該乾的事兒。
唔- -都寫得好長
補個蟹腰~
簡單、具體一點的說,「自動地」收集」大範圍的」「合理的」數據,「根據一定規則自動地」提取或推算「有價值」的信息。
幾個引號裡面的能做好就離geek不遠了
推薦閱讀:
※spark 和 elk 技術棧對比?
※如何成為一名數據可視化工程師?
※什麼是大數據,什麼是大數據概念?
※為什麼很多公司都開始去oracle而使用mysql?