別再傻傻只選一個模型
訓練很多模型,卻不知道應該選哪一個?沒有一個模型達標?每個模型都有其優缺點,無法取捨?
小朋友才做選擇,大人全都要!你該試試集成式學習!
集成式學習是使用 2 種或更多的機器學習演算法,來組合出預測能力更好的模型。DeepMind 已經使用集成式學習來組合多個神經網路,控制 Google 資料中心的運作效能;集成式學習技術也在 Kaggle 平台上,席捲了各個競賽的第一名寶座。因此,集成式學習是建立出更具威力的模型,不可或缺的技術之一。
本書會介紹實務上常見的集成式學習演算法,如硬投票、軟投票、堆疊法、自助聚合法、適應提升法、梯度提升法、隨機森林、極端隨機樹等,並且使用熱門的 scikit-learn、Keras、OpenEnsembles、XGBoost 等 Python 函式庫來實作各種不同的集成式學習技術,建構出一個強大的模型。熟稔本書的內容後,不但可以精通集成式學習,在實際情境中面對問題時,亦能具備充分的專業知識判斷適用的集成式學習方法,並成功實作它們。
書中採用「做中學」的方式,讓你不僅可以快速掌握理論基礎,也能了解各種集成式學習技術的實作,再加上運用真實世界中的資料集,你將能夠建立出更佳的機器學習模型,以解決各種問題,包含迴歸、分類、分群。
現在翻開本書,讓我們一起進入集成式學習的世界,整合你所會的全部技術,打造最強大的模型。
本書特色:
● 繁體中文第 1 本集成式學習專書,告訴你不要再傻傻地只選一個模型
● 完整介紹集成式學習中常見的演算法,包含極端隨機樹、堆疊法、自助聚合法、提升法等
● 一書掌握實作集成式學習的必備套件,如 Scikit-Learn、OpenEnsembles、XGBoost 等
● 用 Python 刻演算法給你看,接著告訴你怎麼用套件。讓你不只會做,還懂為什麼這麼做
● 以 5 個實務案例來展示集成式學習的威力
● 本書由施威銘研究室監修,內容易讀易懂,並加入大量「小編補充」補充必要知識
● 本書 Python 範例程式免費下載
作者簡介:
George Kyriakides
希臘馬其頓大學計算機方法與應用碩士畢業,目前為研究員。研究領域包含分散式神經網路架構、自動化生成及最佳化預測模型於影像辨識、時間序列資料、以及商業應用等。
Konstantinos G. Margaritis
英國羅浮堡大學應用資訊工程博士畢業,目前為希臘馬其頓大學應用資訊系教授。資訊工程的教學經驗長達 30 年,研究領域為平行及分散式智慧運算與機器學習。
目錄
前言
第一篇 機器學習基礎知識
第 1 章 機器學習的概念
1.1 資料集
1.2 監督式學習與非監督式學習
13 效能指標(Performance Measures)
1.4 模型驗證(Validation)
1.5 機器學習演算法
1.6 小結
第 2 章 初探集成式學習(Ensemble Learning)
2.1 何謂偏誤與變異
2.2 評估偏誤與變異
2.3 集成式學習(Ensemble Learning)
2.4 小結
第二篇 非生成式演算法
第 3 章 投票法(Voting)
3.1 多數決投票
3.2 使用 Python 實作硬投票
3.3 使用 Python 實作軟投票
3.4 小編補充:加權軟投票
3.5 小結
第 4 章 堆疊法(Stacking)
4.1 超學習(Meta-learning)
4.2 超學習器的訓練資料集
4.3 超學習器的測試資料集
4.4 選擇學習器(Learner)
4.5 使用堆疊法處理迴歸問題
4.6 使用堆疊法處理分類問題
4.7 建立堆疊的函式
4.8 小編補充:堆疊的其他技巧
4.9 小結
第三篇 生成式演算法
第 5 章 自助聚合法(Bootstrap Aggregation)
5.1 自助抽樣法
5.2 自助聚合法的原理
5.3 使用 Python 實作自助聚合法的完整機制
5.4 平行化(Parallelize)自助聚合法
5.5 使用 scikit-learn 提供的自助聚合法處理分類問題
5.6 使用 scikit-learn 提供的自助聚合法處理迴歸問題
5.7 小結
第 6 章 提升法(Boosting)
6.1 適應提升(Adaptive Boosting, AdaBoost)
6.2 使用 Python 實作適應提升的完整機制
6.3 使用 scikit-learn 提供的適應提升處理分類問題
6.4 使用 scikit-learn 提供的適應提升處理迴歸問題
6.5 梯度提升(Gradient Boosting)
6.6 使用 Python 實作梯度提升的完整機制
6.7 使用 scikit-learn 提供的梯度提升處理迴歸問題
68 使用 scikit-learn 提供的梯度提升處理分類問題
6.9 使用 XGBoost 提供的梯度提升處理迴歸問題
610 使用 XGBoost 提供的梯度提升處理分類問題
6.11 小結
第 7 章 隨機森林(Random Forest)
7.1 建立隨機森林
7.2 使用 scikit-learn 提供的隨機森林處理分類問題
73 使用 scikit-learn 提供的隨機森林處理迴歸問題
7.4 使用 scikit-learn 提供的極端隨機樹處理分類問題
7.5 使用 scikit-learn 提供的極端隨機樹處理迴歸問題
7.6 小結
第四篇 分群
第 8 章 分群(Clustering)
8.1 分群演算法
8.2 使用 scikit-learning 提供的 K 平均法來處理分群問題
8.3 使用投票法集成非監督式學習的基學習器
8.4 使用 OpenEnsemble 集成非監督式學習的基學習器
8.5 使用圖閉合(Graph Closure)集成非監督式學習的基學習器
8.6 使用共現鏈(Co-occurrence Linkage)集成非監督式學習的基學習器
8.7 小結
第五篇 5 個實務案例
第 9 章 檢測詐騙交易
9.1 初探資料集
9.2 探索式資料分析
9.3 投票法
9.4 堆疊法
9.5 自助聚合法
9.6 適應提升法
9.7 梯度提升法
9.8 隨機森林
9.9 不同方法的分析比較
9.10 小結
第 10 章 預測比特幣價格
10.1 時間序列資料
10.2 比特幣資料分析
10.3 建立基準模型
10.4 計算 Sharpe 值
10.5 投票法
10.6 堆疊法
10.7 自助聚合法
10.8 提升法
10.9 隨機森林
10.10 小結
第 11 章 推特(Twitter)情感分析
11.1 情感分析工具
11.2 取得 Twitter 資料
11.3 建立模型
11.4 即時分類推文
11.5 小結
第 12 章 推薦電影
12.1 推薦系統
12.2 神經網路推薦系統
12.3 使用 Keras 實作使用點積的神經網路
12.4 使用 Keras 實作自行探索網路結構的神經網路
12.5 集成多個神經網路,建立推薦系統
12.6 小編補充:集成神經網路的參數
12.7 小結
第 13 章 世界幸福報告分群
13.1 世界幸福報告
13.2 使用原始特徵建立集成模型
13.3 使用正規化特徵建立集成模型
13.4 使用 t-分布隨機鄰居嵌入降維後特徵建立集成模型
13.5 觀察分群結果
13.6 小結
後記
前言
第一篇 機器學習基礎知識
第 1 章 機器學習的概念
1.1 資料集
1.2 監督式學習與非監督式學習
13 效能指標(Performance Measures)
1.4 模型驗證(Validation)
1.5 機器學習演算法
1.6 小結
第 2 章 初探集成式學習(Ensemble Learning)
2.1 何謂偏誤與變異
2.2 評估偏誤與變異
2.3 集成式學習(Ensemble Learning)
2.4 小結
第二篇 非生成式演算法
第 3 章 投票法(Voting)
3.1 多數決投票
3.2 使用 Python 實作硬投票
3.3 使用 Python 實作軟投票
3.4 小編補充:加權軟投票
3.5 小結
第 4 章 堆疊法(S...