數據正在變得越來越常見,小到我們每個人的社交網絡、消費信息、運動軌跡……,大到企業的銷售、運營數據,產品的生產數據,交通網絡數據……
如何從海量數據中獲得別人看不見的知識,如何利用數據來武裝營銷工作、優化產品、用戶調研、支撐決策,數據分析可以將數據的價值最大化。
數據分析人才熱度也是高居不下,一方面企業的數據量在大規模的增長,對于數據分析的需求與日俱增;另一方面,相比起其他的技術職位,數據分析師的候選者要少得多。
那么,小白如何快速獲得數據分析的能力呢?知乎上有很多書單,你可能也聽過很多學習方法,但嘗試過就知道這些跟高效沒什么關系。
數據分析師應該具備哪些技能
要明確學習的路徑,最有效的方式就是看具體的職業、工作崗位對于技能的具體需求。
我們找了一些最具有代表性的數據分析師職位信息,來看看薪資不菲的數據分析師,到底需要哪些技能。
其實企業對數據分析師的基礎技能需求差別不大,可總結如下:
SQL數據庫的基本操作,會基本的數據管理
會用Excel/SQL做基本的數據管理
會用腳本語言進行數據分析,Python or R
有獲取外部數據的能力,如爬蟲
會基本的數據可視化技能,能撰寫數據報告
熟悉常用的數據挖掘算法:以回歸分析為主
其次是數據分析的流程,一般可以按“數據獲取-數據存儲與提取-數據預處理-數據建模與分析-數據可視化”這樣的步驟來實施一個數據分析項目。按照這個流程,每個部分需要掌握的細分知識點如下:
高效的學習路徑是什么?就是數據分析的這個流程。按這樣的順序循序漸進,你會知道每個部分需要完成的目標是什么,需要學習哪些知識點,哪些知識是暫時不必要的。
接下來我們分別從每一個部分講講具體應該學什么、怎么學。
- ? -
數據獲取:公開數據、Python爬蟲
外部數據的獲取方式主要有以下兩種。
第一種是獲取外部的公開數據集,一些科研機構、企業、政府會開放一些數據,你需要到特定的網站去下載這些數據。這些數據集通常比較完善、質量相對較高。
另一種獲取外部數據的方式就是爬蟲。
比如你可以通過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易云音樂評論排行列表。基于互聯網爬取的數據,你可以對某個行業、某種人群進行分析。
在爬蟲之前你需要先了解一些 Python 的基礎知識:元素(列表、字典、元組等)、變量、循環、函數………
以及,如何用 Python 庫(urllib、BeautifulSoup、requests、scrapy)實現網頁爬蟲。如果是初學,建議從 urllib+BeautifulSoup 開始。
常用的的電商網站、問答網站、二手交易網站、婚戀網站、招聘網站等,都可以爬到非常有價值的數據。
- ? -
數據存取:SQL語言
在應對萬以內的數據的時候,Excel對于一般的分析沒有問題,一旦數據量大,就會力不從心,數據庫就能夠很好地解決這個問題。而且大多數的企業,都會以SQL的形式來存儲數據,如果你是一個分析師,也至少要懂得SQL的操作,能夠查詢、提取公司的數據。
SQL作為最經典的數據庫工具,為海量數據的存儲與管理提供可能,并且使數據的提取的效率大大提升。你需要掌握以下技能:
提取特定情況下的數據:企業數據庫里的數據一定是大而繁復的,你需要提取你需要的那一部分。比如你可以根據你的需要提取2017年所有的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……,SQL可以通過簡單的命令幫你完成這些工作。
數據庫的增、刪、查、改:這些是數據庫最基本的操作,但只要用簡單的命令就能夠實現,所以你只需要記住命令就好。
數據的分組聚合、如何建立多個表之間的聯系:這個部分是SQL的進階操作,多個表之間的關聯,在你處理多維度、多個數據集的時候非常有用,這也讓你可以去處理更復雜的數據。
SQL這部分比較簡單,主要是掌握一些基本的語句。當然,還是建議你找幾個數據集來實際操作一下,哪怕是最基礎的查詢、提取等。
- ? -
數據預處理:Python(pandas)
很多時候我們拿到的數據是不干凈的,數據的重復、缺失、異常值等等,這時候就需要進行數據的清洗,把這些影響分析的數據處理好,才能獲得更加精確地分析結果。
比如缺失值,我們是直接去掉這條數據,還是用臨近的值去補全,比如異常的值,如何設置合理數據區間進行取舍……
對于數據預處理,學會 pandas (Python包)的用法,應對一般的數據清洗就完全沒問題了。需要掌握的知識點如下:
選擇:數據訪問(標簽、特定值、布爾索引等)
缺失值處理:對缺失數據行進行刪除或填充
重復值處理:重復值的判斷與刪除
異常值處理:清除不必要的空格和極端、異常數據
相關操作:描述性統計、Apply、直方圖等
合并:符合各種邏輯關系的合并操作
分組:數據劃分、分別執行函數、數據重組
Reshaping:快速生成數據透視表
- ? -
概率論及統計學知識
數據整體分布是怎樣的?什么是總體和樣本?中位數、眾數、均值、方差等基本的統計量如何應用?如何在不同的場景中做假設檢驗?數據分析方法大多源于統計學的概念,所以統計學的知識也是必不可少的。需要掌握的知識點如下:
基本統計量:均值、中位數、眾數、百分位數、極值等
其他描述性統計量:偏度、方差、標準差、顯著性等
其他統計知識:總體和樣本、參數和統計量、ErrorBar
概率分布與假設檢驗:各種分布、假設檢驗流程
其他概率論知識:條件概率、貝葉斯等
有了統計學的基本知識,你就可以用這些統計量做基本的分析了。通過可視化的方式來描述數據的指標,其實可以得出很多結論了:比如排名前100的是哪些,平均水平是怎樣的,近幾年的變化趨勢如何……
你可以使用 Seaborn、matplotlib 等(python包)做一些可視化的分析,通過各種可視化統計圖,并得出具有指導意義的結果。
- ? -
Python 數據分析
如果你有一些了解的話,就知道目前市面上其實有很多 Python 數據分析的書籍,但每一本都很厚,學習阻力非常大。但其實真正最有用的那部分信息,只是這些書里很少的一部分。
比如掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的數據進行回歸分析,并得出相對精確地結論。這部分需要掌握的知識點如下:
回歸分析:線性回歸、邏輯回歸
基本的分類算法:決策樹、隨機森林、樸素貝葉斯……
基本的聚類算法:k-means……
特征工程基礎:如何用特征選擇優化模型
Python 數據分析包:scipy、numpy、scikit-learn等
在數據分析的這個階段,重點了解回歸分析的方法,大多數的問題可以得以解決,利用描述性的統計分析和回歸分析,你完全可以得到一個不錯的分析結論。
然后你會知道面對不同類型的問題的時候更適合用哪種算法模型,對于模型的優化,你需要去學習如何通過特征提取、參數調節來提升預測的精度。這就有點數據挖掘和機器學習的味道了,其實一個好的數據分析師,應該算是一個初級的數據挖掘工程師了。
- ? -
系統實戰與數據思維
到這個時候,你就已經具備了數據分析的基本能力了。但是還要根據不同的案例、不同的業務場景進行實戰,練習解決實際問題的能力。
上面提到的公開數據集,可以找一些自己感興趣的方向的數據,嘗試從不同的角度來分析,看看能夠得到哪些有價值的結論。
你也可以從生活、工作中去發現一些可用于分析的問題,比如上面說到的電商、招聘、社交等平臺等數據中都有著很多可以挖掘的問題。
開始的時候,你可能考慮的問題不是很周全,但隨著你經驗的積累,慢慢就會找到分析的方向,有哪些一般分析的維度,比如Top榜單、平均水平、區域分布、同比環比、相關性分析、未來趨勢預測等等。隨著經驗的增加,你會有一些自己對于數據的感覺,這就是我們通常說的數據思維了。