本書圍繞神經網路、智慧型推理、矩陣計算三大主線,提供近25個經典的算法講解。解剖有代表性的算法庫:Scikit-Learn算法庫、OpenCV機器視覺、Theano深度學習庫。作為本土原創圖書,本書更符合國內人的閱讀習慣,適合作為機器學習算法設計的入門讀物。
基本介紹
內容簡介,作者簡介,圖書目錄,
內容簡介
本書是機器學習原理和算法編碼實現的基礎性讀物,內容分為兩大主線:單個算法的原理講解和機器學習理論的發展變遷。算法除包含傳統的分類、聚類、預測等常用算法之外,還新增了深度學習、貝葉斯網、隱馬爾科夫模型等內容。對於每個算法,均包括提出問題、解決策略、數學推導、編碼實現、結果評估幾部分。數學推導力圖做到由淺入深,深入淺出。結構上數學原理與程式代碼一一對照,有助於降低學習門檻,加深公式的理解,起到推廣和擴大機器學習的作用。
作者簡介
鄭捷,研究方向是機器學習與自然語言處理。當前負責的核心產品是高精度自然語言認知系統的設計與研發,研發目標是高精度(識別率在85%~95%)的統一架構的NLP認知系統。
圖書目錄
第1章 機器學習的基礎
1.1 程式語言與開發環境
1.1.1 搭建Python開發環境
1.1.2 安裝Python算法庫
1.1.3 IDE配置及其安裝測試
1.2 對象、矩陣與矢量化編程
1.2.1 對象與維度
1.2.2 初識矩陣
1.2.3 矢量化編程與GPU運算
1.2.4 理解數學公式與NumPy矩陣運算
1.2.5 Linalg線性代數庫
1.3 機器學習的數學基礎
1.3.1 相似性的度量
1.3.2 各類距離的意義與Python實現
1.3.3 理解隨機性
1.3.4 回顧機率論
1.3.5 多元統計基礎
1.3.6 特徵間的相關性
1.3.7 再談矩陣--空間的變換
1.3.8 數據歸一化
1.4 數據處理與可視化
1.4.1 數據的導入和記憶體管理
1.4.2 表與線性結構的可視化
1.4.3 樹與分類結構的可視化
1.4.4 圖與網路結構的可視化
1.5 Linux作業系統下部署Python機器學習開發環境
1.5.1 Linux發行版的選擇
1.5.2 CentOS部署多版本Python實例
1.5.3 安裝NumPy、SciPy、Matplotlib開發包
1.5.4 安裝Scikit-Learn開發包
1.6 結語
第2章 中文文本分類
2.1 文本挖掘與文本分類的概念
2.2 文本分類項目
2.2.1 文本預處理
2.2.2 中文分詞介紹
2.2.3 Scikit-Learn庫簡介
2.2.4 向量空間模型
2.2.5 權重策略:TF-IDF方法
2.2.6 使用樸素貝葉斯分類模組
2.2.7 分類結果評估
2.3 分類算法:樸素貝葉斯
2.3.1 貝葉斯公式推導
2.3.2 樸素貝葉斯算法實現
2.3.3 算法的改進
2.3.4 評估分類結果
2.4 分類算法:kNN
2.4.1 kNN算法原理
2.4.2 kNN算法的Python實現
2.4.3 評估分類結果
2.5 結語
第3章 決策樹的發展
3.1 決策樹的基本思想
3.1.1 從一個實例開始
3.1.2 決策樹的算法框架
3.1.3 信息熵測度
3.2 ID3決策樹
3.2.1 ID3算法
3.2.2 ID3的實現
3.2.3 決策樹主方法
3.2.4 訓練決策樹
3.2.5 持久化決策樹
3.2.6 決策樹分類
3.2.7 算法評估
3.3 C4.5算法
3.3.1 信息增益率
3.3.2 C4.5的實現
3.3.3 訓練決策樹
3.3.4 分類數據
3.4 Scikit-Learn與回歸樹
3.4.1 回歸算法原理
3.4.2 *小剩餘方差法
3.4.3 模型樹
3.4.4 剪枝策略
3.4.5 Scikit-Learn實現
3.5 結語
第4章 推薦系統原理
4.1 推薦系統概述
4.1.1 從亞馬遜網站認識推薦系統
4.1.2 推薦系統的架構
4.1.3 開源推薦系統
4.2 協同過濾及其算法
4.2.1 協同過濾
4.2.2 數據預處理
4.2.3 使用Scikit-Learn的KMeans聚類
4.2.4 User CF原理
4.2.5 Item CF原理
4.2.6 SVD原理與計算
4.3 KMeans算法詳解
4.3.1 KMeans算法流程
4.3.2 輔助函式
4.3.3 聚類主函式
4.3.4 評估分類結果
4.4 聚類的改進:二分KMeans算法
4.4.1 二分聚類主函式
4.4.2 評估分類結果
4.5 SVD算法詳解
4.5.1 SVD算法回顧
4.5.2 常用距離函式
4.5.3 SVD數據集
4.5.4 SVD算法主函式
4.5.5 評估結果
4.6 結語
第5章 梯度尋優
5.1 **化與計算複雜性
5.1.1 **化理論
5.1.2 **化的數學描述
5.1.3 凸集與分離定理
5.1.4 凸函式及其性質
5.1.5 局部**與全局**
5.1.6 計算複雜性與NP問題
5.1.7 逐次逼近法
5.2 Logistic梯度下降法
5.2.1 梯度下降法
5.2.2 線性分類器
5.2.3 Logistic函式--世界不是非黑即白
5.2.4 算法流程
5.2.5 對測試集進行分類
5.3 算法分析
5.3.1 超平面的變化趨勢
5.3.2 超平面的收斂評估
5.3.3 權重向量的收斂評估
5.3.4 算法總體評價
5.4 隨機梯度下降法:算法改進與評估
5.4.1 主函式
5.4.2 程式輸出
5.4.3 步長變化率
5.4.4 權重收斂評估
5.4.5 權重分量的變化趨勢
5.4.6 算法總體評價
5.5 結語
第6章 神經網路初步
6.1 神經網路簡史
6.1.1 起源與早期發展
6.1.2 中期發展
6.1.3 當前的發展與反思
6.2 BP神經網路理論
6.2.1 線性不可分問題
6.2.2 BP網路構成
6.2.3 BP網路的訓練過程
6.3 BP網路的實現和評估
6.3.1 BP網路類與主要方法
6.3.2 設計BP網路
6.3.3 輔助函式
6.3.4 主函式
6.3.5 分類器
6.3.6 執行分類並輸出結果
6.3.7 BP網路評估
6.4 自組織特徵映射神經網路
6.4.1 SOM網路框架
6.4.2 SOM類
6.4.3 功能函式
6.4.4 SOM網路的實現
6.4.5 聚類結果
6.5 Boltzmann機算法
6.5.1 問題的提出
6.5.2 模擬退火原理
6.5.3 Boltzmann分布與退火過程
6.5.4 Boltzmann機類與功能函式
6.5.5 *短路徑的實現
6.5.6 執行算法
6.5.7 評估結果
6.6 結語
第7章 預測的技術與哲學
7.1 線性系統的預測
7.1.1 回歸與現代預測學
7.1.2 *小二乘法
7.1.3 代碼實現
7.1.4 正規方程組法
7.1.5 正規方程組的代碼實現
7.1.6 算法評估
7.2 徑向基網路
7.2.1 RBF網路
7.2.2 輔助函式
7.2.3 使用RBF預測
7.2.4 評估預測結果
7.3 嶺回歸
7.3.1 驗證多重共線性
7.3.2 嶺回歸理論
7.3.3 嶺際分析
7.3.4 k值的判定
7.3.5 輔助函式
7.3.6 嶺回歸的實現與k值計算
7.3.7 算法評估
7.4 預測的哲學
7.4.1 從《周易》談起
7.4.2 兩儀生四象
7.4.3 周期三與混沌
7.4.4 Logistic中的吸引子
7.4.5 三生萬物
7.4.6 八卦圖及其推演
7.5 結語
第8章 **分類器--支持向量機
8.1 支持向量機的理論基礎
8.1.1 經驗風險**
8.1.2 關鍵定理與VC維
8.1.3 結構風險**
8.2 SVM的數學推導
8.2.1 **間隔超平面
8.2.2 拉格朗日乘子法
8.2.3 KKT條件與對偶變換
8.2.4 分類器函式
8.2.5 映射到高維空間
8.2.6 核函式法
8.2.7 離群點的鬆弛變數
8.3 SMO算法
8.3.1 SMO求解SVM
8.3.2 構造SMO類
8.3.3 主函式
8.3.4 訓練數據
8.3.5 分類並評估算法
8.4 SVM中文文本分類
8.4.1 回顧中文文本分類
8.4.2 Scikit-Learn SVM分類
8.4.3 評估結果
8.5 結語
第9章 人臉識別中的機器學習
9.1 模式識別概述
9.1.1 認知與模式
1.1 程式語言與開發環境
1.1.1 搭建Python開發環境
1.1.2 安裝Python算法庫
1.1.3 IDE配置及其安裝測試
1.2 對象、矩陣與矢量化編程
1.2.1 對象與維度
1.2.2 初識矩陣
1.2.3 矢量化編程與GPU運算
1.2.4 理解數學公式與NumPy矩陣運算
1.2.5 Linalg線性代數庫
1.3 機器學習的數學基礎
1.3.1 相似性的度量
1.3.2 各類距離的意義與Python實現
1.3.3 理解隨機性
1.3.4 回顧機率論
1.3.5 多元統計基礎
1.3.6 特徵間的相關性
1.3.7 再談矩陣--空間的變換
1.3.8 數據歸一化
1.4 數據處理與可視化
1.4.1 數據的導入和記憶體管理
1.4.2 表與線性結構的可視化
1.4.3 樹與分類結構的可視化
1.4.4 圖與網路結構的可視化
1.5 Linux作業系統下部署Python機器學習開發環境
1.5.1 Linux發行版的選擇
1.5.2 CentOS部署多版本Python實例
1.5.3 安裝NumPy、SciPy、Matplotlib開發包
1.5.4 安裝Scikit-Learn開發包
1.6 結語
第2章 中文文本分類
2.1 文本挖掘與文本分類的概念
2.2 文本分類項目
2.2.1 文本預處理
2.2.2 中文分詞介紹
2.2.3 Scikit-Learn庫簡介
2.2.4 向量空間模型
2.2.5 權重策略:TF-IDF方法
2.2.6 使用樸素貝葉斯分類模組
2.2.7 分類結果評估
2.3 分類算法:樸素貝葉斯
2.3.1 貝葉斯公式推導
2.3.2 樸素貝葉斯算法實現
2.3.3 算法的改進
2.3.4 評估分類結果
2.4 分類算法:kNN
2.4.1 kNN算法原理
2.4.2 kNN算法的Python實現
2.4.3 評估分類結果
2.5 結語
第3章 決策樹的發展
3.1 決策樹的基本思想
3.1.1 從一個實例開始
3.1.2 決策樹的算法框架
3.1.3 信息熵測度
3.2 ID3決策樹
3.2.1 ID3算法
3.2.2 ID3的實現
3.2.3 決策樹主方法
3.2.4 訓練決策樹
3.2.5 持久化決策樹
3.2.6 決策樹分類
3.2.7 算法評估
3.3 C4.5算法
3.3.1 信息增益率
3.3.2 C4.5的實現
3.3.3 訓練決策樹
3.3.4 分類數據
3.4 Scikit-Learn與回歸樹
3.4.1 回歸算法原理
3.4.2 *小剩餘方差法
3.4.3 模型樹
3.4.4 剪枝策略
3.4.5 Scikit-Learn實現
3.5 結語
第4章 推薦系統原理
4.1 推薦系統概述
4.1.1 從亞馬遜網站認識推薦系統
4.1.2 推薦系統的架構
4.1.3 開源推薦系統
4.2 協同過濾及其算法
4.2.1 協同過濾
4.2.2 數據預處理
4.2.3 使用Scikit-Learn的KMeans聚類
4.2.4 User CF原理
4.2.5 Item CF原理
4.2.6 SVD原理與計算
4.3 KMeans算法詳解
4.3.1 KMeans算法流程
4.3.2 輔助函式
4.3.3 聚類主函式
4.3.4 評估分類結果
4.4 聚類的改進:二分KMeans算法
4.4.1 二分聚類主函式
4.4.2 評估分類結果
4.5 SVD算法詳解
4.5.1 SVD算法回顧
4.5.2 常用距離函式
4.5.3 SVD數據集
4.5.4 SVD算法主函式
4.5.5 評估結果
4.6 結語
第5章 梯度尋優
5.1 **化與計算複雜性
5.1.1 **化理論
5.1.2 **化的數學描述
5.1.3 凸集與分離定理
5.1.4 凸函式及其性質
5.1.5 局部**與全局**
5.1.6 計算複雜性與NP問題
5.1.7 逐次逼近法
5.2 Logistic梯度下降法
5.2.1 梯度下降法
5.2.2 線性分類器
5.2.3 Logistic函式--世界不是非黑即白
5.2.4 算法流程
5.2.5 對測試集進行分類
5.3 算法分析
5.3.1 超平面的變化趨勢
5.3.2 超平面的收斂評估
5.3.3 權重向量的收斂評估
5.3.4 算法總體評價
5.4 隨機梯度下降法:算法改進與評估
5.4.1 主函式
5.4.2 程式輸出
5.4.3 步長變化率
5.4.4 權重收斂評估
5.4.5 權重分量的變化趨勢
5.4.6 算法總體評價
5.5 結語
第6章 神經網路初步
6.1 神經網路簡史
6.1.1 起源與早期發展
6.1.2 中期發展
6.1.3 當前的發展與反思
6.2 BP神經網路理論
6.2.1 線性不可分問題
6.2.2 BP網路構成
6.2.3 BP網路的訓練過程
6.3 BP網路的實現和評估
6.3.1 BP網路類與主要方法
6.3.2 設計BP網路
6.3.3 輔助函式
6.3.4 主函式
6.3.5 分類器
6.3.6 執行分類並輸出結果
6.3.7 BP網路評估
6.4 自組織特徵映射神經網路
6.4.1 SOM網路框架
6.4.2 SOM類
6.4.3 功能函式
6.4.4 SOM網路的實現
6.4.5 聚類結果
6.5 Boltzmann機算法
6.5.1 問題的提出
6.5.2 模擬退火原理
6.5.3 Boltzmann分布與退火過程
6.5.4 Boltzmann機類與功能函式
6.5.5 *短路徑的實現
6.5.6 執行算法
6.5.7 評估結果
6.6 結語
第7章 預測的技術與哲學
7.1 線性系統的預測
7.1.1 回歸與現代預測學
7.1.2 *小二乘法
7.1.3 代碼實現
7.1.4 正規方程組法
7.1.5 正規方程組的代碼實現
7.1.6 算法評估
7.2 徑向基網路
7.2.1 RBF網路
7.2.2 輔助函式
7.2.3 使用RBF預測
7.2.4 評估預測結果
7.3 嶺回歸
7.3.1 驗證多重共線性
7.3.2 嶺回歸理論
7.3.3 嶺際分析
7.3.4 k值的判定
7.3.5 輔助函式
7.3.6 嶺回歸的實現與k值計算
7.3.7 算法評估
7.4 預測的哲學
7.4.1 從《周易》談起
7.4.2 兩儀生四象
7.4.3 周期三與混沌
7.4.4 Logistic中的吸引子
7.4.5 三生萬物
7.4.6 八卦圖及其推演
7.5 結語
第8章 **分類器--支持向量機
8.1 支持向量機的理論基礎
8.1.1 經驗風險**
8.1.2 關鍵定理與VC維
8.1.3 結構風險**
8.2 SVM的數學推導
8.2.1 **間隔超平面
8.2.2 拉格朗日乘子法
8.2.3 KKT條件與對偶變換
8.2.4 分類器函式
8.2.5 映射到高維空間
8.2.6 核函式法
8.2.7 離群點的鬆弛變數
8.3 SMO算法
8.3.1 SMO求解SVM
8.3.2 構造SMO類
8.3.3 主函式
8.3.4 訓練數據
8.3.5 分類並評估算法
8.4 SVM中文文本分類
8.4.1 回顧中文文本分類
8.4.2 Scikit-Learn SVM分類
8.4.3 評估結果
8.5 結語
第9章 人臉識別中的機器學習
9.1 模式識別概述
9.1.1 認知與模式