內容簡介
與機器學習領域很多偏重於理論的書相比,本書在簡明扼要地闡明基本原理的基礎上,側重於介紹如何在Python環境下使用機器學習方法庫,並通過大量實例清晰形象地展示了不同場景下機器學習方法的套用。從這個角度來說,本書是一本使機器學習算法通過Python實現真正“落地”的書,而這無疑將給想要或致力於機器學習套用的讀者帶來方法理解和實現上的巨大裨益。
書中所有實例都是用Python編寫,使用了scikit-learn機器學習框架、自然語言工具包(NLTK)、Crab、langdetect、Spark(PySpark)、Gensim、Keras和TensorFlow(深度學習框架)。這些程式適用於基於Linux、和Windows系統的Python 2.7和3.3+版本。
本書主要面向希望在預測分析和機器學習領域建立紮實基礎的機器學習工程師、數據工程師和數據科學家。
圖書目錄
譯者序
前言
第1章機器學習簡介
1.1簡介——經典機器和自適應的機器
1.1.1描述性分析
1.1.2預測性分析
1.2關於學習
1.2.1監督學習
1.2.2無監督學習
1.2.3半監督學習
1.2.4強化學習
1.2.5計算神經科學
1.3超越機器學習——深度學習和基於生物啟發的適應系統
1.4機器學習和大數據
1.5本章小結
第2章機器學習的重要元素
2.1數據格式
2.2可學習性
2.2.1欠擬合和過擬合
2.2.2誤差度量和成本函式
2.2.3PAC學習
2.3統計學習方法介紹
2.3.1最大後驗機率學習
2.3.2最大似然學習
2.4類平衡
2.4.1可置換的重採樣
2.4.2合成少數類過採樣
2.5資訊理論的要素
2.5.1熵
2.5.2交叉熵和互信息
2.5.3兩個機率分布的散度
2.6本章小結
第3章特徵選擇與特徵工程
3.1scikit-learn的toy數據集
3.2創建訓練集和測試集
3.3管理分類數據
3.4管理缺失特徵
3.5數據縮放和歸一化
3.6特徵選擇和過濾
3.7主成分分析
3.7.1非負矩陣分解
3.7.2稀疏PCA
3.7.3核PCA
3.8獨立成分分析
3.9原子提取和字典學習
3.10使用t-SNE可視化高維數據集
3.11本章小結
第4章回歸算法
4.1線性模型
4.2一個二維的例子
4.3基於scikit-learn的線性回歸和更高維
4.3.1決定係數
4.3.2可解釋方差
4.3.3回歸的解析表達
4.4Ridge回歸、Lasso回歸和ElasticNet
4.4.1Ridge回歸
4.4.2Lasso回歸
4.4.3ElasticNet
4.5穩健回歸
4.5.1隨機抽樣一致算法
4.5.2Huber回歸
4.6貝葉斯回歸
4.7多項式回歸
4.8保序回歸
4.9本章小結
第5章線性分類算法
5.1線性分類
5.2邏輯回歸
5.3實現和最佳化
5.4隨機梯度下降算法
5.5被動攻擊算法
5.6通過格線搜尋找到最優超參數
5.7評估分類的指標
5.7.1混淆矩陣
5.7.2精確率
5.7.3召回率
5.7.4F-Beta
5.7.5Kappa係數
5.7.6分類報告
5.7.7學習曲線
5.8ROC曲線
5.9本章小結
第6章樸素貝葉斯和判別分析
6.1貝葉斯定理
6.2樸素貝葉斯分類器
6.3scikit-learn中的樸素貝葉斯
6.3.1伯努利樸素貝葉斯
6.3.2多項式樸素貝葉斯
6.3.3高斯樸素貝葉斯
6.4判別分析
6.5本章小結
第7章支持向量機
7.1線性支持向量機
7.2scikit-learn實現
7.3基於核心的分類
7.3.1徑向基函式
7.3.2多項式核
7.3.3Sigmoid核
7.3.4自定義核
7.3.5非線性例子
7.4受控支持向量機
7.5支持向量回歸
7.6半監督支持向量機簡介
7.7本章小結
第8章決策樹和集成學習
8.1二元決策樹
8.1.1二元決策
8.1.2不純度的衡量
8.1.3特徵重要度
8.2基於scikit-learn的決策樹分類
8.3決策樹回歸
8.4集成學習簡介
8.4.1隨機森林
8.4.2AdaBoost
8.4.3梯度樹提升
8.4.4投票分類器
8.5本章小結
第9章聚類原理
9.1聚類基礎
9.2k-NN算法
9.3高斯混合
9.4k-means
9.5基於樣本標記的評價方法
9.5.1同質性
9.5.2完整性
9.5.3修正蘭德指數
9.6本章小結
第10章高級聚類
10.1DBSCAN
10.2譜聚類
10.3線上聚類
10.3.1mini-batch k-means
10.3.2BIRCH
10.4雙聚類
10.5本章小結
第11章層次聚類
11.1分層策略
11.2凝聚聚類
11.2.1樹形圖
11.2.2scikit-learn中的凝聚聚類
11.2.3連線限制
11.3本章小結
第12章推薦系統介紹
12.1樸素的基於用戶的系統
12.2基於內容的系統
12.3無模式(或基於記憶體的)協同過濾
12.4基於模型的協同過濾
12.4.1奇異值分解策略
12.4.2交替最小二乘法策略
12.4.3用Apache Spark MLlib實現交替最小二乘法策略
12.5本章小結
第13章自然語言處理簡介
13.1NLTK和內置語料庫
13.2詞袋策略
13.2.1標記
13.2.2停止詞的刪除
13.2.3詞幹抽取
13.2.4向量化
13.3詞性
13.4示例文本分類器
13.5本章小結
第14章NLP中的主題建模與情感分析
14.1主題建模
14.1.1隱性語義分析
14.1.2機率隱性語義分析
14.1.3隱性狄利克雷分配
14.2使用Gensim的Word2vec簡介
14.3情感分析
14.4本章小結
第15章神經網路介紹
15.1深度學習簡介
15.2基於Keras的MLP
15.3本章小結
第16章高級深度學習模型
16.1深層結構
16.2基於Keras的深度卷積網路示例
16.3基於Kears的LSTM網路示例
16.4TensorFlow簡介
16.4.1梯度計算
16.4.2邏輯回歸
16.4.3用多層感知器進行分類
16.4.4圖像卷積
16.5本章小結
第17章創建機器學習架構
17.1機器學習框架
17.1.1數據收集
17.1.2歸一化
17.1.3降維
17.1.4數據擴充
17.1.5數據轉換
17.1.6建模、格線搜尋和交叉驗證
17.1.7可視化
17.1.8GPU支持
17.1.9分散式架構簡介
17.2用於機器學習架構的scikit-learn工具
17.2.1管道
17.2.2特徵聯合
17.3本章小結
作者簡介
朱塞佩·博納科爾索(Giuseppe Bonaccorso)
一家大型跨國公司的數據科學主管。他擁有義大利卡塔尼亞大學電子工程專業工程學碩士學位,然後在義大利羅馬第二大學、英國埃塞克斯大學深造過。在他的職業生涯中,擔任過公共管理、軍事、公用事業、醫療保健、診斷和廣告等多個業務領域的IT工程師,使用Java、Python、Hadoop、Spark、Theano和TensorFlow等多種技術進行過項目開發與管理。他的主要研究興趣包括人工智慧、機器學習、深度學習、強化學習、數據科學等。