産品特色
編輯推薦
大量Python庫的參考
用豐富的案例,細析機器學習技巧與方法
一個基於場景的教程,帶你承襲正確的思維方式(數據探索)
內容簡介
《機器學習係統設計》是實用的Python機器學習教程,結閤大量案例,介紹瞭機器學習的各方麵知識。《機器學習係統設計》不僅告訴你“怎麼做”,還會分析“為什麼”,力求幫助讀者掌握多種多樣的機器學習Python庫,學習構建基於Python的機器學習係統,並親身實踐和體驗機器學習係統的功能。
《機器學習係統設計》適閤需要機器學習技術的Python開發人員、計算機科學研究人員、數據科學傢、人工智能程序員,以及統計程序員閱讀參考。
作者簡介
Willi Richert,機器學習和機器人學博士,目前任職於微軟Bing搜索核心研發團隊。他從事多種機器學習領域的研究,包括主動學習和統計機器翻譯。
Luis Pedro Coelho,計算生物學傢,主要關注生物圖像信息學和大規模圖像數據的處理,緻力於生物標本圖像分析中機器學習技術的應用,他還是Python計算機視覺庫mahotas的主要開發人員。他於1998年開始開發開源軟件,2004年起從事Python開發,並為多個Python開源庫貢獻瞭代碼。另外,Luis擁有機器學習領域世界前列的卡內基-梅隆大學的博士學位,並發錶過多篇科學論文。
內頁插圖
目錄
目 錄
第1章 Python機器學習入門 1
1.1 夢之隊:機器學習與Python 1
1.2 這本書將教給你什麼(以及不會教什麼) 2
1.3 遇到睏難的時候怎麼辦 3
1.4 開始 4
1.4.1 NumPy、SciPy和Matplotlib簡介 4
1.4.2 安裝Python 5
1.4.3 使用NumPy和SciPy智能高效地處理數據 5
1.4.4 學習NumPy 5
1.4.5 學習SciPy 9
1.5 我們第一個(極小的)機器學習應用 10
1.5.1 讀取數據 10
1.5.2 預處理和清洗數據 11
1.5.3 選擇正確的模型和學習算法 12
1.6 小結 20
第2章 如何對真實樣本分類 22
2.1 Iris數據集 22
2.1.1 第一步是可視化 23
2.1.2 構建第一個分類模型 24
2.2 構建更復雜的分類器 28
2.3 更復雜的數據集和更復雜的分類器 29
2.3.1 從Seeds數據集中學習 29
2.3.2 特徵和特徵工程 30
2.3.3 最鄰近分類 30
2.4 二分類和多分類 33
2.5 小結 34
第3章 聚類:尋找相關的帖子 35
3.1 評估帖子的關聯性 35
3.1.1 不應該怎樣 36
3.1.2 應該怎樣 36
3.2 預處理:用相近的公共詞語個數來衡量相似性 37
3.2.1 將原始文本轉化為詞袋 37
3.2.2 統計詞語 38
3.2.3 詞語頻次嚮量的歸一化 40
3.2.4 刪除不重要的詞語 41
3.2.5 詞乾處理 42
3.2.6 停用詞興奮劑 44
3.2.7 我們的成果和目標 45
3.3 聚類 46
3.3.1 K均值 46
3.3.2 讓測試數據評估我們的想法 49
3.3.3 對帖子聚類 50
3.4 解決我們最初的難題 51
3.5 調整參數 54
3.6 小結 54
第4章 主題模型 55
4.1 潛在狄利剋雷分配(LDA) 55
4.2 在主題空間比較相似度 59
4.3 選擇主題個數 64
4.4 小結 65
第5章 分類:檢測劣質答案 67
5.1 路綫圖概述 67
5.2 學習如何區分齣優秀的答案 68
5.2.1 調整樣本 68
5.2.2 調整分類器 68
5.3 獲取數據 68
5.3.1 將數據消減到可處理的程度 69
5.3.2 對屬性進行預選擇和處理 70
5.3.3 定義什麼是優質答案 71
5.4 創建第一個分類器 71
5.4.1 從k鄰近(kNN)算法開始 71
5.4.2 特徵工程 72
5.4.3 訓練分類器 73
5.4.4 評估分類器的性能 74
5.4.5 設計更多的特徵 74
5.5 決定怎樣提升效果 77
5.5.1 偏差?方差及其摺中 77
5.5.2 解決高偏差 78
5.5.3 解決高方差 78
5.5.4 高偏差或低偏差 78
5.6 采用邏輯迴歸 81
5.6.1 一點數學和一個小例子 81
5.6.2 在帖子分類問題上應用邏輯迴歸 83
5.7 觀察正確率的背後:準確率和召迴率 84
5.8 為分類器瘦身 87
5.9 齣貨 88
5.10 小結 88
第6章 分類II:情感分析 89
6.1 路綫圖概述 89
6.2 獲取推特(Twitter)數據 89
6.3 樸素貝葉斯分類器介紹 90
6.3.1 瞭解貝葉斯定理 90
6.3.2 樸素 91
6.3.3 使用樸素貝葉斯進行分類 92
6.3.4 考慮未齣現的詞語和其他古怪情況 94
6.3.5 考慮算術下溢 95
6.4 創建第一個分類器並調優 97
6.4.1 先解決一個簡單問題 97
6.4.2 使用所有的類 99
6.4.3 對分類器的參數進行調優 101
6.5 清洗推文 104
6.6 將詞語類型考慮進去 106
6.6.1 確定詞語的類型 106
6.6.2 用SentiWordNet成功地作弊 108
6.6.3 我們第一個估算器 110
6.6.4 把所有東西融閤在一起 111
6.7 小結 112
第7章 迴歸:推薦 113
7.1 用迴歸預測房價 113
7.1.1 多維迴歸 116
7.1.2 迴歸裏的交叉驗證 116
7.2 懲罰式迴歸 117
7.2.1 L1和L2懲罰 117
7.2.2 在Scikit-learn中使用Lasso或彈性網 118
7.3 P大於N的情形 119
7.3.1 基於文本的例子 120
7.3.2 巧妙地設置超參數(hyperparameter) 121
7.3.3 評分預測和推薦 122
7.4 小結 126
第8章 迴歸:改進的推薦 127
8.1 改進的推薦 127
8.1.1 使用二值推薦矩陣 127
8.1.2 審視電影的近鄰 129
8.1.3 組閤多種方法 130
8.2 購物籃分析 132
8.2.1 獲取有用的預測 133
8.2.2 分析超市購物籃 134
8.2.3 關聯規則挖掘 136
8.2.4 更多購物籃分析的高級話題 137
8.3 小結 138
第9章 分類III:音樂體裁分類 139
9.1 路綫圖概述 139
9.2 獲取音樂數據 139
9.3 觀察音樂 140
9.4 用FFT構建第一個分類器 143
9.4.1 增加實驗敏捷性 143
9.4.2 訓練分類器 144
9.4.3 在多分類問題中用混淆矩陣評估正確率 144
9.4.4 另一種方式評估分類器效果:受試者工作特徵麯綫(ROC) 146
9.5 用梅爾倒頻譜係數(MFCC)提升分類效果 148
9.6 小結 152
第10章 計算機視覺:模式識彆 154
10.1 圖像處理簡介 154
10.2 讀取和顯示圖像 155
10.2.1 圖像處理基礎 156
10.2.2 加入椒鹽噪聲 161
10.2.3 模式識彆 163
10.2.4 計算圖像特徵 163
10.2.5 設計你自己的特徵 164
10.3 在更難的數據集上分類 166
10.4 局部特徵錶示 167
10.5 小結 170
第11章 降維 171
11.1 路綫圖 171
11.2 選擇特徵 172
11.2.1 用篩選器檢測冗餘特徵 172
11.2.2 用封裝器讓模型選擇特徵 178
11.3 其他特徵選擇方法 180
11.4 特徵抽取 181
11.4.1 主成分分析(PCA) 181
11.4.2 PCA的局限性以及LDA會有什麼幫助 183
11.5 多維標度法(MDS) 184
11.6 小結 187
第12章 大數據 188
12.1 瞭解大數據 188
12.2 用Jug程序包把你的處理流程分解成幾個任務 189
12.2.1 關於任務 189
12.2.2 復用部分結果 191
12.2.3 幕後的工作原理 192
12.2.4 用Jug分析數據 192
12.3 使用亞馬遜Web服務(AWS) 194
12.3.1 構建你的第一颱機器 195
12.3.2 用starcluster自動創建集群 199
12.4 小結 202
附錄A 更多機器學習知識 203
A.1 在綫資源 203
A.2 參考書 203
A.2.1 問答網站 203
A.2.2 博客 204
A.2.3 數據資源 205
A.2.4 競爭日益加劇 205
A.3 還剩下什麼 205
A.4 小結 206
索引 207
前言/序言
如果你手裏(或者你的電子閱讀器裏)有這本書,可以說,這是一個幸運的巧閤。畢竟,每年有幾百萬冊圖書印刷齣來,供數百萬讀者閱讀,而你恰好選擇瞭這一本。可以說,正是機器學習算法引領你來閱讀這本書(或者說是把這本書引領到你麵前)。而我們作為本書的作者,很高興看到你願意瞭解更多的“怎麼做”和“為什麼”。
本書大部分內容都將涉及“怎麼做”。例如,怎麼處理數據纔能讓機器學習算法最大限度地利用它們?怎麼選擇正確的算法來解決手頭的問題?
我們偶爾也會涉及“為什麼”。例如,為什麼正確評估很重要?為什麼在特定情形下一個算法比另一個算法的效果更好?
我們知道,要成為該領域的專傢還有很多知識要學。畢竟,本書隻介紹瞭一些“怎麼做”和極小一部分“為什麼”。但在最後,我們希望這些內容可以幫你“啓航”,然後快速前行。
本書內容
第1章通過一個非常簡單的例子介紹機器學習的基本概念。盡管很簡單,但也可能會有過擬閤的風險,這對我們提齣瞭挑戰。
第2章講解瞭使用真實數據解決分類問題的方法,在這裏我們對計算機進行訓練,使它能夠區分不同類型的花朵。
第3章講解瞭詞袋方法的威力,我們可以在沒有真正理解帖子內容的情況下,用它來尋找相似的帖子。
第4章讓我們超越將每個帖子分配給單個簇的方式。由於真實的文本可以處理多個主題,我們可以看到如何把帖子分配到幾個主題上。
第5章講解瞭如何用邏輯迴歸判定用戶的答案是好還是壞。在這個情景的背後,我們將學會用偏差-方差的摺中調試機器學習模型。
第6章介紹瞭樸素貝葉斯的工作原理,以及如何用它對推文進行分類,來判斷推文中的情感是正麵的還是負麵的。
第7章討論瞭一個處理數據的經典課題,但它在今天仍然有意義。我們用它構建瞭一個推薦係統,這個係統根據用戶所輸入的喜歡和不喜歡的信息,為用戶推薦新的商品。
第8章同時使用多種方法改進推薦效果。我們還可以看到如何隻根據購物信息構建推薦係統,而不需要用戶的評分數據(用戶並不總會提供這一信息)。
第9章舉例說明,如果有人把我們收集而成的龐大音樂庫弄亂瞭,那麼為歌麯建立次序的唯一希望就是讓機器來對歌麯分類。你會發現,有時信任彆人的專長比我們自己構建特徵更好。
第10章講解瞭如何在處理圖像這個特定情景下應用分類方法。這個領域又叫做模式識彆。
第11章告訴我們還有其他什麼方法可以幫我們精簡數據,使機器學習算法能夠處理它們。
第12章講解瞭不斷膨脹的數據規模,以及這為何會為數據分析造成難題。在本章中,我們利用多核或計算集群,探索瞭一些更大規模數據的處理方法。另外,我們還介紹瞭雲計算(將亞馬遜的Web服務當做雲計算提供商)。
附錄A羅列瞭一係列機器學習的優質資源。
閱讀需知
本書假定讀者瞭解Python,並且知道如何利用easy_install或pip安裝庫文件。我們並不依賴於任何高等數學知識,如微積分或矩陣代數。
總體而言,本書將使用以下版本的軟件,不過如果你使用任何新近版本,也沒有問題。
。 Python 2.7
。NumPy 1.6.2
。SciPy 0.11
。Scikit-learn 0.13
讀者對象
本書適閤想通過開源庫來學習機器學習的Python程序員閱讀參考。我們會通過示例概述機器學習的基本模式。
本書也適用於想用Python構建機器學習係統的初學者。Python是一個能夠快速構建原型係統的靈活語言,它背後的算法都是由優化過的C或C++編寫而成。因此,它的代碼運行快捷,並且十分穩健,完全可以用在實際産品中。
機器學習係統設計 下載 mobi epub pdf txt 電子書