數據分析師入門選手經驗談

數據分析師入門選手經驗談

不管是數據分析師還是數據挖掘工程師,我們的目標都是認識數據,從數據中發現需要的信息。

什麼是數據分析師/數據挖掘工程師

需要的主要技能

工作內容及發展前景

所需要的技能

做數據分析,統計的知識肯定是需要的,Excel、SPSS、R等是需要掌握的基本技能。

我是做數據挖掘的,所以重點講一下數據挖掘方面的技能。我本身是學數學專業的,接觸數學比較多。數據挖掘要從海量數據中發現規律,這就需要一定的數學知識,最基本的比如線性代數、高等代數、凸優化、概率論等。

舉個栗子,比如樸素貝葉斯演算法需要概率方面的知識,SKM演算法需要高等代數或者區間論方面的知識。當然,你可以直接套模型,R、Python這些工具有現成的演算法包,可以直接套用。但如果你想深入學習這些演算法,最好去學習一些數學知識,也會讓你以後的路走得更順暢。

我們經常會用到的語言包括Python、Java、C或者C++,我自己用Python或者Java比較多。有時用MapReduce寫程序,再用Hadoop或者Hyp來處理數據,如果用Python的話會和Spark相結合。

工作內容

數據分析更偏向統計分析,出圖,作報告比較多,做一些展示。知乎上有一個叫團支書的答主,他就比較偏向於數據分析。

數據挖掘更偏向於建模型。比如,我們做一個百貨的數據分析。萬達電商的數據非常大,具體要做什麼需要項目組自己來定。百貨數據能給我們的業務什麼樣的推進,我們從這一點入手去思考。我們從中挑出一部分進行用戶分群。

消費者在商場購物消費會有一個刷卡的數據記錄,萬達會員卡的卡號信息以及購物記錄也會在數據中呈現,數據體量是很大的。我們用這些數據做一個聚類,分成幾個用戶群,比如偏向親子的、時尚女裝和奢侈品的、汽車配飾的,分群之後再去給他們做推薦就相對更加容易。

我們做用戶分群會用到一些聚類模型,比如K-means、K-means++等,處理數據的維度特別大,是300w*142維,如果全部拿來聚類,效果不太好,因為有一些是沒有含義的,所以我們會進行降維。

降維一般會用到主成分分析,我們用的是深度學習的一個演算法——Auto Encoder。它有一個輸入層,一個隱含層,一個輸出層,數據從輸入層進去時會進行編碼,從輸出層出來時解碼,比如我們把142維數據灌進去,在隱含層降成50維數據,輸出還是142維數據。也就是說把一開始的142維數據投射到50維數據之後,再還原成142維,這142維與之前的142維數據之間的映射關係是一樣的,那麼我們就可以用中間50維的數據做聚類分析。

最後我們得到了一個評價指標,你可以理解為這個指標數值越小越好,越小代表各個值離中心越近。如果不用深度學習演算法,得出的評價指標是20萬左右,而降維之後得出的指標是600多,效果是很顯著的。

我講這個例子也是想告訴大家,如果你不具備數學知識,只是去套模型也可以做,但永遠只是停留在入門階段。大家如果想做數據挖掘工程師的話,我建議編程語言至少要會一門,數學方面至少需要線性代數、概率論和凸優化的知識,了解一些機器學習演算法的推導,以及深度學習的演算法。這個學習起來並不是特別難,我從畢業到現在有一年的時間,一些基本的演算法已經了解的差不多了。

發展的建議

每個人都有自己的偏好。有的人會說,數學太難了,我不想做挖掘,就想做一些數據分析,做一些酷炫的分析圖,這個當然可以。如果想要自己的職業生涯有長足發展的話,不要貪多貪雜,在某一個領域深入進去。你可以結合自己的興趣,在那一個領域成為專家。

提高自己的技術和業務能力。技術能力相對來說是比較好提高的,學R或者Python這類簡單的語言是很快的,Java或者C++會比較慢。當技術能力提高到一定程度的時候,就很難跟別人有技術上的差別了。可能工作一年的時候你只會R,等兩三年之後相關的工具技術你都會了,這個時候你跟其他同事的區別就在於業務能力。

很多做技術的一開始會覺得技術就是特別牛特別厲害,但是光有技術並不能讓你成為公司的核心成員,必須要提高自己的業務能力。如果你做的技術出的結果跟業務不相關,對公司無法產生效益,領導是不會要這個結果的,除非你是研究人員。

幾個小tips

學歷重要嗎?

校招渠道比較看重學歷,但是隨著工作經驗的增加,你的技術達到了一定的水平,你是二本三本實際上和985畢業的人並沒有太大區別。當然,對於應屆畢業生來說,學歷高學校好更有優勢,這是大廠的敲門磚。

