一個優秀數據分析師應該培養哪些好習慣?
好習慣對人終身受益
優秀的數據分析師一定會有很棒的習慣?分享你覺得對數據分析師終身受益的好習慣吧?
1. 復盤。一個項目做完後,應當回頭看看自己哪裡做得好,哪裡還可以改進,這個項目產生什麼價值,可以和哪些其他模型聯合使用;
2. 筆記本。印象筆記也好啊,OneNote也好,總之選用一個你覺得順手的筆記本,把分析過程中的中間步驟或截圖或記錄,這樣就避免了一切重來;
3. 業務。一定一定先把業務弄清楚,收集足夠的信息再做分析,否則容易邏輯錯誤,邏輯一旦錯誤,數據分析也就無用了;4. 積累案例。生動的案例可以使你跟業務人員溝通更加順暢,業務人員對實例更容易懂。比如他們想表達「倖存者偏差」,你可以跟他講二戰分析飛機加固機翼的例子;5. 模板化。有些東西你是要反覆跟客戶/業務人員講的,例如準確率和查全率的區別。這時候你就可以精心花時間準備兩頁PPT來說明,重複使用次數奇高;6. 常用SQL整理。資料庫整理數據花時間很多,有些高效SQL寫法比較怪異,所以記在OneNote就好了,省得用到的時候要百度,例如:使用exists/not exists代替in/not in
低效:
SELECT *
FROM EMP
WHERE EMPNO &> 0
AND DEPTNO IN (SELECT DEPTNO FROM DEPT WHERE LOC = "MELB");
高效:
SELECT *
FROM EMP
WHERE EMPNO &> 0
AND EXISTS (SELECT *
FROM DEPT
WHERE DEPT.DEPTNO = EMP.DEPTNO
AND LOC = "MELB");
7. Excel技巧宏。Excel也是整理數據重災區啊,常用函數什麼的要熟,高級篩選什麼的要會,以前還寫了個可以做左連接的宏:
Sub LeftJoin()
Dim LeftKeyNum,RightKeyNum,LeftCol,RightCol As Integer
"""""左表關鍵字個數"右表關鍵字個數"左表首列數"右表首列數
LeftCol = 1
RightCol = 3
"以下為要連接的列數
l1 = 2
r1 = 4
""""""""""""""計算左表列數
LeftKeyNum = 1
Do While VBA.Len(Cells(LeftKeyNum, LeftCol)) &<&> 0
LeftKeyNum = LeftKeyNum + 1
Loop
LeftKeyNum = LeftKeyNum - 1
""""""""""""""計算右表列數
RightKeyNum = 1
Do While VBA.Len(Cells(RightKeyNum, RightCol)) &<&> 0
RightKeyNum = RightKeyNum + 1
Loop
RightKeyNum = RightKeyNum - 1
Dim i, j As Integer
For i = 1 To LeftKeyNum Step 1
For j = 1 To RightKeyNum Step 1
If Cells(i, LeftCol) = Cells(j, RightCol) Then
"拷貝模塊
Cells(j, r1).Select
Selection.Copy
Cells(i, l1).Select
ActiveSheet.Paste
End If
Next j
Next i
End Sub
後來發現用vlookup()也行 = =,所以函數使用方面也多積累吧;
8. 善於利用白板。分析師團隊離不開白板,從頭腦風暴到邏輯梳理,我們團隊搞了一塊小的放在位置旁邊,避免會議室都被別人佔用的時候沒得用。另外有業務人員來找你的時候,也可以使用,解釋問題更清晰;
9. 善於提問。數據分析師的價值在哪裡?其實第一價值很可能不在建模,而在幫助業務人員梳理業務流,並告訴他們自動化實現方法。大約70%的業務需求用簡單的數學建模方法+信息化方法就可以完成了,這些方法業務人員原本是不了解的。你也不了解,但是通過適當的提問,你可以幫助理清他們的思路。不少業務人員找我們想建模來著,後來恍然大悟,發現不用建模其實也能搞定。經常性問題包括:這樣做有什麼價值?數據在哪裡?一定要預測才可以實現最初的目的嗎?
10. 把好的技術文章保存下來。增量相應模型是什麼樣的?不同的聚類演算法有什麼區別,某個場景更適用什麼演算法?按數學建模、聚類分析、分類分析、關聯分析、數值計算等來分類保存,用到的時候就可以快速查看啦~又是用OneNote;
11. 少講技術。給客戶演示的時候,不要講技術,不要講技術。說案例,說效果。講技術很致命,客戶聽不懂的。沒有效果怎麼辦?多半是第一步制定商業目標沒想清楚,可能要重頭制定商業目標;
12. 看數據分布。做分析前,最好看下某個指標的分布。其實所謂的培養數據敏感性,很大程度上就是對數據的分布的熟悉。只有對分布有了解,才能有初步的判斷;
13. 圖表配色。圖表最好有自己的標準配色,好比IBM的藍和可口可樂的紅,好的圖表配色是這樣的:
------------------------------想到再補充-----------------------------
半夜答題~
在知乎上有很多位優秀的數據分析大牛,但感覺這麼好的一個問題似乎被遺忘了,我就來拋個磚引玉,希望大神們也能夠來分享一些自己的習慣。
在這個各種培訓滿天飛的年代,大家更關心的好像都是哪些工具更好用,以及如何快速入門等問題,很少有人回去關注「習慣」,畢竟這個東西不是一天能夠養成的。
上面唯一的答案雖然已經很詳細了,但是給我的感覺有點寬泛,畢竟很多點對於每個職業都是非常重要的。我不敢自稱為一個優秀的數據分析師,不過好在接觸了不少,也從他們身上學到了一些經驗,所以想和大家分享下,關於一個數據分析師的自我修養:
- 數據準確性的反覆驗證
這一點可以說是作為一名數據分析師的基本準則了,然而也是大多數人經常出錯的一點。
由於數據分析師需要經常向boss或者需求方彙報,提供數據,並且很多時候都是有ddl的(特別是對於一些緊急需求的提數彙報)所以不可避免的存在時間很趕的情況。那麼這個時候能否確保數據的準確性是非常重要的!
舉個例子:我在剛入職的時候做BI,需要用sql完成底層數據的匯總,然後展示到tableau上,經常被業務方發現這樣那樣的數據錯誤(不符合業務常識,他們一眼就能分辨出),最後一檢查發現是自己存儲過程中的邏輯寫錯了...幾次下來後,leader找我談話,他說:"你知道數據經常出錯意味著什麼嗎?意味著你失去了數據分析師最寶貴的東西:信任。如果一個數據分析師讓別人感到不信任,那麼以後你提供的分析,結論,別人都會在心裡打個問號,久而久之你會根本沒有可信度而言"
所以我認為養成對數據準確性的反覆檢查,確保數據質量是數據分析師最應該重視的一個習慣。
- 數據可視化是第一步
數據可視化重要性已經不必再多提了,對於業務方或者老闆來說,這是他們喜歡的呈現方式,而對於數據分析師本身來說,應該養成拿到數據的第一件事就是進行數據可視化的習慣,這可以幫助我們在最短的時間內了解數據的分布,缺失值情況等等,為分析提供思路。
- 對數據源的備註要清晰明了
很多時候我們在做分析,都應該把數據源的範圍標示在報告開始的地方,類似於數據選取的時間,數據說明的業務對象,數據大小等等,盡量讓接受方不產生這方面的歧義。一是可以節約交流溝通的成本,二是可以顯示出我們的專業性。
- 對產生異常數據的場景進行積累
這一點是最能看出數據分析師是否是身經百戰的地方,比如你發現某幾天的數據有些異常,沒經驗的數據分析師可能會摸不著頭腦,然而有經驗的人會馬上想到很多種情況:比如異常數據是否集中在周末或者節假日,統計的指標是否一致等等。(這也提醒我們在進行可視化的時候可以把特殊時間點的數據另外標註一下
- 多溝通,明確需求
作為一名數據分析師不可避免的要與產品,運營等部門的同學進行業務上的溝通,這個時候我們就必須培養自己的溝通能力,如何理解對方真的目的,而不是自己先亂做一個分析,最後別人表示這不是我想要的...
- 能提建議就不要只寫結論
個人認為數據分析的境界從底到高分別是:一頓分析,然而畫了幾張圖,寫了幾個數,什麼也沒說,要需求方自己去琢磨的;畫了圖,但是只對結果,事實進行了說明;不僅對結果進行了說明,還提出了一些業務上的建議。
我認為養成多根據數據提建議而不是僅提供事實說明的習慣是非常非常重要的,畢竟這才是數據分析師真正的價值所在。
- 有意識的提高自己的商業洞察能力
這個可能會比較虛,畢竟對商業的洞察能力同樣很多職業也十分需要,但是對數據分析師而言,這不僅關係到我們分析的深度和廣度,也影響到我們以後的職業發展。順便提一下ppt以及做報告分享的能力也十分重要
- 在技術上,對新事物的學習習慣
把這一點放在最後是想提醒我本人保持對技術的學習,無論是工具類的R,Python,hadoop,spark,tableau,hive;還是數據挖掘,機器學習等技術都需要去了解,因為它們極大可能改變我們數據分析的方式。
完
不要把模型簡單地當做黑箱來看待,要重視數據的邏輯。
現在各種統計和機器學習第三方庫非常多,導致一些人在面對數據的時候想都不想,直接就生搬硬套,完全不考慮模型的可解釋性。過分重視擬合性,而忽略了模型的穩健性。
一個合理的分析的流程,應該是對數據進行描述統計、清洗,分析其特徵與分布,然後構思模型,模型要根據數據的邏輯來。
舉個例子,文本挖掘是互聯網公司經常要碰到的問題。經常碰到的一個問題就是,對於爬蟲爬取的用戶反饋或用戶評論進行情感分析。如果只是簡單粗暴地進行分詞、然後篩選特徵詞,最後用支持向量機之類的分類演算法進行分類,有時候可以取得較好地效果,但也有時候效果不盡如人意。
其實對於特定問題,應該進行具體分析。公司一般來說不太可能需要開發一個通用的情感分析工具,這個難度也太大,那麼就可以根據具體問題來考慮。根據用戶討論的產品對象,以及用戶群體常用的說話方式,如果是年輕群體可能網路用語較多,而中年群體可能說話較為簡單生硬。一些群體可能說起話來簡單粗暴,另一些群體則說話方式較為緩和。一些群體可能傾向於直接對單一產品進行評論,而另一些群體可能傾向於比較多個產品。
做了具體分析之後,可以總結相應的模式。如果模式較為簡單,可以考慮直接編寫模式匹配的演算法進行分類,不一定非要選擇機器學習的演算法。甚至還可以自行編寫一些發現高價值特例的演算法,比如一個用戶如果在評論里比較了多個產品:我覺得A產品雖然用起來還可以,但是B產品體驗更好,相比之下還是B產品性價比更高一點。這種較為複雜的情況如果不好編寫演算法分析,可以考慮識別出這種類型的評論,然後挑選出來進行人工處理,然後用演算法處理多數簡單的情況。
現在在機器學習界也在逐漸地「去黑箱化」,在做數據分析的時候也要努力地「去黑箱化」。
其實這個問題範圍挺廣泛的,舉幾個點吧,之後再補充。
時間管理
數據分析的日常可能並不僅限於碼代碼寫報告,有時還會不時地穿插一些上頭交代的短期task,比如說一些創業公司往往在企業發展過程中需要不斷融資,約談融資人當然就需要給出一份體現企業生存狀態、市場表現的數據,又比如說最近團隊來了個新人,你需要找出時間去做basic training。零零總總都是事,假使都需要你去drive,如果只是單純地靠記憶去安排,可能太低效。建議可以依靠現有的第三方軟體(像是outlook自帶的calendar提醒功能)、小型的便條貼在顯眼處、寫一份personal plan定期跟蹤進度。當然首先自己心裡要先根據優先順序明確一個list,不同的task用合適的方式,你總不能為了一個為期三個月的project,單靠寫一個小紙條來提醒自己吧。
跨領域學習
要做分析之前先要有數據,通常有兩種獲取方式,你自己通過免費數據源/爬蟲獲得或者寫段query從現有公司DB里導。但無論你是怎麼得到這些數據,理解數據往往比得到顯得更為重要。看過網路上的一些分析報告,開頭不可缺的就是變數解釋與分析,他的重要性可能直接影響了你在變數選擇乃至模型構建時對結果的正確理解。比如說零售行業中的lost sales/baseline
sales/turn ending, 有些領域的變數是需要一定專業知識的。當然,相信接觸新知識可能對很多分析師而言本身就是一個有趣之處。能解釋是根本
很多時候,我們以為code跑完報告寫完就完事了。能做到這一步並不能代表你就是一個合格的數據分析師, 因為分析,驗證,解釋結果才是根本!你不是在給自己做,你有責任去解釋給懂點模型乃至完全不懂的人去聽,當然很複雜的模型調參過程沒必要一定要讓對方完全理解(這不是在教學),但重要的變數,模型使用的合理性以及模型優化結果是需要用plain的語言呈現出來的。針對不同的聽眾,相應的需要強調不同方面。數據很多時候不是一個人的苦戰,而是一群人的激戰,你需要進行大量的溝通,比如說跟合作夥伴的溝通,跟老闆的溝通,跟其他組員的溝通,跟跨部門的人溝通。只有了解別人在做什麼,你才更能看清自己的價值。
-----------------------------------------------------------------------------------------------我是小小分割線
推薦閱讀:
※No.16 沒有專業搞測試的可咋辦
※Uber員工被曝侵犯用戶隱私,跟蹤前任和碧昂斯等名
※說一說最近打車難的原因
※人類正在變成七秒魚還是三秒男(II)
※如何用三天時間,在知乎上收穫 10K 贊同