本書通過有監督、無監督和高級學習技術提供了對機器學習算法的概念理解。本書包括四個部分:基礎、監督學習、非監督學習和高級學習。第一部分提供了基礎材料、背景和簡單的機器學習算法,為學習機器學習算法做準備。第二部分和第三部分提供了對監督學習算法和作為核心部分的無監督學習算法的理解。最后一部分提供了先進的機器學習算法:集成學習、半監督學習、時序學習和強化學習。
提供兩種學習算法的全面覆蓋: 監督和無監督學習; 概述用于解決分類、回歸和聚類的計算范例; 具有構建新一代機器學習的基本技術。
這本書是關于機器學習的概念,理論和算法。在第一部分中,我們通過探索學習理論、評估方案和簡單的機器學習算法,提供了關于機器學習的基本知識。在第二和第三部分中,我們將監督學習算法描述為分類和回歸任務的方法,而無監督學習算法描述為聚類任務的方法。在第四部分,我們討論了特殊類型的學習算法,并將監督算法和非監督算法的混合作為進一步的研究。讀者需要線性代數和向量微積分的基本知識來理解機器學習算法,其中輸入數據總是以數字向量的形式給出。
本 章 將 介 紹一些基本概念,通過它們來定義和區分常用的機器學習方法。你將學到下列知識:
□ 機器學習的起源及其實際應用。 □ 計算機如何將數據轉換為知識和行動。 □ 如何為數據匹配機器學習算法。
機 器 學 習 領 域 提 供 了 把 數 據 轉 換 成 可 行 動 的 知 識 的 算 法 集 合 。繼 續 閱 讀 可 以 了 解 使 用 R將機器學習應用到現實世界中的問題是多么容易。
本書提供了分布式優化、博弈和學習的基本理論。它包括那些直接從事優化工作的人,以及許多其他問題,如時變拓撲、通信延遲、等式或不等式約束,以及隨機投影。本書適用于在動態經濟調度、需求響應管理和智能電網插電式混合動力汽車路由等領域使用分布式優化、博弈和學習理論的研究人員和工程師。
無線技術和計算能力的進步使得理論、模型和工具的發展成為必要,以應對網絡上大規模控制和優化問題帶來的新挑戰。經典的優化方法是在所有問題數據都可用于集中式服務器的前提下工作的。然而,這一前提不適用于由電力系統、傳感器網絡、智能建筑和智能制造等應用驅動的分布式環境中的大型網絡系統。在這樣的環境中,每個節點(agent)根據自己的數據(信息)以及通過底層通信網絡從相鄰的agent接收到的信息進行本地計算,從而分布式地解決大規模控制和優化問題。最終,集中式優化方法必然會走向衰落,從而產生一種新的分布式優化類型,它考慮了多個agent之間的有效協調,即所有agent共同協作,使一個局部目標函數之和的全局函數最小化。
本書研究了近年來分布式優化問題中的幾個標準熱點問題,如無約束優化、有約束優化、分布式博弈和分布式/分散學習等。為了強調分布式優化在這些主題中的作用,我們將重點放在一個簡單的原始(次)梯度方法上,但我們也提供了網絡中其他分布式優化方法的概述。介紹了分布式優化框架在電力系統控制中的應用。這本書自然主要包括三個部分。第一部分討論了分布式優化算法理論,共分為四章:(1)多智能體時滯網絡中的協同分布式優化;(2)時變拓撲多智能體系統的約束一致性;(3)不等式約束和隨機投影下的分布式優化;(4)隨機矩陣有向圖上的加速分布優化。第二部分作為過渡,研究了分布式優化算法理論及其在智能電網動態經濟調度問題中的應用,包括兩章:(5)時變有向圖約束優化的線性收斂性;(6)時變有向圖上經濟調度的隨機梯度推動。第三部分對分布式優化、博弈和學習算法理論進行了分析和綜合,本部分所有算法都是針對智能電網系統內的特定案例場景設計的。本部分共分三章:(7)智能微電網能源交易博弈中的強化學習;(8)不完全信息約束博弈的強化學習;(9)基于擁塞博弈的插電式混合動力汽車路徑選擇強化學習。其中,給出了仿真結果和實際應用實例,以說明前面提出的優化算法、博弈算法和學習算法的有效性和實用性。
在過去的二十年里,機器學習已經成為信息技術的支柱之一,并因此成為我們生活中相當核心(盡管通常是隱藏的)的一部分。隨著可用數據量的不斷增加,我們有充分的理由相信,智能數據分析將變得更加普遍,成為技術進步的必要因素。本章的目的是為讀者提供一個廣泛的應用的概述,這些應用的核心是一個機器學習問題,并給這一大堆問題帶來一定程度的秩序。在那之后,我們將討論一些來自統計和概率論的基本工具,因為它們構成了許多機器學習問題必須被表述成易于解決的語言。最后,我們將概述一套相當基本但有效的算法來解決一個重要的問題,即分類。更復雜的工具,更普遍的問題的討論和詳細的分析將在本書后面的部分。
學習使用Python分析數據和預測結果的更簡單和更有效的方法
Python機器學習教程展示了通過關注兩個核心機器學習算法家族來成功分析數據,本書能夠提供工作機制的完整描述,以及使用特定的、可破解的代碼來說明機制的示例。算法用簡單的術語解釋,沒有復雜的數學,并使用Python應用,指導算法選擇,數據準備,并在實踐中使用訓練過的模型。您將學習一套核心的Python編程技術,各種構建預測模型的方法,以及如何測量每個模型的性能,以確保使用正確的模型。關于線性回歸和集成方法的章節深入研究了每種算法,你可以使用書中的示例代碼來開發你自己的數據分析解決方案。
機器學習算法是數據分析和可視化的核心。在過去,這些方法需要深厚的數學和統計學背景,通常需要結合專門的R編程語言。這本書演示了機器學習可以如何實現使用更廣泛的使用和可訪問的Python編程語言。
使用線性和集成算法族預測結果
建立可以解決一系列簡單和復雜問題的預測模型
使用Python應用核心機器學習算法
直接使用示例代碼構建自定義解決方案
機器學習不需要復雜和高度專業化。Python使用了更簡單、有效和經過良好測試的方法,使這項技術更容易為更廣泛的受眾所接受。Python中的機器學習將向您展示如何做到這一點,而不需要廣泛的數學或統計背景。
機器學習和人工神經網絡無處不在,它們對我們日常生活的影響比我們可能意識到的還要深遠。這堂課是專門針對機器學習在不同科學領域的使用的介紹。在科學研究中,我們看到機器學習的應用越來越多,反映了工業技術的發展。這樣一來,機器學習就成為了精確科學的通用新工具,與微積分、傳統統計學和數值模擬等方法并行其道。這就提出了一個問題,在圖2所示的科學工作流程中,這些新方法是最好的。
此外,一旦確定了一項特定的任務,將機器學習應用到科學領域就會面臨非常具體的挑戰: (i) 科學數據通常具有非常特定的結構,例如晶體圖像中近乎完美的周期性; (ii) 通常情況下,我們對應該反映在機器學習分析中的數據相關性有特定的知識; (iii) 我們想要了解為什么一個特定的算法會起作用,尋求對自然機制和法則的基本見解; (iv) 在科學領域,我們習慣于算法和定律提供確定性答案,而機器學習本質上是概率性的——不存在絕對的確定性。盡管如此,定量精度在許多科學領域是至關重要的,因此是機器學習方法的一個關鍵基準。
這堂課是為科學領域的科學家和學生介紹基本機器學習算法。我們將涵蓋:
機器學習領域充滿了行話,對于不了解機器學習的人來說,這些行話掩蓋了機器學習方法的核心。作為一個不斷變化的領域,新的術語正在以快速的速度被引入。我們的目標是通過精確的數學公式和簡潔的公式來切入俚語,為那些了解微積分和線性代數的人揭開機器學習概念的神秘面紗。
如上所述,數據是本節課所討論的大多數機器學習方法的核心。由于原始數據在很多情況下非常復雜和高維,首先更好地理解數據并降低它們的維數往往是至關重要的。下一節,第2節將討論在轉向神經網絡的重型機器之前可以使用的簡單算法。
我們最關注的機器學習算法,一般可以分為兩類算法,即判別算法和生成算法,如圖3所示。判別任務的例子包括分類問題,如上述數字分類或分類為固體,液體和氣相給出一些實驗觀測。同樣,回歸,也就是估計變量之間的關系,也是一個判別問題。更具體地說,我們在給定一些輸入數據x的情況下,嘗試近似某個變量y (label)的條件概率分布P(y|x)。由于這些任務中的大部分數據都是以輸入數據和目標數據的形式提供的,這些算法通常采用監督學習。判別算法最直接地適用于科學,我們將在第3和第4節中討論它們。
人工智能的前景可能引發科學領域的不合理預期。畢竟,科學知識的產生是最復雜的智力過程之一。計算機算法肯定還遠沒有達到那樣復雜的水平,而且在不久的將來也不會獨立地制定新的自然法則。盡管如此,研究人員研究了機器學習如何幫助科學工作流程的各個部分(圖2)。雖然制定牛頓經典力學定律所需的抽象類型似乎難以置信地復雜,但神經網絡非常擅長隱式知識表示。然而,要準確地理解它們是如何完成某些任務的,并不是一件容易的事情。我們將在第6節討論這個可解釋的問題。
第三類算法被稱為強化學習(reinforcement learning),它不完全符合近似統計模型的框架. 機器學習的成功很大程度上與科學家使用適當算法的經驗有關。因此,我們強烈建議認真解決伴隨練習,并充分利用練習課程。
通過使用Python開發用例,全面了解監督學習算法您將學習監督學習概念、Python代碼、數據集、最佳實踐、常見問題和缺陷的解決方案,以及實現結構化、文本和圖像數據集算法的實踐知識。
你將從介紹機器學習開始,強調監督學習、半監督學習和非監督學習之間的區別。在接下來的章節中,你將學習回歸和分類問題,它們背后的數學,像線性回歸、邏輯回歸、決策樹、KNN、樸素貝葉斯等算法,以及像隨機森林、支持向量機、梯度增強和神經網絡等高級算法。提供了所有算法的Python實現。最后,您將得到一個端到端模型開發流程,包括模型的部署和維護。在閱讀了Python的監督學習之后,你將會對監督學習和它的實際實現有一個廣泛的理解,并且能夠以一種創新的方式運行代碼和擴展它。
你將學習:
這本書是給誰的
本書建立在基本的Python教程的基礎上,解釋了許多沒有被常規覆蓋的Python語言特性:從通過利用入口點作為微服務扮演雙重角色的可重用控制臺腳本,到使用asyncio高效地整理大量來源的數據。通過這種方式,它涵蓋了基于類型提示的linting、低開銷測試和其他自動質量檢查,以演示一個健壯的實際開發過程。
Python的一些功能強大的方面通常用一些設計的示例來描述,這些示例僅作為一個獨立示例來解釋該特性。通過遵循從原型到生產質量的真實應用程序示例的設計和構建,您不僅將看到各種功能是如何工作的,而且還將看到它們如何作為更大的系統設計過程的一部分進行集成。此外,您還將受益于一些有用的附加說明和庫建議,它們是Python會議上問答會議的主要內容,也是討論現代Python最佳實踐和技術的主要內容,以便更好地生成易于維護的清晰代碼。
高級Python開發是為已經能用Python編寫簡單程序的開發人員準備的,這些開發人員希望了解什么時候使用新的和高級語言特性是合適的,并且能夠以一種自信的方式這樣做。它對于希望升級到更高級別的開發人員和迄今為止使用過較老版本Python的非常有經驗的開發人員特別有用。
你將學習
這本書是給誰的 -已經有Python經驗的中高級開發人員。
這本書來自統計學習課程,這是一門統計機器學習的入門課程,面向具有一些微積分、線性代數和統計學背景的學生。這門課程的重點是監督學習:分類和回歸。本課程將涵蓋機器學習和數據科學中使用的一系列方法,包括:
這些方法將在整個課程中被研究并應用于來自各種應用的真實數據。課程還涵蓋了一些重要的實際問題,如交叉驗證、模型選擇和偏方差權衡。課程包括理論(例如,推導和證明)以及實踐(特別是實驗室和小型項目)。實際部分將使用Python實現。
這本教科書通過提供實用的建議,使用直接的例子,并提供相關應用的引人入勝的討論,以一種容易理解的方式介紹了基本的機器學習概念。主要的主題包括貝葉斯分類器,最近鄰分類器,線性和多項式分類器,決策樹,神經網絡,和支持向量機。后面的章節展示了如何通過“推進”的方式結合這些簡單的工具,如何在更復雜的領域中利用它們,以及如何處理各種高級的實際問題。有一章專門介紹流行的遺傳算法。
這個修訂的版本包含關于工業中機器學習的實用應用的關鍵主題的三個全新的章節。這些章節研究了多標簽域,無監督學習和它在深度學習中的使用,以及歸納邏輯編程的邏輯方法。許多章節已經被擴展,并且材料的呈現已經被增強。這本書包含了許多新的練習,許多解決的例子,深入的實驗,和獨立工作的計算機作業。
//link.springer.com/book/10.1007/978-3-319-63913-0#about