前言
機器學習海嘯
在你的項目中使用機器學習
目標和方法
預備知識
路線圖
其他資源
使用本書的規則
代碼使用范例
O’Reilly Safari
How to Contact Us
鳴謝
第一部分 機器學習的基本原理
第一章 機器學習的風景
什么是機器學習
為什么使用機器學習
機器學習系統的種類
有監督和無監督學習
有監督學習
無監督學習
半監督學習(Semisupervised learning)
強化學習
批量和在線學習
批量學習
在線學習
基於實例的學習 vs 基於模型的學習
基於實例的學習
基於模型的學習
Example 1-1. Training and running a linear model using Scikit-Learn
機器學習的主要挑戰
缺少訓練數據
缺少代表性的訓練數據
一個關於抽樣偏差的著名例子
低質量數據
不相關的特征
訓練集數據過擬合
訓練集數據欠擬合
Stepping Back(重點回顧)
測試和驗證
沒有免費午餐定理
練習
第二章 端到端的機器學習項目
使用真實數據
全局概覽
問題框架
流程(piplines)
性能度量
符號
假設檢驗
獲取數據
創建工作空間
創建一個獨立的環境
下載數據
數據概覽
創建一個測試集
數據分析與可視化
可視化地理數據
尋找相關性
特征組合的實驗
為機器學習算法准備數據
數據清洗
處理文本和類別特征
自定義變換
特征縮放
變換流程
模型選擇和模型訓練
在數據集上訓練和評估
使用交叉驗證實現更好的評估
模型調優
網格搜索
隨機搜索
方法集成
分析最好模型的誤差
在測試集上評估你的系統
啟動,監控和維護機器學習系統
試試看!
練習
第三章 分類
MNIST數據集
from sklearn.datasets import fetch_mldata
訓練一個二分類器
from sklearn.linear_model import SGDClassifier
性能測量
使用交叉驗證測量准確度
實現交叉驗證
from sklearn.model_selection import StratifiedKFold
from sklearn.base import clone
from sklearn.model_selection import cross_val_score
from sklearn.base import BaseEstimator
混淆矩陣
from sklearn.model_selection import cross_val_predict
from sklearn.metrics import confusion_matrix
准確率和召回率
from sklearn.metrics import precision_score, recall_score
from sklearn.metrics import f1_score
精度和召回的權衡
from sklearn.metrics import precision_recall_curve
ROC曲線
from sklearn.metrics import roc_curve
from sklearn.metrics import roc_auc_score
from sklearn.ensemble import RandomForestClassifier
多分類
from sklearn.multiclass import OneVsOneClassifier
from sklearn.preprocessing import StandardScaler
誤差分析
多標簽分類
from sklearn.neighbors import KNeighborsClassifier
多輸出分類
練習
第四章 訓練模型
線性回歸
正規方程
from sklearn.linear_model import LinearRegression
計算復雜度
梯度下降
批量梯度下降
收斂速度
隨機梯度下降
from sklearn.linear_model import SGDRegressor
Mini-batch梯度下降
多項式回歸
from sklearn.preprocessing import PolynomialFeatures
學習曲線
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
偏差和方差的平衡
線性模型的正則化
嶺回歸
from sklearn.linear_model import Ridge
Lasso回歸
彈性網絡
from sklearn.linear_model import ElasticNet
早停
from sklearn.base import clone
邏輯回歸
概率估計
模型訓練和損失函數
決策邊界
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
Softmax回歸
交叉熵損失
練習
第五章 支持向量機
線性可分支持向量機
軟間隔分類
from sklearn.svm import LinearSVC
非線性支持向量機
多項式核函數
from sklearn.svm import SVC
添加相似度特征
高斯核函數
計算復雜度
支持向量回歸
from sklearn.svm import LinearSVR
高級選項
決策函數和預測
訓練目標
二次規划
拉格朗日對偶
核化的支持向量機
在線的支持向量機
Hinge Loss
練習
第六章 決策樹
訓練和可視化決策樹
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
預測
模型的可解釋性:白盒和黑盒
評估類別概率
CART訓練算法
計算復雜度
基尼系數還是信息熵
正則化參數
決策樹回歸
from sklearn.tree import DecisionTreeRegressor
不穩定性
練習
第七章 集成學習和隨機森林
投票分類器
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
Bagging and Pasting
Bagging and Pasting in Scikit-Learn
from sklearn.ensemble import BaggingClassifier
Out-of-Bag評估
from sklearn.metrics import accuracy_score
隨機補丁和隨機子空間
隨機森林
Extra-Trees
特征重要度
from sklearn.ensemble import RandomForestClassifier
Boosting
AdaBoost
from sklearn.ensemble import AdaBoostClassifier
Gradient Boosting
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import GradientBoostingRegressor
Stacking
練習
第八章 降維
維數災難
降維的主要方法
投射
流形學習
PCA
保存方差
主成分
投射到d維
Using Scikit-Learn
from sklearn.decomposition import PCA
解釋方差比
選擇正確的維數
PCA壓縮
增量PCA
from sklearn.decomposition import IncrementalPCA
隨機PCA
核化PCA
from sklearn.decomposition import KernelPCA
選擇核函數和超參數調優
局部線性嵌入
from sklearn.manifold import LocallyLinearEmbedding
其他的降維技術
練習
第二部分 神經網絡和深度學習
第九章 TensorFlow的安裝與使用
安裝
創建你的第一個計算圖並在會話里運行
import tensorflow as tf
管理計算圖
節點值的生命周期
使用TensorFlow實現線性回歸
使用TensorFlow實現梯度下降
手工計算梯度
使用自動求導
使用優化器
使用數據訓練算法
模型的保存與重用
使用TensorBaord可視化計算圖和訓練曲線
命名空間
模塊化
共享變量
練習
第十章 人工神經網絡
從生物學到人工神經元
生物學的神經元
用神經元進行邏輯運算
感知機
from sklearn.linear_model import Perceptron
多層感知機和反向傳播
用TensorFlow的高級API訓練一個多層感知機
使用普通的TensorFlow訓練一個DNN
開發階段
from tensorflow.contrib.layers import fully_connected
執行階段
from tensorflow.examples.tutorials.mnist import input_data
使用神經網絡
調優神經網絡的超參數
隱藏層的數量
每個隱藏層神經元的個數
激活函數
練習
第十章 訓練深度神經網絡
梯度消失和梯度爆炸
Xavier and He Initialization
非飽和激活函數
Batch Normalization
使用TensorFlow實現Batch Normalization
from tensorflow.contrib.layers import batch_norm
梯度截斷
重用預訓練層
重用TensorFlow模型
重用其他框架的模型
凍結低級層
緩存凍結層
調整,丟棄,替換高級別層
Model Zoos
無監督預訓練
在一個輔助任務上預訓練
更快的優化器
動量優化
Nesterov Accelerated Gradient
AdaGrad
RMSProp
Adam Optimization
訓練一個稀疏模型
學習速率調度
通過正則化避免過擬合
Early Stopping
ℓ1 and ℓ2 Regularization
Dropout
from tensorflow.contrib.layers import dropout
Max-Norm Regularization
數據增強
實踐指導
練習
