阿裡雲天池大賽賽題解析 — 機器學習篇

天池平臺

立即出貨

買這商品的人也買了...

相關主題

商品描述

本書聚焦機器學習算法建模及相關技術,以工業蒸汽量預測、天貓用戶重復購買預測、O2O優惠券預測和阿裡雲安全惡意程序檢測等四個天池經典賽題作為實戰案例,針對實際賽題按照賽題理解、數據探索、特徵工程、模型訓練、模型驗證、特徵優化、模型融合等步驟,將賽題的解決方案從0到1層層拆解、詳細說明,在展現專業選手解題過程的同時,配以豐富的相關技術知識作為補充。本書從經典商業案例出發,內容由淺入深、層層遞進,既可以作為專業開發者的參考用書,也可以作為參賽選手研讀專業算法的實戰手冊。

目錄大綱

目  錄 賽題一 工業蒸汽量預測 1 賽題理解 2 1.1 賽題背景 2 1.2 賽題目標 2 1.3 數據概覽 2 1.4 評估指標 3 1.5 賽題模型 4 2 數據探索 6 2.1 理論知識 6 2.1.1 變量識別 6 2.1.2 變量分析 6 2.1.3 缺失值處理 10 2.1.4 異常值處理 11 2.1.5 變量轉換 14 2.1.6 新變量生成 15 2.2 賽題數據探索 16 2.2.1 導入工具包 16 2.2.2 讀取數據 16 2.2.3 查看數據 16 2.2.4 可視化數據分佈 18 2.2.5 查看特徵變量的相關性 26 3 特徵工程 33 3.1 特徵工程的重要性和處理 33 3.2 數據預處理和特徵處理 33 3.2.1 數據預處理 33 3.2.2 特徵處理 34 3.3 特徵降維 38 3.3.1 特徵選擇 39 3.3.2 線性降維 44 3.4 賽題特徵工程 45 3.4.1 異常值分析 45 3.4.2 最大值和最小值的歸一化 46 3.4.3 查看數據分佈 47 3.4.4 特徵相關性 48 3.4.5 特徵降維 48 3.4.6 多重共線性分析 49 3.4.7 PCA處理 50 4 模型訓練 52 4.1 回歸及相關模型 52 4.1.1 回歸的概念 52 4.1.2 回歸模型訓練和預測 52 4.1.3 線性回歸模型 52 4.1.4 K近鄰回歸模型 54 4.1.5 決策樹回歸模型 55 4.1.6 集成學習回歸模型 58 4.2 賽題模型訓練 61 4.2.1 導入相關庫 61 4.2.2 切分數據 62 4.2.3 多元線性回歸 62 4.2.4 K近鄰回歸 62 4.2.5 隨機森林回歸 63 4.2.6 LGB模型回歸 63 5 模型驗證 64 5.1 模型評估的概念和方法 64 5.1.1 欠擬合與過擬合 64 5.1.2 模型的泛化與正則化 68 5.1.3 回歸模型的評估指標和調用方法 70 5.1.4 交叉驗證 72 5.2 模型調參 75 5.2.1 調參 75 5.2.2 網格搜索 76 5.2.3 學習曲線 77 5.2.4 驗證曲線 78 5.3 賽題模型驗證和調參 78 5.3.1 模型過擬合與欠擬合 78 5.3.2 模型正則化 81 5.3.3 模型交叉驗證 82 5.3.4 模型超參空間及調參 85 5.3.5 學習曲線和驗證曲線 89 6 特徵優化 93 6.1 特徵優化的方法 93 6.1.1 合成特徵 93 6.1.2 特徵的簡單變換 93 6.1.3 用決策樹創造新特徵 94 6.1.4 特徵組合 94 6.2 賽題特徵優化 96 6.2.1 導入數據 96 6.2.2 特徵構造方法 96 6.2.3 特徵構造函數 96 6.2.4 特徵降維處理 96 6.2.5 模型訓練和評估 97 7 模型融合 100 7.1 模型優化 100 7.1.1 模型學習曲線 100 7.1.2 模型融合提升技術 100 7.1.3 預測結果融合策略 102 7.1.4 其他提升方法 105 7.2 賽題模型融合 106 7.2.1 導入工具包 106 7.2.2 獲取訓練數據和測試數據 106 7.2.3 模型評價函數 107 7.2.4 採用網格搜索訓練模型 107 7.2.5 單一模型預測效果 109 7.2.6 模型融合Boosting方法 115 7.2.7 多模型預測Bagging方法 118 7.2.8 多模型融合Stacking方法 119 7.2.9 模型驗證 127 7.2.10 使用lr_reg和lgb_reg進行融合預測 127 賽題二 天貓用戶重復購買預測 1 賽題理解 130 1.1 賽題背景 130 1.2 數據介紹 131 1.3 評估指標 133 1.4 賽題分析 134 2 數據探索 137 2.1 理論知識 137 2.1.1 缺失數據處理 137 2.1.2 不均衡樣本 138 2.1.3 常見的數據分佈 141 2.2 賽題數據探索 144 2.2.1 導入工具包 145 2.2.2 讀取數據 145 2.2.3 數據集樣例查看 145 2.2.4 查看數據類型和數據大小 146 2.2.5 查看缺失值 147 2.2.6 觀察數據分佈 148 2.2.7 探查影響復購的各種因素 150 3 特徵工程 155 3.1 特徵工程介紹 155 3.1.1 特徵工程的概念 155 3.1.2 特徵歸一化 155 3.1.3 類別型特徵的轉換 156 3.1.4 高維組合特徵的處理 156 3.1.5 組合特徵 157 3.1.6 文本表示模型 157 3.2 賽題特徵工程思路 158 3.3 賽題特徵工程構造 160 3.3.1 工具導入 160 3.3.2 數據讀取 160 3.3.3 對數據進行內存壓縮 161 3.3.4 數據處理 163 3.3.5 定義特徵統計函數 164 3.3.6 提取統計特徵 166 3.3.7 利用Countvector和TF-IDF提取特徵 170 3.3.8 嵌入特徵 170 3.3.9 Stacking分類特徵 171 4 模型訓練 179 4.1 分類的概念 179 4.2 分類相關模型 179 4.2.1 邏輯回歸分類模型 179 4.2.2 K近鄰分類模型 180 4.2.3 高斯貝葉斯分類模型 182 4.2.4 決策樹分類模型 182 4.2.5 集成學習分類模型 183 5 模型驗證 186 5.1 模型驗證指標 186 5.1.1 準確度 186 5.1.2 查準率和查全率 188 5.1.3 F1值 189 5.1.4 分類報告 189 5.1.5 混淆矩陣 189 5.1.6 ROC 190 5.1.7 AUC曲線 190 5.2 賽題模型驗證和評估 190 5.2.1 基礎代碼 190 5.2.2 簡單驗證 191 5.2.3 設置交叉驗證方式 192 5.2.4 模型調參 194 5.2.5 混淆矩陣 195 5.2.6 不同的分類模型 198 5.2.7 自己封裝模型 205 6 特徵優化 211 6.1 特徵選擇技巧 211 6.2 賽題特徵優化 213 6.2.1 基礎代碼 213 6.2.2 缺失值補全 213 6.2.3 特徵選擇 213 賽題三 O2O優惠券預測 1 賽題理解 222 1.1 賽題介紹 222 1.2 賽題分析 223 2 數據探索 225 2.1 理論知識 225 2.1.1 數據探索的定義 225 2.1.2 數據探索的目的 226 2.1.3 相關Python包 226 2.2 初步的數據探索 226 2.2.1 數據讀取 226 2.2.2 數據查看 227 2.2.3 數據邊界探索 231 2.2.4 訓練集與測試集的相關性 232 2.2.5 數據統計 236 2.3 數據分佈 238 2.3.1 對文本數據的數值化處理 238 2.3.2 數據分佈可視化 242 3 特徵工程 246 3.1 賽題特徵工程思路 246 3.2 賽題特徵構建 248 3.2.1 工具函數 248 3.2.2 特徵群生成函數 250 3.2.3 特徵集成函數 256 3.2.4 特徵輸出 257 3.3 對特徵進行探索 260 3.3.1 特徵讀取函數 260 3.3.2 特徵總覽 261 3.3.3 查看特徵的分佈 262 3.3.4 特徵相關性分析 265 4 模型訓練 266 4.1 模型訓練與評估 266 4.2 不同算法模型的性能對比 271 4.2.1 樸素貝葉斯 271 4.2.2 邏輯回歸 271 4.2.3 決策樹 272 4.2.4 隨機森林 272 4.2.5 XGBoost 273 4.2.6 LightGBM 274 4.2.7 不同特徵效果對比 274 4.3 結果輸出 274 5 模型驗證 276 5.1 評估指標 276 5.2 交叉驗證 276 5.3 模型比較 279 5.4 驗證結果可視化 282 5.5 結果分析 289 5.6 模型調參 290 5.7 實際方案 292 6 提交結果 299 6.1 整合及輸出結果 299 6.2 結果提交及線上驗證 302 賽題四 阿裡雲安全惡意程序檢測 1 賽題理解 306 1.1 賽題介紹 306 1.2 賽題分析 307 2 數據探索 310 2.1 訓練集數據探索 310 2.1.1 數據特徵類型 310 2.1.2 數據分佈 311 2.1.3 缺失值 312 2.1.4 異常值 312 2.1.5 標簽分佈 313 2.2 測試集數據探索 314 2.2.1 數據信息 314 2.2.2 缺失值 315 2.2.3 數據分佈 315 2.2.4 異常值 315 2.3 數據集聯合分析 316 2.3.1 file_id分析 316 2.3.2 API分析 317 3 特徵工程與基線模型 318 3.1 特徵工程概述 318 3.1.1 特徵工程介紹 318 3.1.2 構造特徵 318 3.1.3 特徵選擇 319 3.2 構造線下驗證集 319 3.2.1 評估穿越 319 3.2.2 訓練集和測試集的特徵差異性 320 3.2.3 訓練集和測試集的分佈差異性 320 3.3 基線模型 320 3.3.1 數據讀取 320 3.3.2 特徵工程 321 3.3.3 基線構建 322 3.3.4 特徵重要性分析 324 3.3.5 模型測試 325 4 高階數據探索 326 4.1 變量分析 326 4.2 高階數據探索實戰 329 4.2.1 數據讀取 329 4.2.2 多變量交叉探索 329 5 特徵工程進階與方案優化 343 5.1 pivot特徵構建 343 5.1.1 pivot特徵 343 5.1.2 pivot特徵構建時間 343 5.1.3 pivot特徵構建細節和特點 343 5.2 業務理解和結果分析 344 5.2.1 結合模型理解業務 344 5.2.2 多分類問題預測結果分析 344 5.3 特徵工程進階實踐 344 5.3.1 特徵工程基礎部分 344 5.3.2 特徵工程進階部分 348 5.3.3 基於LightGBM的模型驗證 349 5.3.4 模型結果分析 351 5.3.5 模型測試 354 6 優化技巧與解決方案升級 355 6.1 優化技巧:Python處理大數據的技巧 355 6.1.1 內存管理控制 355 6.1.2 加速數據處理的技巧 356 6.1.3 其他開源工具包 356 6.2 深度學習解決方案:TextCNN建模 358 6.2.1 問題轉化 358 6.2.2 TextCNN建模 358 6.2.3 數據預處理 360 6.2.4 TextCNN網絡結構 361 6.2.5 TextCNN訓練和測試 362 6.2.6 結果提交 364 7 開源方案學習 365