也有人會問需不需要考研。考研要跟你以後的工作道路結合起來,如果想做數據挖掘,就可以選擇考數學類專業的研究生,可以提高自己的競爭力。

以我的經歷來說,我本科是在湖北一個很普通的學校,研究生報考武漢大學的計算數學專業。但因為兩分之差,調劑到了基礎數學。當時家人勸我服從調劑,好歹研究生是武大出來的。不過我的興趣不在基礎數學,這個專業也並不能給我想要從事的數據挖掘加分,還不如先在工作中積累一些實踐經驗,所以就放棄了讀研。如果我工作幾年之後需要提升能力,可以再去考個研究生,不一定非要現在就考。

轉行可不可以學?

現在這個行業越來越火,很多人想要轉行做數據分析。轉行學數據分析師是可以的,但最好先去看一下招聘單位的工作內容,如果招聘要求懂PPT、Excel之類的就可以不要考慮了,因為這種通常招的是統計員,不是分析師,對你的職業道路不會有太大的幫助。如果要求會Python、R或者建模,你可以去嘗試一下。可能別人不一定會要你,但如果你表現出足夠的誠意和自學能力的話,依然有被錄用的機會。

我大學讀數學專業時只學了MATLAB,學了不到一年,當時在學校參加MATLAB建模比賽得了一等獎,覺得自己挺牛。但是在找工作時發現很多公司不用MATLAB或者SAS,因為比較貴,很多都會用開源的R。面試的時候,我說我不知道R是什麼,領導說,給你兩個星期,學。後來在工作里一點點看書,也就入門了。

跳到第四個問題,選數據分析還是數據挖掘?

很多人覺得數據挖掘很厲害,但是一轉行就跳到數據挖掘是不太可能的。數據挖掘要求比較深的代碼功底。

一開始我也不會寫代碼,畢業之後我去了一家公司,Title是中級數據分析師,但乾的是數據挖掘的事兒。剛入職的一個月內,老闆讓我用Python出結果。之前沒學過Python,我邊學邊做,這樣把Python也學會了。後來在這家公司做過一個垃圾文本分類的項目,這個方面以前也沒有接觸過,就一邊查資料一邊自己做。一開始用公式套,但是準確率只有80%左右,我就開始看公式的推導,看懂公式原理之後就知道某些地方是可以挑優的,自己可以對演算法做一些改進。不要只套公式,也要弄明白其中的公式推導,搞懂源代碼,慢慢提高自己的代碼能力。

怎麼選公司

大公司當然是最好的。大公司一般走校招,如果你通過校招進了大公司,但是非核心的崗位,比如百度搜索方面的挖掘,當然是最好的,如果進入不了這樣的崗位,不如去一些新發展起來的公司,比如美團、滴滴,這樣的公司有一定的數據量,也會有一些比較強的人。

第三類公司是創業公司。如果是剛畢業最好不要選創業公司,風險比較大。你比較難以從表面上判斷這家公司能不能存活下來,有沒有牛人值得跟。而一些二線公司的業務骨幹大多是從BAT過來的,具有比較豐富經驗,跟著他們學習能讓自己快速成長。

怎麼面試

一定要誠實。不要造假工作經驗和年限,沒有必要,對自己也沒有好處。畢業生求職時可以表現得真誠一點,不能說一上手就能做很多工作,但是可以展示自己的學習能力。

我也不是一開始就做數據挖掘,也是在工作中慢慢轉。如果你真的想做這一行,就要有決心,不能著急。cda.pinggu.org/view/199

講個小故事,當時想轉數據挖掘的時候,我不知道是選擇Java還是C++。當時我投了很多數據挖掘崗位,我知道面試通過的可能性不大,但我就跟面試官聊天,請教經驗。我說自己是數學專業畢業的,想要轉做數據挖掘工程師,需要掌握哪些能力。面試官就畫了一個圖說,一個圓代表數學,一個圓代表計算機,我們需要的就是兩個圓交叉的部分,如果編程語言求快的話可以先學Java;我接著問他需要看哪些資料等等,我們聊了差不多一個小時。其實很多老人帶新人是很樂於分享的,多看前人的經驗,幫助自己成長,一定會在這個行業有所收穫。


推薦閱讀:

數據分析學習大神HADLEY WICKHAM關於「dplyr」的文章翻譯
Kaggle自行車預測練習-基礎篇
hive在E-MapReduce集群的實踐(一)hive異常排查入門
小白學習大數據掌握這幾個方法可輕鬆入門
大數據發展的三重門

TAG:數據分析 | 數據分析師 | 大數據分析 |