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