如何成为python 数据分析师_如何成为一名真正的数据分析师或者数据工程师
一.入門:高屋建瓴
數據分析的坑很大,一開始走上這條路,就要明確基本的方向,依托于核心的思想,不然只會越走越偏,最后覺得山太高水太深,不了了之。
1.數據與數據分析
數據其實就是對事物特征的定性指稱以及量化描述,比如一個人的身份證號,年齡,收入,身高等就構成了一組數據:{id:001,age:45,income:10000,height:176}——如果把很多人的這些數據匯成表,便構成了“結構化”(也就是比較規整一致)的“數據空間”。
但是呢,有一些或者大部分的數據都不是規整的,也就是分布比較雜亂或者不是按照我們想要的那樣分布的(比如一個網頁中的文本數據分布),稱之為“非結構化”的數據空間。
數據分析的本質是什么?那就是——將這些結構化或者非結構化的數據,映射到指定格式的數據空間里面,然后進行分析——數據分析的基礎就是數據空間的映射。
這句話說的比較繞,但是卻非常深刻,它告訴我們,數據分析的一個基礎(在實踐中也是最重要)的一件事情就是尋找合適的數據空間映射方案——某種程度上就是所謂的數據清洗。
2.對于一些工具的看法
沿襲上文,工具則可以分為兩種,一是基礎性的excel,spss,sas等數據分析軟件以及許多數據庫管理工具,它們主要處理的是結構化的數據,也就是給你把數據弄成了表的規整數據(當然,這些數據很多時候也需要清洗,不過已經不涉及數據空間映射這個問題了);二是編程語言,包括python,R,Java,Ruby等,這些語言工具主要是處理數據空間映射和清洗工作的,其中,比較常用的是python和R,前者由于其可擴充性,已經在大多數情況下優于后者了。
3.學習:從天而降
所謂“從天而降”指的是從一個比較高的地方下降來學習的方法,好比是拿著一張總體的地圖去探索數據分析與挖掘的世界。推薦閱讀:《數據科學實戰》。
其次,請注意一點:python學習,對于沒有任何計算機基礎的人來說,基本上是開頭容易、越往后面越難!(python一開始的類似自然語言的結構很友好,但你到了函數與面向對象的學習的時候,還是必須明確引用變量的變化(也就是數據如何在內存中流動)以及作用域的動態變化等對入門者不友好的問題。)
在這種情況下,《head first python》根本不適合,不要用它學習python!
我的建議是,花時間學習一下計算機的基本原理,然后是C語言,Java等,然后再學python,不然你到后面完全是知其然而不知其所以然!
推薦閱讀:《計算機科學概論(第11版》
以及:《瘋狂Java講義》(這本書雖然講的是java,但對數據在內存中的流轉也有講,可以作為參考,理解程序的運行。)
最后才是:《Python基礎教程(第2版?修訂版)》
然后可以看看入門的統計學教材:《深入淺出統計學》(很快就能看完,我當時半天多一點就看完了。)
以及入門與深入理解數據庫原理:《MySQL必知必會》+《數據庫系統概念》
有了技術基礎了,再看看《R語言編程藝術》
另外,入門者不要選擇python3.x,選擇python2.7吧。為啥?因為很多重要的模塊比如pandas還有網上的許多資料現在還是最多支持到2.7的,你選3.X對于入門那是舍近求遠。
最后,可以使用《利用Python進行數據分析》將所有知識串接起來,感受pandas以及scipy,numpy中的數據計算是如何體現數據空間映射這個深刻概念的。
二.中階:理論
中階主要是理論學習以及一些比較復雜的應用操作。
1.理論基礎:書籍
良好的數學基礎是進一步學習的支撐條件。
以下是推薦閱讀的書目:
1.概率論與數理統計:《概率論與數理統計》,進一步學習概率與統計;
2.高等代數:《高等代數簡明教程(上冊)》,“數據空間的映射”的思想就來自于高等代數;
3.最優化:《最優化理論與方法》,參考書,中階不要細讀。
4.數據挖掘:《數據挖掘導論》,偏數學,《數據挖掘》,偏結構化的數據庫;
5.信息檢索領域入門:《信息檢索導論》
6.統計學習理論快速俯瞰:《統計學習方法》
7.實戰之于python:《集體智慧編程》+《機器學習實戰》
8.實戰之于Mahout平臺:《Mahout實戰》
2.實戰:利用數據庫與數據api,實戰學習
(1)淘寶上以及很多百度提供的一些數據庫:API Store_為開發者提供最全面的API服務等,都可以下載到數據進行處理,有一些經典的研究數據庫,主要是一些大學構建的,也可以用來訓練模型;
(2).學習寫網絡爬蟲,基于python,爬取文本數據進行分析,其中,文本數據分析可能涉及到中文的自然語言處理,比較麻煩,有一些模塊可以直接使用(比如jieba),如果覺得不理想,可以嘗試爬取英文頁面。另:寫爬蟲必須首先理解網頁的數據空間,建議閱讀:《Head First HTML與CSS、XHTML(中文版)》;
(3).苦練清洗數據的基本功——因為大多數數據工程師的主要工作都在于此,并且在清洗的過程中,深刻理解數據空間的映射。另,清洗數據必備技能:正則表達式。建議閱讀:《正則表達式必知必會》;
(4).混合編程與數據可視化:可以嘗試以python為主的混合編程(python+R)以及數據可視化,建議閱讀《ggplot2》
三.高階:回歸、遠行、優化與萬法歸宗
1.回歸
總的來說,數據挖掘、機器學習相關的工作,看著很新,其實只是很久之前的理論知識的應用罷了,在實戰領域,并沒有多少新的東西。
所以,從技術上講,我們需要回歸到那些最內核的東西。
什么是最內核的東西,那就是:算法與數據結構。
知乎上有一些言論,說算法與數據結構一般情況下程序員是用不到的,這句話對于一般的寫系統的程序員確實受用,但是對機器學習、數據挖掘的程序員,卻恰恰相反:我們的主要工作就是在搞算法和數據結構。
比如貝葉斯網絡、人工神經網絡,本質上其實還是基于圖的算法的應用罷了。
推薦一本書,比《算法導論》好讀:《算法(第4版)》
2.遠行
所謂遠行,就是從學習的象牙塔里面走出來,走向實用或者特殊領域,比如:金融量化分析。
傳統的投資經理,做的專業投資,本質上根根結底是什么?那就是兩個字:分散。
所謂分散,說大白話就是“把雞蛋放在多個籃子里面”,但至于怎么放,放多少,都是非常復雜的,傳統的手段包括建立馬科維茲模型與指數模型來作為分散的參考模型。
機器學習也是可以來做分散的,并且,知名的文藝復興技術公司做的“最大熵模型”比傳統的那兩大模型還要好,還能夠持續跑贏大盤。
如果你對機器學習、數據挖掘相關理論有深刻理解的話,你會發現一個事實:分散本質上就是在尋找有限條件下的最大組合熵!最大熵模型之所以有效就是因為它使用了超級大的數據量作為基準,得到了相對于傳統分散模型更高的熵。
這個要講很多,確實也比較高階,我就點到為止,將來再細談。
3.優化
優化主要是對python執行效率的優化——要知道,很多時候,量化分析對時間的要求非常嚴格,差之毫厘,損失成百上千萬。
這個時候,就需要了解如何優化python。
知道嗎?python是用C寫出來的,如果你優化的好,你的python可能比C還要快!
優化問題本質上是一個局部最優與全局最優權衡的問題,有空細講。
優化的另外一個問題是數值計算,包括矩陣的分塊計算、并行計算,MapReduce對大量數據的處理等,這也是比較復雜的,有空細講。
4.萬法歸宗:信息論
數據處理的的最高境界,其實是對信息論的深刻理解。
算法優化,大量問題都是把指數問題變為對數問題,其實根本原理是信息論;
量化分析,買入賣出的博弈,每一次交易如何暴露出信息的?
投資組合,如何在限制條件內產生最大熵?
文本挖掘、數據壓縮,隱馬爾科夫鏈,如何用最少的信息映射原空間?
。。。。(待補充)
推薦閱讀:《信息論基礎》
文章由PM28網編輯,作者:海閣,如若轉載,請注明出處:http://www.pm28.com/322.html歡迎投稿
總結
以上是生活随笔為你收集整理的如何成为python 数据分析师_如何成为一名真正的数据分析师或者数据工程师的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sk-ll护肤品多少钱一套
- 下一篇: python 64位程序 打包用于32位