【数据分析】Python数据分析学习路线个人总结
數據分析人人都有必要掌握一點,哪怕只是思維也行。下面探討Python數據分析需要學習的知識范疇,結合自己的經歷和理解,總結的學習大綱,有些章節帶有解釋,有些沒有。當然,關于學習范疇,可能每個人的理解都不太一樣,以下僅供參考。
1 數據分析思維
數據分析屬于分析思維的一個子類,有專門的數據方法論。只有先養成正確的分析思維,才能使用好數據。
大多數人的思維方式都依賴于生活和經驗做出直覺性的判斷,最直觀的體現是,在數據和業務分析中有時無從下手。
什么是好的分析思維?
用兩張在網絡上流傳甚廣的圖片說明
思維模式(圖片來源網絡)
對應以下兩種思維:
我們12月的銷售額度下降,我想是因為年終的影響,我問了幾個銷售員,他們都說年終生意不太好做,各家都收緊了財務預算,談下的幾家費用也比以前有縮水。我對他們進行了電話拜訪,廠家都說經濟不景氣,希望我們價格方面再放寬點。
我們12月的銷售額度下降,低于去年同期和今年平均值,可以排除掉大環境的因素。其中A地區下降幅度最大,間接影響了整體銷售額。通過調查發現,A地區的市場因為競爭對手涌入,進行了低價銷售策略。除此之外,B地區的經濟發展低于預期發展,企業縮減投入。
第一個分析思維是依賴經驗和直覺的線性思維,第二個分析思維則注重邏輯推導,屬于結構化的思維。兩種思維往往會導致不同的結果。
1.1 金子塔原理
麥肯錫思維中很重要的一條原理叫做金字塔原理,它的核心是層次化思考、邏輯化思考、結構化思考。
1.1.1 什么是金字塔?
任何一件事情都有一個中心論點,中心論點可以劃分成3~7個分論點,分論點又可以由3~7個論據支撐。層層拓展,這個結構由上至下呈金字塔狀。
1.1.2 結構化思維
金字塔(圖片來源網絡)1.1.3 核心法則:MECE
金字塔原理有一個核心法則MECE,全稱 Mutually Exclusive Collectively Exhaustive,論點相互獨立,盡可能多的列舉。
1.1.4 假設先行
首先得有一個思考作為開始。這是什么意思?因為金字塔是從上而下,需要有一個中心論點,也就是塔尖。我們可以先提出一個問題,比如此產品的核心功能是某某功能嗎?
1.2 二八法則
1.2.1 20%的分析過程決定80%的分析結果
1.2.2 抓住關鍵因素
以上節選的兩個分析思維,都能在麥肯錫問題分析與解決技巧中找到原型,感興趣的可查看下面這本書。
2 數據獲取
2.1 大數據平臺提取
各個公司都可能有自己專屬的大數據平臺,進入公司要首先掌握如何從這上面拿去我們需要的業務數據
2.2 第三方服務接口
合作企業或公司購買的服務接口,我們可以直接調用拿到數據。
2.3 開源公開數據集
推薦一些數據集
2.4 爬蟲爬取網站數據
python的常用包:
requests
json
BeautifulSoup
requests庫就是用來進行網絡請求的,說白了就是模擬瀏覽器來獲取資源。
由于我們采集的是api接口,它的格式為json,所以要用到json庫來解析。
BeautifulSoup是用來解析html文檔的,可以很方便的幫我們獲取指定div的內容。
3 數據存儲
3.1 SQL分組,聚合,多表join操作
groupby, aggregate,join操作
join操作可參考 Python與算法社區 公眾號
3.2 大數據平臺Hadoop
大數據架構,分布式存儲,詳細自行查閱
3.3 Mysql
這個大家應該都不陌生
3.4 hive 拉鏈表
拉鏈表的知識大家需要好好理解體會,dp 的狀態 active 和 history
4 數據清理知識
4.1 理解數據背后的業務,千萬不要忽視!
我們在拿到需要分析的數據后,千萬不要急于立刻開始做回歸、分類、聚類分析。
第一步應該是認真理解業務數據,可以試著理解去每個特征,觀察每個特征,理解它們對結果的影響程度。
然后,慢慢研究多個特征組合后,它們對結果的影響。
4.2 明確各個特征的類型
如果這些數據類型不是算法部分期望的數據類型,你還得想辦法編碼成想要的。比如常見的數據自增列 id 這類數據,是否有必要放到你的算法模型中,因為這類數字很可能被當作數字讀入。
某些列的取值類型,雖然已經是數字了,它們的取值大小表示什么含義你也要仔細捉摸。因為,數字的相近相鄰,并不一定代表另一種層面的相鄰。
4.3 找出異常數據
統計中國家庭人均收入時,如果源數據里面,有王建林,馬云等這種富豪,那么,人均收入的均值就會受到極大的影響,這個時候最好,繪制箱形圖,看一看百分位數。
4.4 處理缺失值
現實生產環境中,拿到的數據恰好完整無損、沒有任何缺失數據的概率,和買彩票中將的概率差不多。
數據缺失的原因太多了,業務系統版本迭代, 之前的某些字段不再使用了,自然它們的取值就變為 null 了;再或者,壓根某些數據字段在抽樣周期里,就是沒有寫入數據……
4.5 頭疼的數據不均衡問題
理論和實際總是有差距的,理論上很多算法都存在一個基本假設,即數據分布總是均勻的。這個美好的假設,在實際中,真的存在嗎?很可能不是!
算法基于不均衡的數據學習出來的模型,在實際的預測集上,效果往往差于訓練集上的效果,這是因為實際數據往往分布得很不均勻,這時候就要考慮怎么解決這些問題。下面是一本數據清洗不錯的書籍:
5 Python核心知識
5.1 理解Python的解釋性
Python 是解釋型語言,對于 Python 剛剛入門的小伙伴,可能對解釋性有些疑惑。不過,沒關系,我們可以通過大家已經熟悉的編譯型語言,來幫助我們理解 Python 的解釋性。
編譯型語言,如 C++、Java,它們會在編譯階段做類型匹配檢查等,因此,數據類型不匹配導致的編譯錯誤,在編譯階段就會被檢查出來,例如:
Intger a = 0; Double b = 0.0; a = b; // Double類型的變量 b 試圖賦值給 Integer 型的變量 a, 編譯報錯// 因為 Integer 類型 和 Double 類型 不存在繼承關系,// 類型不能互轉但是,Python 就不會在編譯階段做類型匹配檢查,比如,Python 實現上面的幾行語句,會這樣寫:
a = 0 # 不做任何類型聲明 b = 0. a = b # 這種賦值,Python 會有問題嗎?答案是不會的。此處就體現了 Python 的解釋特性,當我們把 0 賦值給 a 時,Python 解釋器會把它 a 解釋為 int 型,可以使用內置函數 type(variable) 顯示地檢查 variable 的類型:
In [70]: type(a) Out[70]: int In [69]: type(b) Out[69]: float In [71]: a = b # 在把 float 型 b 賦值給 a 后, # a 就被解釋為float In [72]: type(a) Out[72]: float在把 float 型 b 賦值給 a 后, a 就被解釋為 float.
5.2 list,dict,tuple,set
深拷貝和淺拷貝的區別
5.3 Python列表生成式
如何靈活使用
5.4 Python函數式編程
閉包問題
5.5 位置參數和關鍵字參數
如果介紹 Python 入門,不介紹函數的位置參數 ( positional argument ) 和關鍵字參數( keyword argument ) ,總是感覺缺少點什么,它們在 Python 函數中到處可見,理解和使用它們,為我們日后深入 Python 打下堅實的根基。
6 Excel數據分析
6.1 Excel處理10萬條以內數據
6.2 以SUM函數為首的求和家族
6.3 以VLOOKUP函數為首的查找家族
6.4 以IF函數為首的邏輯函數家族
大家自行查閱學習
7 Pandas數據預處理
7.1 基于Python的向量化增強
7.2 必須掌握的傳播機制
廣播發生的條件
7.3 一維Series和二維DataFrame
7.4 Pandas中的20個統計學函數
20個統計學函數7.5 Pandas三個函數搞定缺失值
7.6 1個函數搞定數據透視
8 數據建模分析
8.1 統計學基礎知識
首先,入門數據分析需要必備一些統計學的基本知識,在這里我們簡單列舉幾個入門級的重要概念。概率,平均值,中位數,眾數,四分位數,期望,標準差,方差。在這些基本概念上,又衍生出的很多重要概念,比如協方差,相關系數等。
這一些列常用的統計指標,都在強大的數據分析包 Pandas 中實現了,非常方便。
8.2 統計量描述
說統計學是一種基于事實的演繹學問,它是嚴謹的,可以給出確切解釋的。
不過,機器學習就不一樣了,它是一門歸納思想的學問,比如深度學習得出的模型,你就很難解釋其中的具體參數為什么取值為某某某。它的應用在于可以提供一種預測,給我們未來提供一種建設性的指導。
數據分析師需要了解機器學習的基本理論、常見的那十幾種算法,這樣對于我們做回歸、分類、聚類分析,都是不可缺少的。
8.3 機器學習回歸分析
三 個假定是?
如何建立線性回歸模型?
最大似然估計求參數?
梯度下降求解優化問題?
手寫不調包實現的 5 個算子
手寫不調包實現的整體算法框架
8.4 基本的分類、聚類算法
高斯混合模型:聚類原理分析
高斯混合模型:聚類求解
高斯混合模型:求解完整代碼
高斯混合模型:不調包多維數據聚類分析
K-Means算法
8.5 特征工程提高分析精度
一般來說,特征工程大體上可以分為三個方面,一是特征構造,二是特征選擇,三是特征生成。
9 數據可視化
9.1 必備的繪圖原理知識
拿使用較多的 matplotlib 為列,整個圖像為一個Figure?對象,在?Figure?對象中可以包含一個或多個?Axes對象,每個Axes對象都是一個擁有自己坐標系統的繪圖區域。
Axes?由?xaxis,?yaxis,?title,?data?構成,xaxis?由坐標軸的線 ,tick以及label構成。
9.2 matplotlib繪圖
9.3 繪圖必備100行代碼
參考:關于數據分析的學習路線,我準備寫一篇 2 萬+的 chat
10 數據挖掘分析
10.1 正則表達式
學習正則表達式語法,主要就是學習元字符以及它們在正則表達式上下文中的行為。常見的元字符比如普通字符、標準字符、特殊字符、限定字符(又叫量詞)、定位字符(也叫邊界字符)。
10.2 決策樹
決策樹
對決策樹剪枝
sklearn分類和回歸
提煉出分類器算法
10.3 貝葉斯方法
樸素貝葉斯分類器:例子解釋
樸素貝葉斯分類:拉普拉斯修正
單詞拼寫糾正器python實現
半樸素貝葉斯分類器
10.4 集成學習方法
XGBoost思想
XGBoost模型構造
XGBoost 安裝及實戰應用? ?
10.5 NLP
一文了解自然語言處理的每個范疇用到的核心技術,難點和熱點(1)
NLP入門:CNN,RNN應用文本分類,個性化搜索,蘋果和喬布斯關系抽取(2)
往期精彩回顧適合初學者入門人工智能的路線及資料下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載本站qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【数据分析】Python数据分析学习路线个人总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习】算法模型自动超参数优化方法
- 下一篇: mybatis xml 参数 使用