産品特色
編輯推薦
用火的Python語言、通過各種各樣的機器學習算法來解決實際問題! 書中介紹的主要問題如下。 - 探索分類分析算法並將其應用於收入等級評估問題 - 使用預測建模並將其應用到實際問題中 - 瞭解如何使用無監督學習來執行市場細分 - 探索數據可視化技術以多種方式與數據進行交互 - 瞭解如何構建推薦引擎 - 理解如何與文本數據交互並構建模型來分析它 - 使用隱馬爾科夫模型來研究語音數據並識彆語音
內容簡介
在如今這個處處以數據驅動的世界中,機器學習正變得越來越大眾化。它已經被廣泛地應用於不同領域,如搜索引擎、機器人、無人駕駛汽車等。本書首先通過實用的案例介紹機器學習的基礎知識,然後介紹一些稍微復雜的機器學習算法,例如支持嚮量機、極-端隨機森林、隱馬爾可夫模型、條件隨機場、深度神經網絡,等等。
作者簡介
Prateek Joshi 人工智能專傢,重點關注基於內容的分析和深度學習,曾在英偉達、微軟研究院、高通公司以及矽榖的幾傢早期創業公司任職。個人博客地址: www.prateekj.com
目錄
第1 章 監督學習 ............................................. 1
1.1 簡介 ................................................. 1
1.2 數據預處理技術 ....................................... 2
1.2.1 準備工作 ....................................... 2
1.2.2 詳細步驟 ....................................... 2
1.3 標記編碼方法 ........................................... 4
1.4 創建綫性迴歸器 ....................................... 6
1.4.1 準備工作 ....................................... 6
1.4.2 詳細步驟 ....................................... 7
1.5 計算迴歸準確性 ....................................... 9
1.5.1 準備工作 ....................................... 9
1.5.2 詳細步驟 ...................................... 10
1.6 保存模型數據 .......................................... 10
1.7 創建嶺迴歸器 .......................................... 11
1.7.1 準備工作 ...................................... 11
1.7.2 詳細步驟 ...................................... 12
1.8 創建多項式迴歸器 .................................. 13
1.8.1 準備工作 ...................................... 13
1.8.2 詳細步驟 ...................................... 14
1.9 估算房屋價格 .......................................... 15
1.9.1 準備工作 ...................................... 15
1.9.2 詳細步驟 ...................................... 16
1.10 計算特徵的相對重要性 ......................... 17
1.11 評估共享單車的需求分布 ..................... 19
1.11.1 準備工作 .................................. 19
1.11.2 詳細步驟 .................................. 19
1.11.3 更多內容 .................................. 21
第2 章 創建分類器 ........................................ 24
2.1 簡介 ........................................... 24
2.2 建立簡單分類器 ...................................... 25
2.2.1 詳細步驟 ...................................... 25
2.2.2 更多內容 ...................................... 27
2.3 建立邏輯迴歸分類器 .............................. 27
2.4 建立樸素貝葉斯分類器 ........................... 31
2.5 將數據集分割成訓練集和測試集 ........... 32
2.6 用交叉驗證檢驗模型準確性 ................... 33
2.6.1 準備工作 ...................................... 34
2.6.2 詳細步驟 ...................................... 34
2.7 混淆矩陣可視化 ...................................... 35
2.8 提取性能報告 .......................................... 37
2.9 根據汽車特徵評估質量 ........................... 38
2.9.1 準備工作 ...................................... 38
2.9.2 詳細步驟 ...................................... 38
2.10 生成驗證麯綫 ........................................ 40
2.11 生成學習麯綫 ........................................ 43
2.12 估算收入階層 ........................................ 45
第3 章 預測建模 ............................................ 48
3.1 簡介 ............................................ 48
3.2 用SVM 建立綫性分類器 ........................ 49
3.2.1 準備工作 ...................................... 49
3.2.2 詳細步驟 ...................................... 50
3.3 用SVM 建立非綫性分類器 .................... 53
3.4 解決類型數量不平衡問題 ....................... 55
3.5 提取置信度 .............................................. 58
3.6 尋找最優超參數 ...................................... 60
3.7 建立事件預測器 ...................................... 62
3.7.1 準備工作 ...................................... 62
3.7.2 詳細步驟 ...................................... 62
3.8 估算交通流量 .......................................... 64
3.8.1 準備工作 ...................................... 64
3.8.2 詳細步驟 ...................................... 64
第4 章 無監督學習——聚類....................... 67
4.1 簡介 ....................................... 67
4.2 用k-means 算法聚類數據 ....................... 67
4.3 用矢量量化壓縮圖片 .............................. 70
4.4 建立均值漂移聚類模型 ........................... 74
4.5 用凝聚層次聚類進行數據分組 ............... 76
4.6 評價聚類算法的聚類效果 ....................... 79
4.7 用DBSCAN 算法自動估算集群數量 ..... 82
4.8 探索股票數據的模式 .............................. 86
4.9 建立客戶細分模型 .................................. 88
第5 章 構建推薦引擎 ................................... 91
5.1 簡介 ...................................... 91
5.2 為數據處理構建函數組閤 ....................... 92
5.3 構建機器學習流水綫 .............................. 93
5.3.1 詳細步驟 ...................................... 93
5.3.2 工作原理 ...................................... 95
5.4 尋找最近鄰 .............................................. 95
5.5 構建一個KNN 分類器 ............................ 98
5.5.1 詳細步驟 ...................................... 98
5.5.2 工作原理 .................................... 102
5.6 構建一個KNN 迴歸器 .......................... 102
5.6.1 詳細步驟 .................................... 102
5.6.2 工作原理 .................................... 104
5.7 計算歐氏距離分數 ................................ 105
5.8 計算皮爾遜相關係數 ............................ 106
5.9 尋找數據集中的相似用戶 ..................... 108
5.10 生成電影推薦 ...................................... 109
第6 章 分析文本數據 ................................. 112
6.1 簡介 ....................................... 112
6.2 用標記解析的方法預處理數據 ............. 113
6.3 提取文本數據的詞乾 ............................ 114
6.3.1 詳細步驟 .................................... 114
6.3.2 工作原理 .................................... 115
6.4 用詞形還原的方法還原文本的基本形式 .................... 116
6.5 用分塊的方法劃分文本 ........................ 117
6.6 創建詞袋模型 ........................................ 118
6.6.1 詳細步驟 .................................... 118
6.6.2 工作原理 .................................... 120
6.7 創建文本分類器 .................................... 121
6.7.1 詳細步驟 .................................... 121
6.7.2 工作原理 .................................... 123
6.8 識彆性彆 ............................................. 124
6.9 分析句子的情感 .................................... 125
6.9.1 詳細步驟 .................................... 126
6.9.2 工作原理 .................................... 128
6.10 用主題建模識彆文本的模式 ............... 128
6.10.1 詳細步驟 .................................. 128
6.10.2 工作原理 .................................. 131
第7 章 語音識彆 ......................................... 132
7.1 簡介 .......................................... 132
7.2 讀取和繪製音頻數據 ............................ 132
7.3 將音頻信號轉換為頻域 ........................ 134
7.4 自定義參數生成音頻信號 ..................... 136
7.5 閤成音樂 .......................................... 138
7.6 提取頻域特徵 ........................................ 140
7.7 創建隱馬爾科夫模型 ............................ 142
7.8 創建一個語音識彆器 ............................ 143
第8 章 解剖時間序列和時序數據 ............ 147
8.1 簡介 ............................................. 147
8.2 將數據轉換為時間序列格式 ................. 148
8.3 切分時間序列數據 ................................ 150
8.4 操作時間序列數據 ................................ 152
8.5 從時間序列數據中提取統計數字 ......... 154
8.6 針對序列數據創建隱馬爾科夫模型 ..... 157
8.6.1 準備工作 .................................... 158
8.6.2 詳細步驟 .................................... 158
8.7 針對序列文本數據創建條件隨機場 ..... 161
8.7.1 準備工作 .................................... 161
8.7.2 詳細步驟 .................................... 161
8.8 用隱馬爾科夫模型分析股票市場數據.......................... 164
第9 章 圖像內容分析 ................................. 166
9.1 簡介 .............................................. 166
9.2 用OpenCV-Pyhon 操作圖像 ................. 167
9.3 檢測邊 ........................................ 170
9.4 直方圖均衡化 ........................................ 174
9.5 檢測棱角 .................................. 176
9.6 檢測SIFT 特徵點 .................................. 178
9.7 創建Star 特徵檢測器 ............................ 180
9.8 利用視覺碼本和嚮量量化創建特徵 ...... 182
9.9 用極端隨機森林訓練圖像分類器 .......... 185
9.10 創建一個對象識彆器 ........................... 187
第10 章 人臉識彆 ........................................ 189
10.1 簡介 ........................................... 189
10.2 從網絡攝像頭采集和處理視頻信息 .... 189
10.3 用Haar 級聯創建一個人臉識彆器 ...... 191
10.4 創建一個眼睛和鼻子檢測器 ............... 193
10.5 做主成分分析 ...................................... 196
10.6 做核主成分分析 .................................. 197
10.7 做盲源分離 .......................................... 201
10.8 用局部二值模式直方圖創建一個人臉識彆器 ................ 205
第11 章 深度神經網絡 ............................... 210
11.1 簡介 ........................................ 210
11.2 創建一個感知器 .................................. 211
11.3 創建一個單層神經網絡 ....................... 213
11.4 創建一個深度神經網絡 ....................... 216
11.5 創建一個嚮量量化器........................... 219
11.6 為序列數據分析創建一個遞歸神經網絡 ...................... 221
11.7 在光學字符識彆數據庫中將字符可視化 ...................... 225
11.8 用神經網絡創建一個光學字符識彆器 ....................... 226
第12 章 可視化數據 ................................... 230
12.1 簡介 ............................................... 230
12.2 畫3D 散點圖 ....................................... 230
12.3 畫氣泡圖 ............................................ 232
12.4 畫動態氣泡圖 ...................................... 233
12.5 畫餅圖 ............................................... 235
12.6 畫日期格式的時間序列數據 ............... 237
12.7 畫直方圖 ............................................ 239
12.8 可視化熱力圖 ...................................... 241
12.9 動態信號的可視化模擬 ....................... 242
《Python數據科學實戰:從理論到應用》 內容簡介: 在信息爆炸的時代,數據已成為驅動決策、洞察趨勢、預測未來的核心要素。掌握有效處理、分析和利用數據的能力,正變得前所未有的重要。本書《Python數據科學實戰:從理論到應用》正是為你量身打造的學習指南,旨在幫助你係統地掌握使用Python進行數據科學探索的全過程,從基礎概念的理解,到高級分析技術的運用,再到最終將數據洞察轉化為實際價值。 本書並非一個簡單的工具手冊,而是力求在理論深度與實踐廣度之間取得精妙平衡。我們相信,隻有深刻理解數據科學背後的原理,纔能在麵對真實世界復雜多變的數據時,遊刃有餘地運用各種工具和技術。因此,本書將循序漸進地引導讀者走進數據科學的殿堂,深入剖析每一個關鍵概念,並通過豐富的實例,將抽象的理論轉化為可操作的代碼。 本書內容詳盡,涵蓋以下核心模塊: 第一部分:數據科學基石 —— Python與核心庫 在進入復雜的數據分析流程之前,紮實的基礎是必不可少的。本部分將為你搭建堅實的Python編程基礎,並重點介紹數據科學領域最為核心和廣泛使用的Python庫。 Python入門與進階: 我們將從Python的基本語法、數據類型、控製流、函數等入手,逐步深入到麵嚮對象編程、模塊化開發等更高級的概念。無需你有深厚的編程背景,本書將從零開始,讓你快速掌握Python的編程思維和技巧,為後續的數據科學學習打下堅實基礎。 NumPy:數值計算的利器: NumPy是Python科學計算的基石,其強大的N維數組對象(ndarray)為高效的數值運算提供瞭基礎。本書將詳細講解NumPy數組的創建、索引、切片、數學運算、統計函數以及廣播機製等核心功能。通過大量的示例,你將學會如何利用NumPy進行嚮量化計算,顯著提升數據處理和分析的效率。 Pandas:數據處理與分析的瑞士軍刀: Pandas是數據科學傢必不可少的工具,它提供瞭Series和DataFrame兩種核心數據結構,能夠優雅地處理結構化數據。本部分將深入剖析Pandas的常用操作,包括數據讀取與寫入(CSV, Excel, SQL等)、數據清洗(缺失值處理、重復值識彆與刪除、數據類型轉換)、數據選擇與過濾、數據分組與聚閤(groupby)、數據閤並與連接(merge, join, concat)、時間序列數據處理等。我們將通過真實數據集,演示如何利用Pandas解決常見的數據預處理難題。 Matplotlib與Seaborn:數據可視化的藝術: 數據可視化是理解數據、溝通洞察的關鍵。Matplotlib作為Python最基礎的繪圖庫,將為你展示如何繪製各種靜態圖錶,如摺綫圖、散點圖、柱狀圖、餅圖、直方圖等。在此基礎上,Seaborn庫將進一步簡化復雜統計圖錶的創建,並提供更美觀的默認樣式。本書將指導你如何根據數據類型和分析目的,選擇閤適的圖錶類型,並學會定製圖錶元素,使其清晰、準確地傳達信息。 第二部分:探索性數據分析(EDA)—— 深入理解數據 一旦數據準備就緒,就需要通過探索性數據分析來深入理解數據的內在規律和潛在模式。本部分將聚焦於EDA的方法論和實踐。 數據概覽與統計摘要: 學習如何計算和解釋數據的基本統計量,如均值、中位數、方差、標準差、最小值、最大值、分位數等。理解這些統計量如何幫助我們快速把握數據的分布和離散程度。 數據分布分析: 通過直方圖、密度圖、箱綫圖等可視化工具,深入探究單個變量的分布特徵,識彆數據的偏態、峰度以及異常值。 變量間關係探索: 學習如何使用散點圖、相關矩陣、熱力圖等技術,分析變量之間的綫性或非綫性關係,發現潛在的關聯性。 分類變量分析: 掌握如何分析分類變量的頻率分布,以及其與其他變量之間的關係,例如使用條形圖、堆疊柱狀圖等。 數據聚閤與透視: 深入運用Pandas的`groupby`和`pivot_table`等功能,對數據進行多維度分組和聚閤,提取更有意義的統計信息。 特徵工程初步: 在EDA過程中,我們會接觸到如何根據現有特徵創造新特徵,或對特徵進行變換,為後續的模型構建做準備。 第三部分:機器學習基礎與模型實踐 掌握瞭數據處理與探索的能力後,本書將引導你進入機器學習的核心領域,學習如何構建和訓練模型來解決實際問題。 機器學習概述: 介紹機器學習的基本概念,包括監督學習、無監督學習、半監督學習和強化學習。闡述模型訓練、評估、泛化能力等關鍵術語。 特徵工程進階: 深入探討特徵工程的重要性和技巧,包括特徵縮放(標準化、歸一化)、編碼(獨熱編碼、標簽編碼)、多項式特徵、交互特徵、缺失值插補策略等。理解特徵工程對模型性能的影響。 監督學習算法: 綫性迴歸與邏輯迴歸: 學習最基礎的迴歸和分類模型,理解其原理、適用場景以及模型參數的解釋。 決策樹與隨機森林: 掌握基於樹的模型,理解其工作機製、剪枝技術,以及隨機森林如何通過集成學習提高魯棒性。 支持嚮量機(SVM): 學習SVM的原理,包括核函數的使用,以及其在分類和迴歸問題中的應用。 K近鄰(KNN): 理解基於距離的分類和迴歸算法。 樸素貝葉斯: 學習概率模型在分類任務中的應用。 無監督學習算法: K-Means聚類: 學習如何發現數據中的簇結構,並進行可視化分析。 主成分分析(PCA): 掌握降維技術,用於去除數據冗餘、提高模型效率。 模型評估與選擇: 交叉驗證: 學習如何使用交叉驗證來更可靠地評估模型性能,避免過擬閤。 評估指標: 掌握迴歸問題的評估指標(MSE, RMSE, MAE, R²),以及分類問題的評估指標(準確率、精確率、召迴率、F1分數、ROC麯綫、AUC)。 模型調優(超參數優化): 介紹網格搜索(Grid Search)和隨機搜索(Random Search)等方法,優化模型超參數以獲得最佳性能。 第四部分:實際應用案例與項目實戰 理論學習最終需要落實在實踐中。本部分將通過一係列精心設計的案例,將前幾部分所學知識融會貫通,並帶領你完成小型到中型的實際項目。 案例研究: 電商用戶行為分析: 運用Pandas進行用戶購買行為數據的清洗、分析,並進行用戶分群。 房價預測: 使用迴歸模型,基於房屋特徵預測房價,並進行特徵工程和模型評估。 文本情感分析: 學習文本預處理技術,並使用分類模型分析文本的情感傾嚮。 圖像數據初步處理: 介紹圖像數據的基本格式和初步的加載與展示方法,為後續更復雜的計算機視覺任務鋪墊。 項目流程指導: 書中將提供完整的項目開發流程,包括問題定義、數據獲取、數據預處理、特徵工程、模型選擇與訓練、模型評估與優化、結果解釋與報告。 代碼實現與解釋: 每個案例都附帶完整、可運行的Python代碼,並對關鍵代碼段進行詳細解釋,幫助讀者理解每一步操作的邏輯和目的。 本書特色: 理論與實踐並重: 既有對核心概念的深入講解,也有大量代碼示例和實際案例。 循序漸進的學習路徑: 從Python基礎到高級算法,結構清晰,易於理解。 豐富的實戰案例: 涵蓋多個領域,幫助讀者將所學知識應用於解決實際問題。 代碼質量高: 提供清晰、規範、可復用的Python代碼。 麵嚮初學者與進階者: 無論你是剛接觸數據科學,還是希望係統鞏固和提升,本書都能提供價值。 通過閱讀《Python數據科學實戰:從理論到應用》,你將不僅掌握一套強大的數據分析工具,更能培養齣獨立解決數據問題的能力,為你在學術研究、商業分析、技術開發等各個領域的發展奠定堅實的基礎。現在,就開始你的數據科學探索之旅吧!