在當今自動化、云計算、算法、人工智能和大數據的世界中,很少有話題像數據科學和機器學習那樣相關。它們最近之所以受歡迎,不僅是因為它們適用于現實生活中的問題,還因為它們自然地融合了許多不同的學科,包括數學、統計學、計算機科學、工程學、科學和金融學。對于開始學習這些主題的人來說,大量的計算技術和數學思想似乎是壓倒性的。有些人可能只滿足于學習如何使用現成的方法來應用于實際情況。這本書的目的是提供一個可訪問的,但全面的數據科學和機器學習的概述。它是為任何有興趣獲得更好的理解數學和統計,支持豐富的各種想法和機器學習算法的數據科學。我們的觀點是,計算機語言來來去去,但潛在的關鍵思想和算法將永遠存在,并將形成未來發展的基礎。
數據科學為理解和處理數據提供了必要的語言和技術。它涉及數值數據的設計、收集、分析和解釋,目的是提取模式和其他有用的信息。機器學習與數據科學密切相關,涉及從數據中學習的算法和計算機資源的設計。本書的組織大致遵循數據科學項目的典型步驟:收集數據以獲得關于研究問題的信息;數據的清理、匯總和可視化;數據建模和分析;將關于模型的決策轉化為關于研究問題的決策和預測。由于這是一本以數學和統計為導向的書,大部分重點將放在建模和分析上。
我們從第一章開始,使用Python中的數據操作包、結構化、總結和可視化數據。雖然本章中涉及的材料不需要數學知識,但它為數據科學形成了一個明顯的起點:更好地理解可用數據的性質。在第二章中,我們介紹統計學習的主要成分。我們區分監督和非監督學習技術,并討論我們如何評估(非)監督學習方法的預測性能。統計學習的一個重要部分是數據建模。我們介紹了數據科學中各種有用的模型,包括線性、多元高斯和貝葉斯模型。機器學習和數據科學中的許多算法使用蒙特卡洛技術,這是第3章的主題。蒙特卡洛可以用于模擬、估計和優化。第四章討論了無監督學習,其中我們討論了密度估計、聚類和主成分分析等技術。然后我們將注意力轉向監督式學習然后,我們將在第5章中把注意力轉向監督學習,并解釋一大類回歸模型背后的思想。在其中,我們還描述了如何使用Python的statmodels包來定義和分析線性模型。第6章建立在前一章回歸的基礎上,發展了核方法和正則化的強大概念,這使得第5章的基本思想可以以優雅的方式得到擴展,使用重建核希爾伯特空間的理論。在第7章中,我們繼續進行分類任務,它也屬于監督學習框架,并考慮了各種分類方法,包括貝葉斯分類、線性和二次判別分析、k近鄰和支持向量機。在第8章,我們考慮回歸和分類的通用方法,利用樹結構。最后,在第9章,我們考慮了神經網絡和深度學習的工作方式,并表明這些學習算法有一個簡單的數學解釋。在每一章的末尾都提供了廣泛的練習。
科學用實驗來驗證關于世界的假設。統計學提供了量化這一過程的工具,并提供了將數據(實驗)與概率模型(假設)聯系起來的方法。因為世界是復雜的,我們需要復雜的模型和復雜的數據,因此需要多元統計和機器學習。具體來說,多元統計(與單變量統計相反)涉及隨機向量和隨機矩陣的方法和模型,而不僅僅是隨機單變量(標量)變量。因此,在多元統計中,我們經常使用矩陣表示法。與多元統計(傳統統計學的一個分支)密切相關的是機器學習(ML),它傳統上是計算機科學的一個分支。過去機器學習主要集中在算法上,而不是概率建模,但現在大多數機器學習方法都完全基于統計多元方法,因此這兩個領域正在收斂。多變量模型提供了一種方法來學習隨機變量組成部分之間的依賴關系和相互作用,這反過來使我們能夠得出有關興趣的潛在機制的結論(如生物或醫學)。
兩個主要任務: 無監督學習(尋找結構,聚類) 監督學習(從標記數據進行訓練,然后進行預測)
挑戰: 模型的復雜性需要適合問題和可用數據, 高維使估計和推斷困難 計算問題。
這本書的第三版繼續演示如何應用概率論,以獲得洞察到真實的,日常統計問題和情況。這種方法最終導致了對統計程序和策略的直觀理解,最常用的是實踐工程師和科學家。這本書是為統計學或概率和統計的入門課程而寫的,為工程、計算機科學、數學、統計學和自然科學的學生而寫。因此,它假定你有初等微積分知識。
第一章簡要介紹統計學,介紹它的兩個分支,描述性統計和推理統計學,并簡要介紹該學科的歷史和一些人的早期工作為今天所做的工作奠定了基礎。描述性統計的主題將在第二章中討論。描述數據集的圖和表在本章中給出,以及用于總結數據集某些關鍵屬性的數量。要想從數據中得出結論,就必須了解數據的來源。例如,通常假設數據是來自某些總體的“隨機樣本”。為了準確理解這意味著什么,以及將樣本數據屬性與總體屬性相關聯的結果是什么,有必要對概率有一些了解,這是第三章的主題。本章介紹了概率實驗的思想,解釋了事件概率的概念,并給出了概率的公理。我們的概率研究將在第四章繼續,這一章涉及隨機變量和期望的重要概念,在第五章,考慮一些在應用中經常出現的特殊類型的隨機變量。給出了二項式、泊松、超幾何、正態、均勻、伽馬、卡方、t和F等隨機變量。在第6章中,我們研究了樣本均值和樣本方差等抽樣統計量的概率分布。我們將展示如何使用一個著名的概率理論結果,即中心極限定理,來近似樣本均值的概率分布。此外,我們還介紹了關節基礎數據來自正態分布總體的重要特殊情況下的樣本均值和樣本方差的概率分布。第7章展示了如何使用數據來估計感興趣的參數。第8章介紹了統計假設檢驗的重要主題,它涉及到使用數據來檢驗特定假設的可信性。第9章討論回歸的重要課題。簡單線性回歸(包括回歸到均值、殘差分析和加權最小二乘等子主題)和多元線性回歸都被考慮在內。第10章是方差分析。考慮了單向和雙向(有或沒有交互的可能性)問題。第11章是關于擬合優度檢驗,它可以用來檢驗所提出的模型是否與數據一致。文中給出了經典的卡方擬合優度檢驗,并將其應用于列聯表的獨立性檢驗。本章的最后一節介紹了Kolmogorov-Smirnov程序,用于測試數據是否來自特定的連續概率分布。第12章討論了非參數假設檢驗,當人們無法假設潛在的分布具有某些特定的參數形式(如正態分布)時,可以使用非參數假設檢驗。第13章考慮質量控制的主題,一個關鍵的統計技術在制造和生產過程。我們考慮了各種控制圖,不僅包括休哈特控制圖,還包括基于移動平均線和累積總和的更復雜的控制圖。第14章討論與壽命試驗有關的問題。在本章中,指數分布,而不是正態分布,起著關鍵作用。
這本書涵蓋了用R總結數據的基本探索性技術。這些技術通常在正式建模開始之前應用,可以幫助開發更復雜的統計模型。探索技術對于消除或強化關于世界的潛在假設也很重要,這些假設可以通過你所擁有的數據來解決。我們將詳細介紹R中的繪圖系統以及構造信息數據圖形的一些基本原則。我們還將介紹一些用于可視化高維數據的常見多元統計技術。
這本書教你使用R來有效地可視化和探索復雜的數據集。探索性數據分析是數據科學過程的一個關鍵部分,因為它允許您尖銳地提出問題并改進建模策略。這本書是基于行業領先的約翰霍普金斯數據科學專業,最廣泛訂閱的數據科學培訓項目創建。
獲得干凈的數據來獲取見解是至關重要的,因為不進行適當的數據清理就直接進行數據分析可能會導致錯誤的結果。本書向您展示了使用Python清理和處理數據的工具和技術。首先,您將通過使用大多數數據源來熟悉數據的狀況。然后,這本書教你如何使用數據,使其變成有用的形式。您還將學習如何過濾和總結數據,以獲得深刻的見解,更好地理解什么是有意義的,什么是沒有意義的,同時還將發現如何對數據進行操作,以解決您發現的問題。
接下來,您將學習關鍵任務,如處理缺失值、驗證錯誤、刪除重復數據、監控大量數據以及處理異常值和無效日期。接下來,您將介紹如何使用監督學習和樸素貝葉斯分析來識別意外值和分類錯誤,并為探索性數據分析(EDA)生成可視化來可視化意外值。最后,您將構建在有新數據時無需修改即可重用的函數和類。
讀完這本Python書,您將掌握清理數據和診斷其中問題所需的所有關鍵技能。
這本書涵蓋了以下激動人心的特點: 了解如何從各種來源讀取和分析數據 生成數據幀、列和行屬性的摘要 過濾數據并選擇滿足給定條件的感興趣的列 處理雜亂的數據問題,包括處理日期和缺失的值 通過使用方法鏈接來提高Python pandas 的工作效率 使用可視化來獲得額外的見解并識別潛在的數據問題 增強您了解數據中正在發生什么的能力 構建用戶定義的函數和類來自動化數據清理
機器學習是關于基于數據的學習、推理和行動。這是通過構建計算機程序來完成的,這些程序可以處理數據,提取有用的信息,對未知屬性做出預測,并建議采取的行動或做出的決定。將數據分析變成機器學習的原因是,這個過程是自動化的,計算機程序是從數據中學習的。這意味著使用通用計算機程序,這些程序根據觀察到的所謂訓練數據自動調整程序的設置,以適應特定的應用程序環境。因此可以說,機器學習是一種通過實例編程的方式。機器學習的美妙之處在于,數據所代表的內容是非常隨意的,我們可以設計出適用于不同領域的廣泛實際應用的通用方法。我們通過下面的一系列例子來說明這一點。上述“通用計算機程序”是指數據的數學模型。也就是說,當我們開發和描述不同的機器學習方法時,我們使用的是數學語言。數學模型描述了與觀測數據對應的相關數量或變量與感興趣的屬性(如預測、動作等)之間的關系。因此,模型是數據的緊湊表示,以精確的數學形式捕捉我們正在研究的現象的關鍵屬性。使用哪個模型通常由機器學習工程師在查看可用數據時產生的見解和從業者對問題的總體理解來指導。在實踐中實現該方法時,將該數學模型轉換為可在計算機上執行的代碼。然而,要理解計算機程序的實際作用,了解其基礎數學也很重要。
這本書的目的是介紹監督機器學習,而不需要在該領域的任何經驗。我們既關注基礎的數學,也關注實踐方面。本書是教科書,不是參考書,也不是編程手冊。因此,它只包含一個仔細(但全面)的監督機器學習方法的選擇,而沒有編程代碼。現在有許多精彩和證據確鑿的代碼包可用,我們深信,在很好地理解數學和內部運行的方法。在這本書中,我們從統計學的角度來討論方法的統計特性。因此,它需要一些統計和概率論的知識,以及微積分和線性代數。我們希望,從頭到尾閱讀這本書將給讀者一個良好的起點,作為一個機器學習工程師工作和/或繼續在該學科的進一步研究。下圖說明了章節之間的主要依賴關系。特別是在第二、三、四章中討論了最基本的主題,我們建議讀者先閱讀這些章節,然后再閱讀后面包含更高級的主題的章節(第5-9章)。第10章超越了機器學習的監督設置,第11章關注于設計一個成功的機器學習解決方案的一些更實際的方面,比前幾章的技術性更少。最后,第十二章(由David Sumpter撰寫)討論了現代機器學習的某些倫理方面。
機器學習中復雜的統計數據讓許多開發人員感到擔憂。了解統計學可以幫助你建立強大的機器學習模型,針對給定的問題陳述進行優化。這本書將教你所有需要執行復雜的統計計算所需的機器學習。您將獲得有關監督學習、非監督學習、強化學習等統計信息。了解真實世界的例子,討論機器學習的統計方面,并熟悉它。您還將設計用于執行諸如模型、參數擬合、回歸、分類、密度收集等任務的程序。
到本書結束時,你將掌握機器學習所需的統計數據,并能夠將你的新技能應用于任何類型的行業問題。
如果您不熟悉基礎知識,則機器學習可能是一個困難的主題。借助本書,您將獲得統計編程語言R在機器學習中使用的入門原則的堅實基礎。您將從回歸等基礎知識開始,然后進入神經網絡等更高級的主題,最后深入研究像Caret這樣的軟件包在R世界中機器學習的前沿。
通過熟悉諸如理解回歸模型和分類模型之間的差異之類的主題,您將能夠解決一系列機器學習問題。知道何時使用特定模型可能意味著高精度模型與完全無用的模型之間的區別。本書提供了大量示例來構建機器學習的實用知識。
了解機器學習算法的主要部分: 認識到如何使用機器學習以簡單的方式解決問題 找出何時使用某些機器學習算法與其他算法 了解如何使用最先進的軟件包實施算法
Python中的數據科學和分析是為學術和商業環境中的數據科學和數據分析從業者設計的。其目的是通過使用Python開發的工具(如SciKit-learn、Pandas、Numpy等)向讀者介紹數據科學中使用的主要概念。鑒于Python最近在數據科學社區的流行,它的使用特別有趣。有經驗的程序員和新手都可以使用這本書。
本書的組織方式是各個章節相互獨立,這樣讀者就可以放心地使用其中的內容作為參考。這本書從過程和獲得的結果的角度討論了什么是數據科學和分析。還介紹了Python的重要特性,包括Python入門。機器學習、模式識別和人工智能的基本元素在書的其余部分使用的算法和實現的基礎上也出現在書的第一部分。
本書的第二部分介紹了使用Python、聚類技術和分類算法的回歸分析。層次聚類、決策樹和集成技術,以及降維技術和推薦系統也被探討。書的最后一部分討論了支持向量機算法和內核技巧。
數據科學庫、框架、模塊和工具包非常適合進行數據科學研究,但它們也是深入研究這一學科的好方法,不需要真正理解數據科學。在本書中,您將了解到許多最基本的數據科學工具和算法都是通過從頭實現來實現的。
如果你有數學天賦和一些編程技能,作者Joel Grus將幫助你熟悉作為數據科學核心的數學和統計,以及作為數據科學家的入門技能。如今,這些雜亂的、充斥著海量數據的數據,為一些甚至沒人想過要問的問題提供了答案。這本書為你提供了挖掘這些答案的訣竅。
參加Python速成班