Python機器學(xué)習(xí)手冊:從數(shù)據(jù)預(yù)處理到深度學(xué)習(xí)
定 價:89 元
- 作者:(美)Chris Albon(克里斯·阿爾本)
- 出版時間:2019/7/1
- ISBN:9787121369629
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
這是一本關(guān)于Python的圖書,采用基于任務(wù)的方式來介紹如何在機器學(xué)習(xí)中使用Python。書中有近200個獨立的解決方案(并提供了相關(guān)代碼,讀者可以復(fù)制并粘貼這些代碼,用在自己的程序中),針對的都是數(shù)據(jù)科學(xué)家或機器學(xué)習(xí)工程師在構(gòu)建模型時可能遇到的*常見任務(wù),涵蓋*簡單的矩陣和向量運算到特征工程以及神經(jīng)網(wǎng)絡(luò)的構(gòu)建。本書不是機器學(xué)習(xí)的入門書,適合熟悉機器學(xué)習(xí)的理論和概念的讀者擺在案頭作為參考,他們可以借鑒書中的代碼,快速解決在機器學(xué)習(xí)的日常開發(fā)中遇到的挑戰(zhàn)。
采用基于任務(wù)的方式介紹機器學(xué)習(xí)
涵蓋在構(gòu)建機器學(xué)習(xí)模型時可能遇到的常見任務(wù)
提供近200個小任務(wù)的解決方案,以及代碼
在代碼中加深對理論的理解
序
在過去幾年中,機器學(xué)習(xí)已經(jīng)滲透到企業(yè)、非營利組織和政府的日常運作中。隨著機器學(xué)習(xí)熱度的增長,在對機器學(xué)習(xí)從業(yè)者的指導(dǎo)方面上,涌現(xiàn)了一批高質(zhì)量的文獻。這類文獻培養(yǎng)了整整一代的數(shù)據(jù)科學(xué)家和機器學(xué)習(xí)工程師。這類文獻從提供學(xué)習(xí)資源的角度來探討機器學(xué)習(xí),為人們講解機器學(xué)習(xí)是什么以及它的工作原理。盡管這種方法富有成效,但卻遺漏了一部分內(nèi)容:機器學(xué)習(xí)日常開發(fā)中的細(xì)節(jié)。這就是筆者寫本書的動機本書不是寫給學(xué)生讀者的學(xué)習(xí)機器學(xué)習(xí)理論的大部頭,而是寫給專業(yè)人士的扳手型工具書。我希望你把它放在書桌上,把你感興趣的某些頁折起來,在日常開發(fā)中需要解決實際問題時就拿過來翻一翻。
更具體地說,本書采用基于任務(wù)的方式來介紹機器學(xué)習(xí),有近200個獨立的解決方案(你可以復(fù)制并粘貼這些代碼,而它們將正常運行),針對的都是數(shù)據(jù)科學(xué)家或機器學(xué)習(xí)工程師在構(gòu)建模型時可能遇到的最常見的任務(wù)。
本書的最終目標(biāo)是成為人們在構(gòu)建真實的機器學(xué)習(xí)系統(tǒng)時的參考書。例如,假設(shè)你有一個JSON文件,其中包含1000個具有缺失值的分類特征和數(shù)值型特征,并且目標(biāo)向量的分類不均衡,你想得到一個可解釋的模型。本書提供的解決方案可以幫助你解決如下問題:
? 加載JSON文件(2.5 節(jié))
? 特征的標(biāo)準(zhǔn)化(4.2 節(jié))
? 對特征字典編碼(5.3節(jié))
? 填充缺失的分類值(5.4節(jié))
? 使用主成分進行特征降維(9.1節(jié))
? 使用隨機搜索選擇最佳模型(12.2節(jié))
? 訓(xùn)練隨機森林分類器(14.4節(jié))
? 選擇隨機森林中的重要特征(14.7節(jié))
目標(biāo)是讓你:
1. 復(fù)制/粘貼代碼,并確信它能很好地運行在玩具數(shù)據(jù)集(toy dataset) 上。
2. 閱讀每一節(jié)后面的討論以增進對代碼背后的理論的理解,并了解哪些參數(shù)是需要重點考慮的因素。
3. 對書中的代碼進行各種組合與修改,以構(gòu)建實際的應(yīng)用。
哪些人適合閱讀本書
本書不是機器學(xué)習(xí)的入門書。如果你對機器學(xué)習(xí)的基本概念還不太了解,或者從未花時間學(xué)習(xí)過機器學(xué)習(xí),請不要購買本書。本書適合機器學(xué)習(xí)的實踐者閱讀,他們熟悉機器學(xué)習(xí)的理論和概念,可以參考書中的代碼快速解決在日常開發(fā)中遇到的挑戰(zhàn)。
另外,本書假定讀者熟悉Python編程語言和包管理。
哪些人不適合閱讀本書
如前所述,本書不是機器學(xué)習(xí)的入門書。因此,它不應(yīng)該是你的第一本機器學(xué)習(xí)書。如果你還不熟悉交叉驗證、隨機森林和梯度下降等概念,那么相比那些專門介紹這些主題的書來說,本書可能不會為你帶來收獲。建議你先閱讀一本入門類機器學(xué)習(xí)圖書,再閱讀本書來學(xué)習(xí)機器學(xué)習(xí)的實用解決方案。
書中用到的術(shù)語
機器學(xué)習(xí)利用了很多領(lǐng)域的技術(shù),包括計算機科學(xué)、統(tǒng)計學(xué)和數(shù)學(xué)。因此,在關(guān)于機器學(xué)習(xí)的討論中會使用各種各樣的術(shù)語:
觀察值 (observation)
我們觀察到的單個單位例如一個人、一次銷售或一條記錄。
學(xué)習(xí)算法(learning algorithm)
用來學(xué)習(xí)模型的最佳參數(shù)的算法例如線性回歸、樸素貝葉斯或決策樹。
模型(model)
學(xué)習(xí)算法的輸出。學(xué)習(xí)算法訓(xùn)練出的模型可以用來做預(yù)測。
參數(shù)(parameter)
一個模型在訓(xùn)練過程中學(xué)習(xí)到的權(quán)重或系數(shù)。
超參數(shù)(hyperparameter)
一個學(xué)習(xí)算法在訓(xùn)練前需要設(shè)置的一組參數(shù)。
性能(performance)
用來評估模型的指標(biāo)。
損失(loss)
一個需要在訓(xùn)練中最小化或最大化的指標(biāo)。
訓(xùn)練(train)
使用類似于梯度下降之類的數(shù)學(xué)方法將一個學(xué)習(xí)算法應(yīng)用到數(shù)據(jù)上。
擬合(fit)
使用分析方法將一個機器學(xué)習(xí)算法應(yīng)用到數(shù)據(jù)上。
數(shù)據(jù)(data)
一組觀察值。
致謝
沒有一些朋友和陌生人的幫助,這本書是不可能完成的。很難列出提供過幫助的所有人的名字,但我想至少提一下這些人:Angela Bassa、Teresa Borcuch、Justin Bozonier、Andre deBruin、Numa Dhamani、Dan Friedman、Joel Grus、Sarah Guido、Bill Kam-bouroglou、Mat Kelcey、Lizzie Kumar、Hilary Parker、Niti Paudyal、Sebastian Raschka和Shreya Shankar。
我欠他們所有人一瓶啤酒,或者五瓶。
Chris Albon是一位有十年經(jīng)驗的數(shù)據(jù)科學(xué)家和政治學(xué)家,他將統(tǒng)計學(xué)習(xí)、人工智能和軟件工程應(yīng)用到政治和社會活動以及人道主義活動中,譬如監(jiān)查選舉情況、災(zāi)難救助等。目前,Chris是肯尼亞創(chuàng)業(yè)公司BRCK的首席數(shù)據(jù)科學(xué)家。這家公司致力于為前沿市場的互聯(lián)網(wǎng)用戶構(gòu)建一個穩(wěn)健的網(wǎng)絡(luò)。
韓慧昌,畢業(yè)于北京科技大學(xué),ThoughtWorks高級咨詢師,有多個大型企業(yè)AI項目經(jīng)驗。林然,有6年多的開發(fā)經(jīng)驗、4年多Python開發(fā)經(jīng)驗,在航空、零售、物流、汽車、通訊等多個行業(yè)應(yīng)用過機器學(xué)習(xí)算法。徐江,畢業(yè)于瑞典皇家理工學(xué)院的系統(tǒng)生物學(xué)專業(yè),曾就職于Thoughtworks軟件技術(shù)有限公司。
第1章 向量、矩陣和數(shù)組
1.0 簡介
1.1 創(chuàng)建一個向量
問題描述
解決方案
討論
延伸閱讀
1.2 創(chuàng)建一個矩陣
問題描述
解決方案
討論
延伸閱讀
1.3 創(chuàng)建一個稀疏矩陣
問題描述
解決方案
討論
延伸閱讀
1.4 選擇元素
問題描述
解決方案
討論
1.5 展示一個矩陣的屬性
問題描述
解決方案
討論
1.6 對多個元素同時應(yīng)用某個操作
問題描述
解決方案
討論
1.7 找到最大值和最小值
問題描述
解決方案
討論
1.8 計算平均值、方差和標(biāo)準(zhǔn)差
問題描述
解決方案
討論
1.9 矩陣變形
問題描述
解決方案
討論
1.10 轉(zhuǎn)置向量或矩陣
問題描述
解決方案
討論
1.11 展開一個矩陣
問題描述
解決方案
討論
1.12 計算矩陣的秩
問題描述
解決方案
討論
延伸閱讀
1.13 計算行列式
問題描述
解決方案
討論
延伸閱讀
1.14 獲取矩陣的對角線元素
問題描述
解決方案
討論
1.15 計算矩陣的跡
延伸閱讀
1.16 計算特征值和特征向量
問題描述
解決方案
討論
延伸閱讀
1.17 計算點積
問題描述
解決方案
討論
延伸閱讀
1.18 矩陣的加/減
問題描述
解決方案
討論
1.19 矩陣的乘法
問題描述
解決方案
討論
延伸閱讀
1.20 計算矩陣的逆
問題描述
解決方案
討論
1.21 生成隨機數(shù)
問題描述
解決方案
討論
第2章 加載數(shù)據(jù)
2.0 簡介
2.1 加載樣本數(shù)據(jù)集
問題描述
解決方案
討論
延伸閱讀
2.2 創(chuàng)建仿真數(shù)據(jù)集
問題描述
解決方案
討論
延伸閱讀
2.3 加載CSV文件
問題描述
解決方案
討論
2.4 加載一個Excel文件
問題描述
解決方案
討論
2.5 加載JSON文件
問題描述
解決方案
討論
延伸閱讀
2.6 查詢SQL數(shù)據(jù)庫
問題描述
解決方案
討論
延伸閱讀
第3章 數(shù)據(jù)整理
3.0 簡介
3.1 創(chuàng)建一個數(shù)據(jù)幀
問題描述
解決方案
討論
3.2描述數(shù)據(jù)
問題描述
解決方案
討論
3.3 瀏覽數(shù)據(jù)幀
問題描述
解決方案
討論
3.4 根據(jù)條件語句來選擇行
問題描述
解決方案
討論
3.5 替換值
問題描述
解決方案
討論
3.6 重命名列
問題描述
解決方案
討論
3.7 計算最小值、最大值、總和、平均值與計數(shù)值
問題描述
解決方案
討論
3.8 查找唯一值
問題描述
解決方案
討論
3.9 處理缺失值
問題描述
解決方案
討論
3.10 刪除一列
問題描述
解決方案
討論
3.11 刪除一行
問題描述
解決方案
討論
3.12 刪除重復(fù)行
問題描述
解決方案
討論
3.13 根據(jù)值對行進行分組
問題描述
解決方案
討論
3.14 按時間段對行進行分組
問題描述
解決方案
討論
延伸閱讀
3.15 遍歷一個列的數(shù)據(jù)
問題描述
解決方案
討論
3.16 對一列的所有元素應(yīng)用某個函數(shù)
問題描述
討論
3.17 對所有分組應(yīng)用一個函數(shù)
問題描述
解決方案
討論
3.18 連接多個數(shù)據(jù)幀
問題描述
解決方案
討論
3.19 合并兩個數(shù)據(jù)幀
問題描述
解決方案
討論
延伸閱讀
第4章 處理數(shù)值型數(shù)據(jù)
4.0 簡介
4.1 特征的縮放
問題描述
解決方案
討論
延伸閱讀
4.2 特征的標(biāo)準(zhǔn)化
問題描述
解決方案
討論
4.3 歸一化觀察值
問題描述
解決方案
討論
4.4 生成多項式和交互特征
問題描述
解決方案
討論
4.5 轉(zhuǎn)換特征
問題描述
解決方案
討論
4.6 識別異常值
問題描述
解決方案
討論
延伸閱讀
4.7 處理異常值
問題描述
解決方案
討論
延伸閱讀
4.8 將特征離散化
問題描述
解決方案
討論
延伸閱讀
4.9 使用聚類的方式將觀察值分組
問題描述
解決方案
討論
4.10 刪除帶有缺失值的觀察值
問題描述
解決方案
討論
延伸閱讀
4.11 填充缺失值
問題描述
解決方案
討論
延伸閱讀
第5章 處理分類數(shù)據(jù)
5.0 簡介
5.1 對nominal型分類特征編碼
問題描述
解決方案
討論
延伸閱讀
5.2 對ordinal分類特征編碼
問題描述
解決方案
討論
5.3 對特征字典編碼
問題描述
解決方案
討論
延伸閱讀
5.4 填充缺失的分類值
問題描述
解決方案
討論
延伸閱讀
5.5 處理不均衡分類
問題描述
解決方案
討論
第6章 處理文本
6.0 簡介
6.1 清洗文本
問題描述
解決方案
討論
延伸閱讀
6.2 解析并清洗HTML
問題描述
解決方案
討論
延伸閱讀
6.3 移除標(biāo)點
問題描述
解決方案
討論
6.4 文本分詞
問題描述
解決方案
討論
6.5 刪除停止詞(stop word)
問題描述
解決方案
討論
6.6 提取詞干
問題描述
解決方案
討論
延伸閱讀
6.7 標(biāo)注詞性
問題描述
解決方案
討論
延伸閱讀
6.8 將文本編碼成詞袋(Bag of Words)
問題描述
解決方案
討論
延伸閱讀
6.9 按單詞的重要性加權(quán)
問題描述
解決方案
討論
延伸閱讀
第7章 處理日期和時間
7.0 簡介
7.1 把字符串轉(zhuǎn)換成日期
問題描述
解決方案
討論
延伸閱讀
7.2 處理時區(qū)
問題描述
解決方案
討論
7.3 選擇日期和時間
問題描述
解決方案
討論
7.4 將日期數(shù)據(jù)切分成多個特征
問題描述
解決方案
討論
7.5 計算兩個日期之間的時間差
問題描述
解決方案
討論
延伸閱讀
7.6 對一周內(nèi)的各天進行編碼
問題描述
解決方案
討論
延伸閱讀
7.7 創(chuàng)建一個滯后的特征
問題描述
解決方案
討論
7.8 使用滾動時間窗口
問題描述
解決方案
討論
延伸閱讀
7.9 處理時間序列中的缺失值
問題描述
解決方案
討論
第8章 圖像處理
8.0 簡介
8.1 加載圖像
問題描述
解決方案
討論
延伸閱讀
8.2保存圖像
問題描述
解決方案
討論
8.3縮放圖像
問題描述
解決方案
討論
8.4裁剪圖像
問題描述
解決方案
討論
延伸閱讀
8.5 圖像平滑
問題描述
解決方案
討論
延伸閱讀
8.6 圖像銳化
問題描述
解決方案
討論
8.7 提升對比度
問題描述
解決方案
討論
8.8 顏色分離
問題描述
解決方案
討論
8.9 圖像二值化
問題描述
解決方案
討論
8.10 移除背景
問題描述
解決方案
討論
8.11 邊緣檢測
問題描述
解決方案
討論
8.12 角點檢測
問題描述
解決方案
討論
延伸閱讀
8.13 為機器學(xué)習(xí)創(chuàng)建特征
問題描述
解決方案
討論
8.14 將顏色平均值編碼成特征
問題描述
解決方案
討論
8.15 將色彩直方圖編碼成特征
問題描述
解決方案
討論
延伸閱讀
第9章 利用特征提取進行特征降維
9.0 簡介
9.1 使用主成分進行特征降維
問題描述
解決方案
討論
延伸閱讀
9.2 對線性不可分?jǐn)?shù)據(jù)進行特征降維
問題描述
解決方案
討論
延伸閱讀
9.3 通過最大化類間可分性進行特征降維
問題描述
解決方案
討論
延伸閱讀
9.4 使用矩陣分解法進行特征降維
問題描述
解決方案
討論
延伸閱讀
9.5 對稀疏數(shù)據(jù)進行特征降維
問題描述
解決方案
討論
延伸閱讀
第10章 使用特征選擇進行降維
10.0 簡介
10.1 數(shù)值型特征方差的閾值化
問題描述
解決方案
討論
10.2 二值特征的方差閾值化
問題描述
解決方案
討論
10.3 處理高度相關(guān)性的特征
問題描述
解決方案
討論
10.4 刪除與分類任務(wù)不相關(guān)的特征
問題描述
解決方案
討論
10.5 遞歸式特征消除
問題描述
解決方案
討論
延伸閱讀
第11章 模型評估
11.0 簡介
11.1 交叉驗證模型
問題描述
解決方案
討論
延伸閱讀
11.2 創(chuàng)建一個基準(zhǔn)回歸模型
問題描述
解決方案
討論
11.3 創(chuàng)建一個基準(zhǔn)分類模型
問題描述
解決方案
討論
延伸閱讀
11.4 評估二元分類器
問題描述
解決方案
討論
延伸閱讀
11.5 評估二元分類