序
第一版前言
資料分析是科學研究中的重要環節,隨著大數據時代的迅猛發展,其愈來愈受社會和市場的重視,是科學研究、經營管理、預測與決策等過程中必不可少的基礎工作。Python 是當今大數據時代下最為流行的程式語言工具之一,在大數據領域有著十分廣泛的應用,可以展現從資料收集和資料管理到數據分析和挖掘的完整過程,其高效的程式語言和程序執行過程,能夠完全勝任日常數據分析工作的需求。
隨著資料分析作用的日益凸顯,如何對現有資料進行整理、加工、處理和分析,以期得到所謂的結論,作為人們進行決策的依據進而展現數據的價值?如何利用現有資料對將來可能出現的資料結果或結論進行判斷或預測?不管是針對企事業單位的管理者,或決策者還是從事具體資料分析的工作人員而言,都需要進行合理資料分析流程的規劃,區分數據類型,利用適合的數據分析方法,使用方便、快捷、可靠的統計軟體作為工具,對特定資料進行分析與預測,從而洞察市場動向,觀測人心所在,把握商機,提升競爭力。而具有深厚數學背景的統計分析和資料分析方法,往往會成為相關人員繼續深入學習的門檻,甚至成為枯燥乏味的代名詞,無法體驗到資料分析成果帶來的成效。本書就是要力求降低學習難度,透過編者積累的大量真實案例和數據,主要以文字闡述替代複雜公式推導,深入淺出剖析數據分析方法的基本原理和步驟,重點在於釐清資料分析的基本思路,合理得到恰當的分析結果。在分析過程中,本書從基礎程式語言入手,主要透過使用Python 基本庫和常用工具庫的方式,用大量的實例來展示資料分析每一步驟的細節,帶領讀者走入數據分析的奇妙世界。
本書的第1 章和第2 章主要介紹Python 的基本環境、程式語言基礎和數據預處理方面的內容,具體內容包括Python 資料類型及數據結構、語句與控制流、基本庫、函數和面向對象程式語言的基礎,以及數據分析最為常用的基本分析工具庫numpy 和pandas 基礎等。第3 章和第4 章主要介紹利用Python 進行描述分析的基本過程和方法,涵蓋了各種常用資料分析圖形的繪製和解讀,以及統計量和統計表等具體內容。第5、6、7 章主要介紹利用Python 如何進行總體推斷。在大數據時代即使資料量再大,但也離不開利用統計思想對總體特徵進行推測和判斷,這些具體內容包括參數估計、假設核對總和非參數分析。第8 章主要介紹如何用Python 來分析資料之間的關係,具體涵蓋了簡單相關分析、非參數相關分析、偏相關分析、點二列相關分析以及數據挖掘中常用的關聯分析等內容。第9 章和第10 章主要介紹如何利用Python 來進行迴歸分析。迴歸模型可以說是大部分統計分析和數據挖掘方法的基礎,本書介紹的具體內容有線性迴歸、非線性迴歸、多項式迴歸、分位數迴歸、引數含有定性變量的迴歸以及因變數含有定性變數的廣義線性迴歸分析。第11 章和第12 章主要就日常資料分析中所使用的多元統計分析方法進行介紹,具體內容包括主成分分析、因素分析、列聯分析以及對應分析等。第13 章和第14 章主要介紹在Python 中進行資料採擷所使用的聚類和分類方法。內容涵蓋系統聚類、k-means 聚類、DBSCAN 聚類、距離判別和線性判別、貝葉斯判別以及數據挖掘中的k- 近鄰、決策樹、支持向量機和隨機森林等分類方法。第15 章主要介紹Python 中使用ARIMA 建模進行時間序列分析的基本方法和思路。
本書以實用為主要目的,因此上述大部分的資料分析過程均會使用現有常用且公認的結果較為合理的工具庫(如numpy、pandas、matplotlib、scipy、statsmodels、scikit-learn等)。對於本書提及的數據分析方法無法透過使用現成工具庫實行的,本書在相應章節中使用Python 編製了相應的函數或類,以供讀者在分析實際問題時使用和重複使用。讀者在重複用這些函數或類時,也可根據自身需要對它們進行進一步優化。
全書採用macOS Sierra 作業系統下的Python 和Anaconda 4.3.1 的jupyternotebook 作為分析環境,希望讀者參考本書的內容邊做邊學習。為了提高學習效果,讀者應該自行把本書全部程式碼在Python 中一字一句的推敲一遍並執行之,故本書不提供電子版程式碼。但為了提高學習效率,本書附送隨書案例的全部資料。
本書由本人在原書《實用SAS 統計分析教程》(中國統計出版社2013 年版)基礎上親自編寫完成。開放程式碼的顯著特點,大家都懂的。因此,讀者可在閱讀本書時對照原書進行實際操作,認真體會商務軟體和開放程式碼分析流程和分析結果的異同。此外,我的研究生楊磊磊和王禹提供了部分分析程式並對全書所編製的程式進行了執行驗證。儘管作者已經投入了大量時間和精力來編寫此書,但由於能力有限,如有不足之處,敬請專家與同行批評指正。
阮 敬
2017 年8 月23 日
第二版前言
為適應數據科學與大數據技術領域的飛速發展,本書第2版經過將近1年時間的廣泛教學實踐和市場檢驗,在保留第1版全部優點和特色的基礎上,第2版做了許多優化、改進和創新,具體內容如下:
1. 全書基於Python 3.6.4 對全部內容進行了更新。
2. 將第1 版的程式設計基礎部分,根據教學難度和教學要求調整為兩個章節。即,第1章強調程式設計基礎,第2章強調程式設計的進階技能,並補充了類特性、異常捕獲與容錯處理、平行計算等程式設計的進階內容。
3. 增加了〈神經網路與深度學習〉章節。深度學習是當前數據科學、人工智慧領域較為熱門的研究內容,第2版增加了對神經網路和深度學習基本思想、基本架構以及基本步驟的介紹,以及如何利用Python 提供的tensorflow 架構工具進行解決實際問題的案例,幫助讀者理解深度學習的理論基礎和基本演算法。
4. 可讀和易用性進一步提高。本書第1 版在去年9月份正式出版之後,被全國幾十所高等院校採納為基礎課、專業課和選修課的教材。經過多次與授課教師和學生的溝通交流及意見回饋,第2版針對教學過程中的特別問題進行了仔細斟酌和調整,盡力使得本書內容更加生動、深入淺出和言簡意賅。
阮 敬
2018 年7 月22 日於洛杉磯