本書(shū)針對(duì)Flink 1.11版本和Alink 1.2版本,采用“知識(shí)點(diǎn)+實(shí)例”的形式編寫(xiě),包括47個(gè)基于知識(shí)點(diǎn)的實(shí)例和1個(gè)綜合項(xiàng)目實(shí)例。第1章對(duì)大數(shù)據(jù)和人工智能進(jìn)行初步介紹;第2章用一個(gè)實(shí)例總覽Flink的關(guān)鍵知識(shí)點(diǎn);第3~5章介紹Flink的架構(gòu)、開(kāi)發(fā)基礎(chǔ)和轉(zhuǎn)換算子;第6、7、10、11章深入講解4種開(kāi)發(fā)Flink應(yīng)用程序的API;第8、9章講解操作Flink狀態(tài)(計(jì)算和容錯(cuò))的狀態(tài)處理器API和用于處理復(fù)雜事件(異常檢測(cè)、反欺詐、風(fēng)險(xiǎn)控制)的CEP庫(kù);第12章講解Flink如何與其他外部系統(tǒng)集成,并實(shí)現(xiàn)Flink與Kafka的集成;第13章介紹機(jī)器學(xué)習(xí)的基礎(chǔ)知識(shí);第14章講解機(jī)器學(xué)習(xí)框架Alink的知識(shí)和實(shí)戰(zhàn)應(yīng)用;第15章是項(xiàng)目實(shí)戰(zhàn),使用大數(shù)據(jù)和機(jī)器學(xué)習(xí)技術(shù)實(shí)現(xiàn)一個(gè)廣告推薦系統(tǒng)(包含離線訓(xùn)練、在線訓(xùn)練、實(shí)時(shí)預(yù)測(cè)和在線服務(wù))。本書(shū)可以作為具備Java基礎(chǔ)的開(kāi)發(fā)人員、大數(shù)據(jù)領(lǐng)域從業(yè)人員的參考用書(shū)。另外,閱讀本書(shū)的讀者不需要具備高等數(shù)學(xué)知識(shí)和人工智能的底層算法知識(shí)。
12年來(lái)一直在某一線互聯(lián)網(wǎng)公司擔(dān)任資深系統(tǒng)分析師。目前帶領(lǐng)3個(gè)研發(fā)團(tuán)隊(duì),承擔(dān)系統(tǒng)的分析、設(shè)計(jì)、實(shí)施、演進(jìn)以及技術(shù)團(tuán)隊(duì)管理和培訓(xùn)等職責(zé)!禨pring Boot實(shí)戰(zhàn)派》《Spring Cloud微服務(wù)架構(gòu)實(shí)戰(zhàn)派》作者
入門(mén)篇
第1章 進(jìn)入大數(shù)據(jù)和人工智能世界 2
1.1 認(rèn)識(shí)大數(shù)據(jù)和人工智能 2
1.2 認(rèn)識(shí)Flink 4
1.2.1 Flink是什么 4
1.2.2 Flink的發(fā)展歷程 4
1.2.3 Flink的應(yīng)用場(chǎng)景 6
1.3 認(rèn)識(shí)Alink 6
1.4 如何使用本書(shū)的源碼 6
-
第2章 【實(shí)例1】使用Flink的4種API處理無(wú)界數(shù)據(jù)流和有界數(shù)據(jù)流 8
2.1 創(chuàng)建Flink應(yīng)用程序 8
2.2 使用DataSet API處理有界數(shù)據(jù)流 10
2.2.1 編寫(xiě)批處理代碼 10
2.2.2 配置依賴(lài)作用域 11
2.2.3 測(cè)試Flink應(yīng)用程序 12
2.3 使用DataStream API處理無(wú)界數(shù)據(jù)流 12
2.3.1 自定義無(wú)界數(shù)據(jù)流數(shù)據(jù)源 12
2.3.2 編寫(xiě)無(wú)界數(shù)據(jù)流處理代碼 13
2.3.3 使用DataStream API的窗口功能處理無(wú)界數(shù)據(jù)流 14
2.4 使用Table API處理無(wú)界數(shù)據(jù)流和有界數(shù)據(jù)流 16
2.4.1 處理無(wú)界數(shù)據(jù)流 16
2.4.2 處理有界數(shù)據(jù)流 17
2.5 使用SQL處理無(wú)界數(shù)據(jù)流和有界數(shù)據(jù)流 19
2.5.1 處理無(wú)界數(shù)據(jù)流 19
2.5.2 處理有界數(shù)據(jù)流 19
2.6 生成執(zhí)行計(jì)劃圖 20
-
基礎(chǔ)篇
第3章 概覽Flink 24
3.1 了解流處理和批處理 24
3.1.1 數(shù)據(jù)流 24
3.1.2 流處理 25
3.1.3 流式的批處理 26
3.1.4 有狀態(tài)流處理 27
3.1.5 并行數(shù)據(jù)流 28
3.2 Flink的整體架構(gòu) 29
3.2.1 部署層 30
3.2.2 執(zhí)行引擎層 30
3.2.3 核心API層 30
3.2.4 領(lǐng)域庫(kù)層 30
3.3 Flink的編程接口 31
3.3.1 有狀態(tài)實(shí)時(shí)流處理接口 31
3.3.2 核心API(DataStream API/DataSet API) 32
3.3.3 Table API和SQL 33
3.3.4 比較DataStream API、DataSet API、Table API和SQL 34
3.4 Flink的項(xiàng)目依賴(lài) 34
3.4.1 Flink核心依賴(lài)和用戶(hù)的應(yīng)用程序依賴(lài) 35
3.4.2 流處理應(yīng)用程序和批處理應(yīng)用程序所需的依賴(lài) 35
3.4.3 Table API和SQL的依賴(lài) 36
3.4.4 Connector和Library的依賴(lài) 38
3.4.5 Hadoop的依賴(lài) 38
3.5 了解分布式執(zhí)行引擎的環(huán)境 38
3.5.1 作業(yè)管理器、任務(wù)管理器、客戶(hù)端 38
3.5.2 任務(wù)插槽和資源 40
3.5.3 Flink應(yīng)用程序的執(zhí)行 41
-
第4章 Flink開(kāi)發(fā)基礎(chǔ) 43
4.1 開(kāi)發(fā)Flink應(yīng)用程序的流程 43
4.1.1 了解Flink應(yīng)用程序的結(jié)構(gòu) 43
4.1.2 配置執(zhí)行環(huán)境和參數(shù) 44
4.1.3 初始化數(shù)據(jù)源 46
4.1.4 數(shù)據(jù)轉(zhuǎn)換 46
4.1.5 輸出結(jié)果和觸發(fā)程序 47
4.2 處理參數(shù) 49
4.2.1 將參數(shù)傳遞給函數(shù) 49
4.2.2 用參數(shù)工具讀取參數(shù) 50
4.2.3 在Flink應(yīng)用程序中使用參數(shù) 51
4.2.4 【實(shí)例2】通過(guò)withParameters()方法傳遞和使用參數(shù) 53
4.2.5 【實(shí)例3】通過(guò)參數(shù)工具讀取和使用參數(shù) 54
4.3 自定義函數(shù) 56
4.3.1 自定義函數(shù)的常用方式 56
4.3.2 了解累加器和計(jì)數(shù)器 57
4.3.3 【實(shí)例4】實(shí)現(xiàn)累加器 58
4.4 數(shù)據(jù)類(lèi)型和序列化 59
4.4.1 認(rèn)識(shí)數(shù)據(jù)類(lèi)型 59
4.4.2 類(lèi)型擦除和類(lèi)型推斷 62
4.4.3 【實(shí)例5】在Flink中使用元組類(lèi) 63
4.4.4 【實(shí)例6】在Flink中使用Java的POJO類(lèi) 63
4.4.5 處理類(lèi)型 65
4.4.6 認(rèn)識(shí)TypeInformation類(lèi) 65
4.4.7 認(rèn)識(shí)Java API類(lèi)型信息 66
-
第5章 Flink的轉(zhuǎn)換算子 69
5.1 定義鍵 69
5.1.1 定義元組的鍵 69
5.1.2 使用字段表達(dá)式定義鍵 70
5.1.3 使用鍵選擇器函數(shù)定義鍵 71
5.2 Flink的通用轉(zhuǎn)換算子 71
5.2.1 DataStream和DataSet的通用轉(zhuǎn)換算子 71
5.2.2 【實(shí)例7】使用Map算子轉(zhuǎn)換數(shù)據(jù) 72
5.2.3 【實(shí)例8】使用FlatMap算子拆分句子 73
5.2.4 【實(shí)例9】使用Filter算子過(guò)濾數(shù)據(jù) 74
5.2.5 【實(shí)例10】使用Project算子投射字段并排序 75
5.3 Flink的DataSet API專(zhuān)用轉(zhuǎn)換算子 76
5.3.1 聚合轉(zhuǎn)換算子 76
5.3.2 分區(qū)轉(zhuǎn)換算子 78
5.3.3 排序轉(zhuǎn)換算子 79
5.3.4 關(guān)聯(lián)轉(zhuǎn)換算子 80
5.3.5 【實(shí)例11】在按字段位置鍵分組的數(shù)據(jù)集上進(jìn)行聚合轉(zhuǎn)換 81
5.3.6 【實(shí)例12】在分組元組上進(jìn)行比較運(yùn)算 82
5.3.7 【實(shí)例13】使用MapPartition算子統(tǒng)計(jì)數(shù)據(jù)集的分區(qū)計(jì)數(shù) 83
5.3.8 【實(shí)例14】對(duì)POJO數(shù)據(jù)集和元組進(jìn)行分組與聚合 84
5.3.9 【實(shí)例15】使用First-n算子返回?cái)?shù)據(jù)集的前n個(gè)元素 87
5.4 Flink的DataStream API專(zhuān)用轉(zhuǎn)換算子 88
5.4.1 多流轉(zhuǎn)換算子 88
5.4.2 鍵控流轉(zhuǎn)換算子 89
5.4.3 窗口轉(zhuǎn)換算子 91
5.4.4 連接轉(zhuǎn)換算子 92
5.4.5 物理分區(qū)算子 95
5.4.6 其他轉(zhuǎn)換算子 96
5.4.7 【實(shí)例16】使用Union算子連接多個(gè)數(shù)據(jù)源 97
5.4.8 【實(shí)例17】使用Connect算子連接不同類(lèi)型的數(shù)據(jù)源 98
5.4.9 【實(shí)例18】使用Reduce操作鍵控流 99
5.4.10 【實(shí)例19】使用Split算子和Select算子拆分?jǐn)?shù)據(jù)流,并選擇拆分后的數(shù)據(jù)流 100
5.4.11 任務(wù)、算子鏈和資源組 101
5.5 認(rèn)識(shí)低階流處理算子 103
5.5.1 ProcessFunction——在非循環(huán)流上實(shí)現(xiàn)低階運(yùn)算 103
5.5.2 CoProcessFunction——在兩個(gè)輸入流上實(shí)現(xiàn)低階運(yùn)算 104
5.5.3 KeyedProcessFunction——在鍵控流上實(shí)現(xiàn)低階運(yùn)算 104
5.5.4 計(jì)時(shí)器和計(jì)時(shí)器服務(wù) 104
5.6 迭代運(yùn)算 106
5.6.1 認(rèn)識(shí)DataSet的全量迭代運(yùn)算和增量迭代運(yùn)算 106
5.6.2 比較全量迭代運(yùn)算和增量迭代運(yùn)算 108
5.6.3 【實(shí)例20】全量迭代 108
5.6.4 【實(shí)例21】增量迭代 109
5.6.5 認(rèn)識(shí)DataStream的迭代 111
5.6.6 【實(shí)例22】實(shí)現(xiàn)DataStream的歸零迭代運(yùn)算 112
-
進(jìn)階篇
第6章 使用DataSet API實(shí)現(xiàn)批處理 116
6.1 DataSet API的數(shù)據(jù)源 116
6.1.1 認(rèn)識(shí)DataSet API的數(shù)據(jù)源 116
6.1.2 配置CSV解析 117
6.1.3 【實(shí)例23】讀取和解析CSV文件 118
6.1.4 讀取壓縮文件 119
6.2 操作函數(shù)中的數(shù)據(jù)對(duì)象 121
6.2.1 禁用對(duì)象重用 121
6.2.2 啟用對(duì)象重用 122
6.3 語(yǔ)義注釋 122
6.3.1 轉(zhuǎn)發(fā)字段注釋 123
6.3.2 【實(shí)例24】使用函數(shù)類(lèi)注釋聲明轉(zhuǎn)發(fā)字段信息 124
6.3.3 非轉(zhuǎn)發(fā)字段 125
6.3.4 【實(shí)例25】聲明非轉(zhuǎn)發(fā)字段 125
6.3.5 讀取字段信息 126
6.3.6 【實(shí)例26】聲明讀取字段信息 126
6.4 認(rèn)識(shí)分布式緩存和廣播變量 127
6.4.1 分布式緩存 127
6.4.2 廣播變量 128
-
第7章 使用DataStream API實(shí)現(xiàn)流處理 130
7.1 認(rèn)識(shí)DataStream API 130
7.1.1 DataStream API的數(shù)據(jù)源 130
7.1.2 DataStream API的數(shù)據(jù)接收器 131
7.2 窗口 132
7.2.1 認(rèn)識(shí)時(shí)間驅(qū)動(dòng)和數(shù)據(jù)驅(qū)動(dòng)的窗口 132
7.2.2 認(rèn)識(shí)窗口分配器 133
7.2.3 認(rèn)識(shí)鍵控窗口和非鍵控窗口 138
7.2.4 認(rèn)識(shí)窗口的生命周期 139
7.2.5 【實(shí)例27】實(shí)現(xiàn)滾動(dòng)時(shí)間窗口和滑動(dòng)時(shí)間窗口 140
7.2.6 【實(shí)例28】實(shí)現(xiàn)滾動(dòng)計(jì)數(shù)窗口和滑動(dòng)計(jì)數(shù)窗口 141
7.2.7 【實(shí)例29】實(shí)現(xiàn)會(huì)話窗口 144
7.2.8 認(rèn)識(shí)窗口函數(shù) 146
7.2.9 【實(shí)例30】使用窗口函數(shù)實(shí)現(xiàn)窗口內(nèi)的計(jì)算 148
7.2.10 觸發(fā)器 152
7.2.11 【實(shí)例31】自定義觸發(fā)器 154
7.2.12 移除器 155
7.2.13 處理遲到數(shù)據(jù) 156
7.2.14 處理窗口結(jié)果 157
7.3 認(rèn)識(shí)時(shí)間和水位線生成器 159
7.3.1 認(rèn)識(shí)時(shí)間 159
7.3.2 設(shè)置時(shí)間特征 160
7.3.3 認(rèn)識(shí)水位線 161
7.3.4 內(nèi)置水位線生成器 166
7.3.5 編寫(xiě)水位線生成器 167
7.4 狀態(tài) 169
7.4.1 認(rèn)識(shí)狀態(tài) 169
7.4.2 使用算子狀態(tài) 172
7.4.3 認(rèn)識(shí)鍵控流 173
7.4.4 使用鍵控狀態(tài) 174
7.5 狀態(tài)持久化 178
7.5.1 檢查點(diǎn) 178
7.5.2 狀態(tài)快照 180
7.5.3 保存點(diǎn) 182
7.5.4 狀態(tài)后端 182
7.5.5 比較快照、檢查點(diǎn)、保存點(diǎn)和狀態(tài)后端 184
7.6 旁路輸出 184
7.6.1 認(rèn)識(shí)旁路輸出 184
7.6.2 【實(shí)例32】輸出多條旁路數(shù)據(jù)流 186
7.7 數(shù)據(jù)處理語(yǔ)義 187
7.7.1 認(rèn)識(shí)數(shù)據(jù)處理語(yǔ)義 187
7.7.2 兩階段提交 188
7.7.3 Flink“兩階段提交”的事務(wù)性寫(xiě)入 189
7.8 【實(shí)例33】自定義事件時(shí)間和水位線 191
-
第8章 使用狀態(tài)處理器API——State Processor API 193
8.1 認(rèn)識(shí)狀態(tài)處理器API 193
8.2 將應(yīng)用程序狀態(tài)映射到DataSet 194
8.3 讀取狀態(tài) 194
8.3.1 讀取算子狀態(tài) 194
8.3.2 讀取鍵控狀態(tài) 196
8.4 編寫(xiě)新的保存點(diǎn) 198
8.5 修改保存點(diǎn) 200
8.6 【實(shí)例34】使用狀態(tài)處理器API寫(xiě)入和讀取保存點(diǎn) 201
-
第9章 復(fù)雜事件處理庫(kù) 204
9.1 認(rèn)識(shí)復(fù)雜事件處理庫(kù) 204
9.2 【實(shí)例35】實(shí)現(xiàn)3種模式的CEP應(yīng)用程序 205
9.2.1 實(shí)現(xiàn)單個(gè)模式的CEP應(yīng)用程序 205
9.2.2 實(shí)現(xiàn)循環(huán)模式的CEP應(yīng)用程序 206
9.2.3 實(shí)現(xiàn)組合模式的CEP應(yīng)用程序 207
9.3 認(rèn)識(shí)模式API 207
9.3.1 單個(gè)模式 207
9.3.2 組合模式 212
9.3.3 循環(huán)模式中的連續(xù)性 213
9.3.4 模式組 215
9.3.5 跳過(guò)策略 218
9.4 檢測(cè)模式 220
9.5 復(fù)雜事件處理庫(kù)中的時(shí)間 222
9.5.1 按照“事件時(shí)間”處理遲到事件 222
9.5.2 時(shí)間上下文 223
-
第10章 使用Table API實(shí)現(xiàn)流/批統(tǒng)一處理 224
10.1 Table API和SQL 224
10.1.1 認(rèn)識(shí)Table API和SQL 224
10.1.2 Table API和SQL程序的結(jié)構(gòu) 225
10.1.3 認(rèn)識(shí)Table API和SQL的環(huán)境 225
10.1.4 認(rèn)識(shí)計(jì)劃器——OldPlanner和BlinkPlanner 226
10.1.5 查詢(xún)和輸出表 230
10.2 Table API和SQL的“流”的概念 232
10.2.1 認(rèn)識(shí)動(dòng)態(tài)表 232
10.2.2 在Table API和SQL中定義時(shí)間屬性 238
10.2.3 流上的連接 242
10.2.4 認(rèn)識(shí)時(shí)態(tài)表 243
10.3 Catalog 244
10.3.1 認(rèn)識(shí)Catalog 244
10.3.2 【實(shí)例36】使用Java和SQL的DDL方式創(chuàng)建Catalog、Catalog數(shù)據(jù)庫(kù)與Catalog表247
10.3.3 使用Catalog API 249
10.3.4 使用Table API和SQL Client操作Catalog 251
10.4 Table API、SQL與DataStream和DataSet API的結(jié)合 252
10.4.1 從Table API、SQL到DataStream、DataSet的架構(gòu) 252
10.4.2 使用DataStream和DataSet API創(chuàng)建視圖與表 252
10.4.3 將表轉(zhuǎn)換成DataStream或DataSet 253
10.4.4 從數(shù)據(jù)類(lèi)型到Table Schema的映射 255
10.4.5 【實(shí)例37】使用Table API轉(zhuǎn)換DataSet,并應(yīng)用Group算子、Aggregate算子、Select算子和Filter算子 258
10.4.6 【實(shí)例38】使用SQL轉(zhuǎn)換DataSet,并注冊(cè)表和執(zhí)行SQL查詢(xún) 259
-
第11章 使用SQL實(shí)現(xiàn)流/批統(tǒng)一處理 261
11.1 SQL客戶(hù)端 261
11.2 SQL語(yǔ)句 263
11.2.1 認(rèn)識(shí)SQL語(yǔ)句 263
11.2.2 CREATE語(yǔ)句 264
11.2.3 【實(shí)例39】使用CREATE語(yǔ)句創(chuàng)建和查詢(xún)表 270
11.2.4 查詢(xún)語(yǔ)句和查詢(xún)算子 271
11.2.5 DROP語(yǔ)句 283
11.2.6 ALTER語(yǔ)句 284
11.2.7 INSERT語(yǔ)句 286
11.2.8 SQL hints 288
11.2.9 描述語(yǔ)句、解釋語(yǔ)句、USE語(yǔ)句和SHOW語(yǔ)句 289
11.2.10 【實(shí)例40】使用描述語(yǔ)句描述表的Schema 291
11.2.11 【實(shí)例41】使用解釋語(yǔ)句解釋SQL語(yǔ)句的計(jì)劃 292
11.3 變更數(shù)據(jù)獲取 293
11.3.1 了解變更數(shù)據(jù)獲取 293
11.3.2 【實(shí)例42】獲取MySQL變更數(shù)據(jù) 293
11.4 認(rèn)識(shí)流式聚合 296
11.5 【實(shí)例43】使用DDL創(chuàng)建表,并進(jìn)行流式窗口聚合 299
-
第12章 集成外部系統(tǒng) 303
12.1 認(rèn)識(shí)Flink的連接器 303
12.1.1 內(nèi)置的連接器 303
12.1.2 Table&SQL的連接器 304
12.2 異步訪問(wèn)外部數(shù)據(jù) 307
12.3 外部系統(tǒng)拉取Flink數(shù)據(jù) 311
12.4 認(rèn)識(shí)Flink的Kafka連接器 311
12.4.1 認(rèn)識(shí)Kafka 311
12.4.2 Kafka連接器 314
12.4.3 Kafka消費(fèi)者 314
12.4.4 Kafka生產(chǎn)者 320
12.4.5 使用Kafka時(shí)間戳和Flink事件時(shí)間 323
12.4.6 認(rèn)識(shí)Kafka連接器指標(biāo) 324
12.4.7 啟用Kerberos身份驗(yàn)證 324
12.4.8 常見(jiàn)問(wèn)題 325
12.5 【實(shí)例44】在Flink中生產(chǎn)和消費(fèi)Kafka消息 325
12.5.1 添加Flink的依賴(lài) 325
12.5.2 自定義數(shù)據(jù)源 325
12.5.3 編寫(xiě)消息生產(chǎn)者 326
12.5.4 編寫(xiě)消息消費(fèi)者 327
12.5.5 測(cè)試在Flink中生產(chǎn)和消費(fèi)Kafka消息 327
-
機(jī)器學(xué)習(xí)篇
第13章 進(jìn)入機(jī)器學(xué)習(xí)世界 330
13.1 學(xué)習(xí)人工智能的經(jīng)驗(yàn) 330
13.2 認(rèn)識(shí)機(jī)器學(xué)習(xí) 331
13.3 機(jī)器學(xué)習(xí)的主要任務(wù) 332
13.3.1 分類(lèi) 332
13.3.2 回歸 333
13.3.3 聚類(lèi) 333
13.4 開(kāi)發(fā)機(jī)器學(xué)習(xí)應(yīng)用程序的基礎(chǔ) 333
13.4.1 機(jī)器學(xué)習(xí)的概念 333
13.4.2 開(kāi)發(fā)機(jī)器學(xué)習(xí)應(yīng)用程序的步驟 334
13.5 機(jī)器學(xué)習(xí)的分類(lèi) 336
13.5.1 監(jiān)督式學(xué)習(xí) 336
13.5.2 無(wú)監(jiān)督式學(xué)習(xí) 336
13.5.3 半監(jiān)督式學(xué)習(xí) 336
13.5.4 增強(qiáng)學(xué)習(xí) 336
13.6 了解機(jī)器學(xué)習(xí)算法 337
13.7 機(jī)器學(xué)習(xí)的評(píng)估模型 339
13.7.1 認(rèn)識(shí)評(píng)估模型 339
13.7.2 認(rèn)識(shí)二分類(lèi)評(píng)估 339
13.7.3 認(rèn)識(shí)多分類(lèi)評(píng)估、聚類(lèi)評(píng)估和回歸評(píng)估 342
-
第14章 流/批統(tǒng)一的機(jī)器學(xué)習(xí)框架(平臺(tái))Alink 343
14.1 認(rèn)識(shí)Alink的概念和算法庫(kù) 343
14.1.1 認(rèn)識(shí)Flink ML 343
14.1.2 Alink的架構(gòu) 343
14.1.3 Alink機(jī)器學(xué)習(xí)的過(guò)程 344
14.1.4 Alink的概念 344
14.1.5 Alink的算法庫(kù) 345
14.2 【實(shí)例45】以流/批方式讀取、取樣和輸出數(shù)據(jù)集 346
14.2.1 創(chuàng)建Alink應(yīng)用程序 346
14.2.2 按行讀取、拆分和輸出數(shù)據(jù)集 348
14.2.3 讀取、取樣和輸出Libsvm格式的數(shù)據(jù)集 349
14.2.4 讀取、取樣CSV格式的數(shù)據(jù)集 350
14.2.5 讀取、解析和輸出Kafka的數(shù)據(jù)集 351
14.3 【實(shí)例46】使用分類(lèi)算法實(shí)現(xiàn)數(shù)據(jù)的情感分析 353
14.3.1 認(rèn)識(shí)邏輯回歸算法 353
14.3.2 讀取數(shù)據(jù)并設(shè)置管道 354
14.3.3 訓(xùn)練模型和預(yù)測(cè) 355
14.3.4 保存、查看和復(fù)用模型 356
14.4 【實(shí)例47】實(shí)現(xiàn)協(xié)同過(guò)濾式的推薦系統(tǒng) 357
14.4.1 了解訓(xùn)練集 357
14.4.2 實(shí)現(xiàn)機(jī)器學(xué)習(xí)應(yīng)用程序 357
14.4.3 測(cè)試推薦系統(tǒng) 359
-
項(xiàng)目實(shí)戰(zhàn)篇
第15章 【實(shí)例48】使用大數(shù)據(jù)和機(jī)器學(xué)習(xí)技術(shù)實(shí)現(xiàn)一個(gè)廣告推薦系統(tǒng) 362
15.1 了解【實(shí)例架構(gòu) 362
15.1.2 【實(shí)例架構(gòu) 362
15.1.2 廣告推薦流程 363
15.1.3 機(jī)器學(xué)習(xí)流程 364
15.2 了解推薦系統(tǒng) 364
15.2.1 什么是推薦系統(tǒng) 364
15.2.2 推薦系統(tǒng)的分類(lèi) 365
15.2.3 推薦系統(tǒng)的排序算法 366
15.2.4 召回算法 367
15.3 認(rèn)識(shí)在線學(xué)習(xí)算法 367
15.3.1 離線訓(xùn)練和在線訓(xùn)練 367
15.3.2 在線學(xué)習(xí)算法FTRL 368
15.4 實(shí)現(xiàn)機(jī)器學(xué)習(xí) 369
15.4.1 處理數(shù)據(jù) 369
15.4.2 特征工程 370
15.4.3 離線模型訓(xùn)練 371
15.4.4 在線模型訓(xùn)練 371
15.4.5 在線預(yù)測(cè) 372
15.4.6 在線評(píng)估 372
15.5 實(shí)現(xiàn)接入服務(wù)層 374
15.5.1 了解接入服務(wù)層 374
15.5.2 在Alink中發(fā)送預(yù)測(cè)數(shù)據(jù) 374
15.5.3 實(shí)現(xiàn)廣告服務(wù)器接收預(yù)測(cè)數(shù)據(jù) 375
15.6 日志打點(diǎn)和監(jiān)測(cè) 376
-
附 錄 377
難懂概念介紹 377
Flink常見(jiàn)問(wèn)題匯總 378
Alink常見(jiàn)問(wèn)題匯總 381