❶ 如何成為一個數據分析師需要具備哪些技能
接下來我們分別從每一個部分講講具體應該學什麼、怎麼學。
數據獲取:公開數據、Python爬蟲
如果接觸的只是企業資料庫里的數據,不需要要獲取外部數據的,這個部分可以忽略。
外部數據的獲取方式主要有以下兩種。
第一種是獲取外部的公開數據集,一些科研機構、企業、政府會開放一些數據,你需要到特定的網站去下載這些數據。這些數據集通常比較完善、質量相對較高。
另一種獲取外部數據費的方式就是爬蟲。
比如你可以通過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易雲音樂評論排行列表。基於互聯網爬取的數據,你可以對某個行業、某種人群進行分析。
在爬蟲之前你需要先了解一些 Python 的基礎知識:元素(列表、字典、元組等)、變數、循環、函數(鏈接的菜鳥教程非常好)……以及如何用成熟的 Python 庫(urllib、BeautifulSoup、requests、scrapy)實現網頁爬蟲。如果是初學,建議從 urllib 和 BeautifulSoup 開始。(PS:後續的數據分析也需要 Python 的知識,以後遇到的問題也可以在這個教程查看)
網上的爬蟲教程不要太多,爬蟲上手推薦豆瓣的網頁爬取,一方面是網頁結構比較簡單,二是豆瓣對爬蟲相對比較友好。
掌握基礎的爬蟲之後,你還需要一些高級技巧,比如正則表達式、模擬用戶登錄、使用代理、設置爬取頻率、使用cookie信息等等,來應對不同網站的反爬蟲限制。
除此之外,常用的的電商網站、問答網站、點評網站、二手交易網站、婚戀網站、招聘網站的數據,都是很好的練手方式。這些網站可以獲得很有分析意義的數據,最關鍵的是,有很多成熟的代碼,可以參考。
數據存取:SQL語言
你可能有一個疑惑,為什麼沒有講到Excel。在應對萬以內的數據的時候,Excel對於一般的分析沒有問題,一旦數據量大,就會力不從心,資料庫就能夠很好地解決這個問題。而且大多數的企業,都會以SQL的形式來存儲數據,如果你是一個分析師,也需要懂得SQL的操作,能夠查詢、提取數據。
SQL作為最經典的資料庫工具,為海量數據的存儲與管理提供可能,並且使數據的提取的效率大大提升。你需要掌握以下技能:
提取特定情況下的數據:企業資料庫里的數據一定是大而繁復的,你需要提取你需要的那一部分。比如你可以根據你的需要提取2018年所有的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……,SQL可以通過簡單的命令幫你完成這些工作。
資料庫的增、刪、查、改:這些是資料庫最基本的操作,但只要用簡單的命令就能夠實現,所以你只需要記住命令就好。
數據的分組聚合、如何建立多個表之間的聯系:這個部分是SQL的進階操作,多個表之間的關聯,在你處理多維度、多個數據集的時候非常有用,這也讓你可以去處理更復雜的數據。
數據預處理:Python(pandas)
很多時候我們拿到的數據是不幹凈的,數據的重復、缺失、異常值等等,這時候就需要進行數據的清洗,把這些影響分析的數據處理好,才能獲得更加精確地分析結果。
比如空氣質量的數據,其中有很多天的數據由於設備的原因是沒有監測到的,有一些數據是記錄重復的,還有一些數據是設備故障時監測無效的。比如用戶行為數據,有很多無效的操作對分析沒有意義,就需要進行刪除。
那麼我們需要用相應的方法去處理,比如殘缺數據,我們是直接去掉這條數據,還是用臨近的值去補全,這些都是需要考慮的問題。
對於數據預處理,學會 pandas 的用法,應對一般的數據清洗就完全沒問題了。需要掌握的知識點如下:
選擇:數據訪問(標簽、特定值、布爾索引等)
缺失值處理:對缺失數據行進行刪除或填充
重復值處理:重復值的判斷與刪除
空格和異常值處理:清楚不必要的空格和極端、異常數據
相關操作:描述性統計、Apply、直方圖等
合並:符合各種邏輯關系的合並操作
分組:數據劃分、分別執行函數、數據重組
Reshaping:快速生成數據透視表
概率論及統計學知識
數據整體分布是怎樣的?什麼是總體和樣本?中位數、眾數、均值、方差等基本的統計量如何應用?如果有時間維度的話隨著時間的變化是怎樣的?如何在不同的場景中做假設檢驗?數據分析方法大多源於統計學的概念,所以統計學的知識也是必不可少的。需要掌握的知識點如下:
基本統計量:均值、中位數、眾數、百分位數、極值等
其他描述性統計量:偏度、方差、標准差、顯著性等
其他統計知識:總體和樣本、參數和統計量、ErrorBar
概率分布與假設檢驗:各種分布、假設檢驗流程
其他概率論知識:條件概率、貝葉斯等
有了統計學的基本知識,你就可以用這些統計量做基本的分析了。通過可視化的方式來描述數據的指標,其實可以得出很多結論了,比如排名前100的是哪些,平均水平是怎樣的,近幾年的變化趨勢如何……
你可以使用python的包 Seaborn(python包)在做這些可視化的分析,你會輕松地畫出各種可視化圖形,並得出具有指導意義的結果。了解假設檢驗之後,可以對樣本指標與假設的總體指標之間是否存在差別作出判斷,已驗證結果是否在可接受的范圍。
python數據分析
如果你有一些了解的話,就知道目前市面上其實有很多 Python 數據分析的書籍,但每一本都很厚,學習阻力非常大。但其實真正最有用的那部分信息,只是這些書里很少的一部分。比如用 Python 實現不同案例的假設檢驗,其實你就可以對數據進行很好的驗證。
比如掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的數據進行回歸分析,並得出相對精確地結論。比如DataCastle的訓練競賽「房價預測」和「職位預測」,都可以通過回歸分析實現。這部分需要掌握的知識點如下:
回歸分析:線性回歸、邏輯回歸
基本的分類演算法:決策樹、隨機森林……
基本的聚類演算法:k-means……
特徵工程基礎:如何用特徵選擇優化模型
調參方法:如何調節參數優化模型
Python 數據分析包:scipy、numpy、scikit-learn等
在數據分析的這個階段,重點了解回歸分析的方法,大多數的問題可以得以解決,利用描述性的統計分析和回歸分析,你完全可以得到一個不錯的分析結論。
當然,隨著你實踐量的增多,可能會遇到一些復雜的問題,你就可能需要去了解一些更高級的演算法:分類、聚類,然後你會知道面對不同類型的問題的時候更適合用哪種演算法模型,對於模型的優化,你需要去學習如何通過特徵提取、參數調節來提升預測的精度。這就有點數據挖掘和機器學習的味道了,其實一個好的數據分析師,應該算是一個初級的數據挖掘工程師了。
系統實戰
這個時候,你就已經具備了數據分析的基本能力了。但是還要根據不同的案例、不同的業務場景進行實戰。能夠獨立完成分析任務,那麼你就已經打敗市面上大部分的數據分析師了。
如何進行實戰呢?
上面提到的公開數據集,可以找一些自己感興趣的方向的數據,嘗試從不同的角度來分析,看看能夠得到哪些有價值的結論。
另一個角度是,你可以從生活、工作中去發現一些可用於分析的問題,比如上面說到的電商、招聘、社交等平台等方向都有著很多可以挖掘的問題。
開始的時候,你可能考慮的問題不是很周全,但隨著你經驗的積累,慢慢就會找到分析的方向,有哪些一般分析的維度,比如top榜單、平均水平、區域分布、年齡分布、相關性分析、未來趨勢預測等等。隨著經驗的增加,你會有一些自己對於數據的感覺,這就是我們通常說的數據思維了。
你也可以看看行業的分析報告,看看優秀的分析師看待問題的角度和分析問題的維度,其實這並不是一件困難的事情。
在掌握了初級的分析方法之後,也可以嘗試做一些數據分析的競賽,比如 DataCastle 為數據分析師專門定製的三個競賽,提交答案即可獲取評分和排名:
員工離職預測訓練賽
美國King County房價預測訓練賽
北京PM2.5濃度分析訓練賽
種一棵樹最好的時間是十年前,其次是現在。現在就去,找一個數據集開始吧!!
❷ 數據分析的步驟是什麼
1.問題定義
比較典型的場景是我們需要針對企業的數據進行分析,比如公司通常會有銷售數據、用戶數據、運營數據、產品生產數據……你需要從這些數據里獲得哪些有用的信息,對策略的制定進行指導呢?又比如你需要做的是一份市場調研或者行業分析,那麼你需要知道你需要獲得關於這個行業的哪些信息。
首先你需要確定去分析的問題是什麼?你想得出哪些結論?
比如某地區空氣質量變化的趨勢是什麼?
王者榮耀玩家的用戶畫像是什麼樣的?經常消費的是那類人?
影響公司銷售額增長的關鍵因素是什麼?
生產環節中影響產能和質量的核心指標是什麼?
如何對分析用戶畫像並進行精準營銷?
如何基於歷史數據預測未來某個階段用戶行為?
這些問題可能來源於你已有的經驗和知識。比如你已經知道每周的不同時間用戶購買量不一樣,那麼你可以通過分析得出銷量和時間的精確關系,從而精準備貨。又比如你知道北京最近幾年的空氣質量是在變壞的,可能的因素是工廠排放、沙塵暴、居民排放、天氣因素等,那麼在定義問題的時候你就需要想清楚,需要針對哪些因素進行重點分析。
有些問題則並不清晰,比如在生產環節中,影響質量的核心指標是什麼,是原材料?設備水平?工人水平?天氣情況?某個環節工藝的復雜度?某項操作的重復次數?……這些可能並不明顯,或者你是涉足新的領域,並沒有非常專業的知識,那麼你可能需要定義的問題就需要更加寬泛,涵蓋更多的可能性。
問題的定義可能需要你去了解業務的核心知識,並從中獲得一些可以幫助你進行分析的經驗。從某種程度上說,這也是我們經常提到的數據思維。數據分析很多時候可以幫助你發現我們不容易發現的相關性,但對問題的精確定義,可以從很大程度上提升數據分析的效率。
如何更好地定義問題?
這就需要你在長期的訓練中找到對數據的感覺,開始的時候你拿到特別大的數據,有非常多的欄位,可能會很懵逼,到底應該從什麼地方下手呢?
但如果有一些經驗就會好很多。比如,你要研究影響跑步運動員速度的身體因素,那麼我們可能會去研究運動員的身高、腿長、體重、甚至心率、血壓、臂長,而不太會去研究運動員的腋毛長度,這是基於我們已有的知識。又比如我們要分析影響一個地方房價的因素,那麼我們可能會有一些通用的常識,比如城市人口、地理位置、GDP、地價、物價水平,更深入的可能會有產業格局、文化狀態、氣候情況等等,但一般我們不會去研究城市的女孩長相,美女佔比。
所以當你分析的問題多了之後,你就會有一些自己對數據的敏感度,從而養成用數據分析、用數據說話的習慣。這個時候你甚至可以基於一些數據,根據自己的經驗做出初步的判斷和預測(當然是不能取代完整樣本的精準預測),這個時候,你就基本擁有數據思維了。
2.數據獲取
有了具體的問題,你就需要獲取相關的數據了。比如你要探究北京空氣質量變化的趨勢,你可能就需要收集北京最近幾年的空氣質量數據、天氣數據,甚至工廠數據、氣體排放數據、重要日程數據等等。如果你要分析影響公司銷售的關鍵因素,你就需要調用公司的歷史銷售數據、用戶畫像數據、廣告投放數據等。
數據的獲取方式有多種。
一是公司的銷售、用戶數據,可以直接從企業資料庫調取,所以你需要SQL技能去完成數據提取等的資料庫管理工作。比如你可以根據你的需要提取2017年所有的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……,SQL可以通過簡單的命令幫你完成這些工作。
第二種是獲取外部的公開數據集,一些科研機構、企業、政府會開放一些數據,你需要到特定的網站去下載這些數據。這些數據集通常比較完善、質量相對較高。當然這種方式也有一些缺陷,通常數據會發布的比較滯後,但通常因為客觀性、權威性,仍然具有很大的價值。
第三種是編寫網頁爬蟲,去收集互聯網上的數據。比如你可以通過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易雲音樂評論排行列表。基於互聯網爬取的數據,你可以對某個行業、某種人群進行分析,這算是非常靠譜的市場調研、競品分析的方式了。
當然,比較BUG的一點是,你通常並不能夠獲得所有你需要的數據,這對你的分析結果是有一定影響的,但不不影響的是,你通過有限的可獲取的數據,提取更多有用的信息。
3.數據預處理
現實世界中數據大體上都是不完整,不一致的臟數據,無法直接進行數據分析,或分析結果差強人意。數據預處理有多種方法:數據清理,數據集成,數據變換,數據歸約等。把這些影響分析的數據處理好,才能獲得更加精確地分析結果。
比如空氣質量的數據,其中有很多天的數據由於設備的原因是沒有監測到的,有一些數據是記錄重復的,還有一些數據是設備故障時監測無效的。
那麼我們需要用相應的方法去處理,比如殘缺數據,我們是直接去掉這條數據,還是用臨近的值去補全,這些都是需要考慮的問題。
當然在這里我們還可能會有數據的分組、基本描述統計量的計算、基本統計圖形的繪制、數據取值的轉換、數據的正態化處理等,能夠幫助我們掌握數據的分布特徵,是進一步深入分析和建模的基礎。
4.數據分析與建模
在這個部分需要了解基本的數據分析方法、數據挖掘演算法,了解不同方法適用的場景和適合的問題。分析時應切忌濫用和誤用統計分析方法。濫用和誤用統計分析方法主要是由於對方法能解決哪類問題、方法適用的前提、方法對數據的要求不清等原因造成的。
另外,選擇幾種統計分析方法對數據進行探索性的反復分析也是極為重要的。每一種統計分析方法都有自己的特點和局限,因此,一般需要選擇幾種方法反復印證分析,僅依據一種分析方法的結果就斷然下結論是不科學的。
比如你發現在一定條件下,銷量和價格是正比關系,那麼你可以據此建立一個線性回歸模型,你發現價格和廣告是非線性關系,你可以先建立一個邏輯回歸模型來進行分析。
一般情況下,回歸分析的方法可以滿足很大一部分的分析需求,當然你也可以了解一些數據挖掘的演算法、特徵提取的方法來優化自己的模型,獲得更好地結果。
5.數據可視化及數據報告的撰寫
分析結果最直接的結果是統計量的描述和統計量的展示。
比如我們通過數據的分布發現數據分析工資最高的5個城市,目前各種語言的流行度排行榜,近幾年北京空氣質量的變化趨勢,避孕套消費的地區分布……這些都是我們通過簡單數據分析與可視化就可以展現出的結果。
另外一些則需要深入探究內部的關系,比如影響產品質量最關鍵的幾個指標,你需要對不同指標與產品質量進行相關性分析之後才能得出正確結論。又比如你需要預測未來某個時間段的產品銷量,則需要你對歷史數據進行建模和分析,才能對未來的情況有更精準的預測。
數據分析報告不僅是分析結果的直接呈現,還是對相關情況的一個全面的認識。我們經常看到一些行業分析報告從不同角度、深入淺析地剖析各種關系。所以你需要一個講故事的邏輯,如何從一個宏觀的問題,深入、細化到問題內部的方方面面,得出令人信服的結果,這需要從實踐中不斷訓練。
數據分析的一般流程總的來說就是這幾個步驟:問題定義、數據獲取、數據預處理、數據分析與建模、數據可視化與數據報告的撰寫。