《數(shù)據(jù)科學面試通關(guān)》詳細闡述了與數(shù)據(jù)科學面試相關(guān)的基本解決方案,主要包括探索現(xiàn)代數(shù)據(jù)科學領域、在數(shù)據(jù)科學領域?qū)ふ夜ぷ鳌?Python編程、數(shù)據(jù)可視化與數(shù)據(jù)敘述、使用 SQL查詢數(shù)據(jù)庫、 Linux中的 Shell和 Bash腳本編寫、使用 Git進行版本控制、用概率和統(tǒng)計挖掘數(shù)據(jù)、理解特征工程和為建模準備數(shù)據(jù)、精通機器學習概念、用深度學習構(gòu)建網(wǎng)絡、用 MLOps實現(xiàn)機器學習解決方案、掌握面試環(huán)節(jié)、協(xié)商薪酬等內(nèi)容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關(guān)方案的實現(xiàn)過程。
《數(shù)據(jù)科學面試通關(guān)》覆蓋數(shù)據(jù)科學面試所需核心技能,從Python編程到機器學習、深度學習及MLOps,助力您全面提升,成功拿下理想工作。
在當今這個充滿活力的技術(shù)環(huán)境中,對人工智能(AI)和數(shù)據(jù)科學角色的專業(yè)人才的需求激增,數(shù)據(jù)科學就業(yè)市場也日益被各個級別的數(shù)據(jù)科學和人工智能員工所占據(jù)。本書是一本全面的指南,旨在為有志之士和經(jīng)驗豐富的個人提供應對數(shù)據(jù)科學面試復雜性所需的基本工具和知識。無論你是第一次踏入人工智能領域,還是旨在提升專業(yè)技能,本書都提供了一種全面的方法幫助你掌握該領域的基礎和尖端內(nèi)容。
本書涵蓋了從使用 Python 和 SQL 編程到統(tǒng)計分析、預建模和數(shù)據(jù)清洗概念、機器學習(ML)、深度學習、大型語言模型(LLM)和生成式人工智能的廣泛關(guān)鍵主題。我們的目標是在深入探討基礎概念的同時,也提供全面的回顧和最新進展。在一個以語言模型和生成式人工智能的顛覆性潛力為標志的時代,不斷提升你的技能至關(guān)重要。這本書就像指南針,引導讀者了解這些變革性技術(shù)的復雜性,確保準備好應對它們帶來的挑戰(zhàn)并把握它們所呈現(xiàn)的機遇。
此外,除了技術(shù)實力之外,我們還將深入探討人工智能職位的面試藝術(shù),就如何在面試中脫穎而出和有效進行薪酬談判提供了指導。此外,為數(shù)據(jù)科學職位量身打造一份出色的簡歷也是至關(guān)重要的一步,本書就如何撰寫引人注目的簡歷,在競爭激烈的就業(yè)市場中吸引眼球提供獨到的見解。隨著人工智能重塑各行各業(yè)和創(chuàng)新加速發(fā)展,現(xiàn)在正是開始或推進數(shù)據(jù)科學之旅的理想時機。我們誠邀你深入了解這一全面的資源,并踏上掌握數(shù)據(jù)科學和人工智能動態(tài)世界的道路。
適用讀者
如果你是一名經(jīng)驗豐富的專業(yè)人士,或者是一名需要提高技能的年輕專業(yè)人士,或者正在尋找進入令人興奮的數(shù)據(jù)科學行業(yè)的機會,那么這本書就是為你準備的。
本書內(nèi)容
在第 1 章中,我們以一個簡短但有價值的概述開始我們的旅程,并介紹當前數(shù)據(jù)科學與人工智能的概況。
第 2 章介紹數(shù)據(jù)科學角色及其各種類別。
第 3 章介紹 Python 語言中最常見和有用的任務和操作。
第 4 章介紹如何講述引人入勝的數(shù)據(jù)故事。
第 5 章深入講解數(shù)據(jù)庫世界,理解數(shù)據(jù)庫的設計以及如何查詢數(shù)據(jù)庫以獲取數(shù)據(jù)。
第 6 章通過 bash 和 shell 命令的力量提高操作系統(tǒng)技能,使你能夠與多種技術(shù)進行本地或云端的交互。
第 7 章探索 Git 中最有用的命令,用于項目的協(xié)作和可重現(xiàn)性。
第 8 章講解一些相關(guān)的概率和統(tǒng)計主題,它們?yōu)樵S多機器學習模型和假設提供了基礎內(nèi)容。
第 9 章利用對描述性統(tǒng)計的理解創(chuàng)建干凈、機器可讀的數(shù)據(jù)集。
第 10 章介紹最常用的機器學習算法、假設條件、工作原理以及如何評估它們的性能。
第 11 章更進一步地研究在各種應用中構(gòu)建和評估神經(jīng)網(wǎng)絡,同時也會涉及人工智能的最新進展。
第 12 章回顧數(shù)據(jù)科學流程、工具和策略,以有效地設計和實施端到端的機器學習解決方案。
第 13 章講解在面試過程的每個階段成功繞過技術(shù)和非技術(shù)因素的最佳技巧。
第 14 章講解如何優(yōu)化收入潛力。
背景知識
為了充分利用本書,讀者應該具備 Python、SQL 和統(tǒng)計學的基礎知識。然而,如果讀者熟悉其他分析語言,如 R,也將從本書中受益。通過復習 SQL、Git、統(tǒng)計學和深度學習等關(guān)鍵數(shù)據(jù)科學概念,讀者將能很好地應對面試過程。
特別說明
在過去幾個月里,尤其是本書寫作過程中,可用的人工智能技術(shù)的普及度呈爆炸式增長。我們鼓勵讀者在他們的學習旅程中利用人工智能,借助諸如 ChatGPT 這樣的工具測試新獲得的技能。過去那種為了特定問題在 StackOverFlow 上搜索數(shù)小時的日子已經(jīng)一去不復返了,F(xiàn)在,求助的力量就在你的指尖上。
本書的作者也利用生成式人工智能輔助處理一些次要的編輯任務和創(chuàng)建代碼示例。然而,請放心,本書內(nèi)容是由人類編寫的,并且由我們規(guī)劃了書中包含的內(nèi)容。在這個新時代,我們只是想讓讀者了解我們?nèi)绾问褂昧诉@些工具。
萊昂德拉·R·岡薩雷斯是微軟的數(shù)據(jù)科學家,也是科技初創(chuàng)公司 CulTRUE 的首席數(shù)據(jù)官,擁有在科技、娛樂和廣告領域 10 年的經(jīng)驗。在她的學術(shù)生涯中,她完成了與谷歌、亞馬遜、NBC 和 AT&T 的教育合作。
第 1 篇 進入數(shù)據(jù)科學領域
第1章 探索現(xiàn)代數(shù)據(jù)科學領域 3
1.1 數(shù)據(jù)科學是什么 3
1.2 探索數(shù)據(jù)科學過程 5
1.2.1 數(shù)據(jù)收集 5
1.2.2 數(shù)據(jù)探索 5
1.2.3 數(shù)據(jù)建模 6
1.2.4 模型評估 6
1.2.5 模型部署和監(jiān)控 6
1.3 分析數(shù)據(jù)科學的不同類型 6
1.3.1 數(shù)據(jù)工程師 8
1.3.2 儀表板和可視化專家 8
1.3.3 機器學習專家 9
1.3.4 領域?qū)<?10
1.4 審視數(shù)據(jù)科學的職業(yè)路徑 10
1.4.1 傳統(tǒng)型數(shù)據(jù)科學家 11
1.4.2 領域?qū)<倚蛿?shù)據(jù)科學家 11
1.4.3 非傳統(tǒng)路徑數(shù)據(jù)科學家 12
1.5 解決經(jīng)驗瓶頸問題 13
1.5.1 學術(shù)經(jīng)驗 14
1.5.2 工作經(jīng)驗 15
1.6 理解預期的技能和能力 16
1.6.1 硬技能(技術(shù)技能) 17
1.6.2 軟技能(溝通技能) 19
1.7 探索數(shù)據(jù)科學的演變 20
1.7.1 新模型 20
1.7.2 新環(huán)境 20
1.7.3 新計算 21
1.7.4 新應用 21
1.8 本章小結(jié) 22
1.9 參考文獻 22
第2章 在數(shù)據(jù)科學領域?qū)ふ夜ぷ?23
2.1 尋找第一份數(shù)據(jù)科學工作 23
2.1.1 準備前行 24
2.1.2 尋找招聘板 25
2.1.3 構(gòu)建出色的作品集 29
2.1.4 申請工作 31
2.2 制作金牌簡歷 33
2.2.1 完美簡歷的神話 34
2.2.2 理解自動化簡歷篩選 34
2.2.3 打造有效的簡歷 35
2.2.4 格式和組織 36
2.2.5 使用正確的術(shù)語 37
2.3 準備獲得面試機會 39
2.3.1 摩爾定律 39
2.3.2 研究、研究、再研究 40
2.3.3 品牌塑造 42
2.4 本章小結(jié) 42
2.5 參考文獻 43
第 2 篇 操控和管理數(shù)據(jù)
第3章 Python編程 47
3.1 變量、數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu) 47
3.2 Python 中的索引 52
3.3 字符串操作 52
3.3.1 初始化字符串 53
3.3.2 字符串索引 53
3.4 使用 Python 控制語句和列表推導 57
3.4.1 條件語句 57
3.4.2 循環(huán)語句 58
3.4.3 列表推導 59
3.5 使用用戶定義的函數(shù) 61
3.5.1 用戶定義的函數(shù)的語法 61
3.5.2 使用用戶定義的函數(shù)進行操作 62
3.5.3 熟悉 lambda 函數(shù) 63
3.5.4 創(chuàng)建優(yōu)秀的函數(shù) 65
3.6 在 Python 中處理文件 67
3.7 使用 pandas 整理數(shù)據(jù) 68
3.7.1 處理缺失數(shù)據(jù) 69
3.7.2 選擇數(shù)據(jù) 70
3.7.3 排序數(shù)據(jù) 74
3.7.4 合并數(shù)據(jù) 75
3.7.5 使用 groupby()進行聚合 76
3.8 本章小結(jié) 81
3.9 參考文獻 82
第4章 數(shù)據(jù)可視化與數(shù)據(jù)敘述 83
4.1 理解數(shù)據(jù)可視化 83
4.1.1 條形圖 84
4.1.2 折線圖 85
4.1.3 散點圖 87
4.1.4 直方圖 87
4.1.5 密度圖 88
4.1.6 分位數(shù)-分位數(shù)圖(Q-Q 圖) 89
4.1.7 箱線圖 90
4.1.8 餅圖 91
4.2 調(diào)查行業(yè)工具 93
4.2.1 Power BI 93
4.2.2 Tableau 93
4.2.3 Shiny 93
4.2.4 ggplot2(R) 93
4.2.5 Matplotlib(Python) 94
4.2.6 Seaborn(Python) 94
4.3 開發(fā)儀表板、報告和關(guān)鍵績效指標 95
4.4 開發(fā)圖表和圖形 97
4.4.1 條形圖Matplotlib 97
4.4.2 條形圖Seaborn 99
4.4.3 散點圖Matplotlib 100
4.4.4 散點圖Seaborn 102
4.4.5 直方圖Matplotlib 103
4.4.6 直方圖Seaborn 104
4.5 應用基于情景的敘事 106
4.6 本章小結(jié) 109
第5章 使用SQL查詢數(shù)據(jù)庫 110
5.1 介紹關(guān)系數(shù)據(jù)庫 110
5.2 掌握 SQL 基礎知識 112
5.2.1 SELECT 語句 113
5.2.2 WHERE 子句 113
5.2.3 ORDER BY 子句 114
5.3 使用 GROUP BY 和 HAVING 聚合數(shù)據(jù) 116
5.3.1 GROUP BY 子句 116
5.3.2 HAVING 子句 118
5.4 使用 CASE WHEN 創(chuàng)建字段 119
5.5 分析子查詢和 CTE 120
5.5.1 SELECT 子句中的子查詢 121
5.5.2 FROM 子句中的子查詢 122
5.5.3 WHERE 子句中的子查詢 123
5.5.4 HAVING 子句中的子查詢 125
5.5.5 區(qū)分公用表表達式(CTE)和子查詢 125
5.6 使用連接合并表格 128
5.6.1 內(nèi)連接 128
5.6.2 左連接和右連接 131
5.6.3 全外連接 133
5.6.4 多表連接 134
5.7 計算窗口函數(shù) 135
5.7.1 OVER、ORDER BY、PARTITION 和 SET 135
5.7.2 LAG 和 LEAD 138
5.7.3 ROW_NUMBER 140
5.7.4 RANK 和 DENSE_RANK 140
5.7.5 使用日期函數(shù) 142
5.8 處理復雜查詢 143
5.9 本章小結(jié) 147
第6章 Linux中的Shell和Bash腳本編寫 148
6.1 操作系統(tǒng)簡介 148
6.2 導航系統(tǒng)目錄 149
6.2.1 介紹基本命令行提示符 150
6.2.2 理解目錄類型 151
6.3 文件和目錄操作 152
6.4 使用 Bash 進行腳本編寫 155
6.5 介紹控制語句 157
6.6 創(chuàng)建函數(shù) 160
6.7 數(shù)據(jù)處理和管道 162
6.8 使用 cron 164
6.9 本章小結(jié) 165
第7章 使用Git進行版本控制 167
7.1 介紹倉庫 167
7.2 創(chuàng)建倉庫 168
7.2.1 克隆現(xiàn)有的遠程倉庫 169
7.2.2 從頭開始創(chuàng)建本地倉庫 169
7.2.3 將本地倉庫和遠程倉庫關(guān)聯(lián) 170
7.3 詳解數(shù)據(jù)科學家的 Git 工作流程 172
7.4 在數(shù)據(jù)科學中使用 Git 標簽 174
7.4.1 理解 Git 標簽 175
7.4.2 作為數(shù)據(jù)科學家使用標簽 175
7.5 理解常見操作 175
7.6 本章小結(jié) 178
第 3 篇 探索人工智能
第8章 用概率和統(tǒng)計挖掘數(shù)據(jù) 181
8.1 用描述性統(tǒng)計描述數(shù)據(jù) 181
8.1.1 測量中心趨勢 181
8.1.2 測量變異性 183
8.2 介紹總體和樣本 184
8.2.1 定義總體和樣本 185
8.2.2 代表性樣本 185
8.2.3 減少抽樣誤差 186
8.3 理解中心極限定理 188
8.3.1 中心極限定理 188
8.3.2 證明正態(tài)性假設 188
8.4 用抽樣分布塑造數(shù)據(jù) 191
8.4.1 概率分布 191
8.4.2 均勻分布 192
8.4.3 正態(tài)分布和學生 t 分布 192
8.4.4 二項分布 193
8.4.5 泊松分布 194
8.4.6 指數(shù)分布 194
8.4.7 幾何分布 195
8.4.8 威布爾分布 196
8.5 假設檢驗 198
8.5.1 理解單樣本 t 檢驗 198
8.5.2 理解雙樣本 t 檢驗 199
8.5.3 理解配對樣本 t 檢驗 199
8.5.4 理解方差分析和多元方差分析 200
8.5.5 卡方檢驗 201
8.5.6 A/B 測試 201
8.6 理解Ⅰ 型錯誤和Ⅱ型錯誤 203
8.6.1 Ⅰ 型錯誤(假陽性) 204
8.6.2 Ⅱ型錯誤(假陰性) 205
8.6.3 尋求平衡 205
8.7 本章小結(jié) 206
8.8 參考文獻 207
第9章 理解特征工程和為建模準備數(shù)據(jù) 208
9.1 理解特征工程 208
9.1.1 避免數(shù)據(jù)泄漏 209
9.1.2 處理缺失數(shù)據(jù) 209
9.1.3 數(shù)據(jù)縮放 212
9.2 應用數(shù)據(jù)轉(zhuǎn)換 213
9.2.1 引入數(shù)據(jù)轉(zhuǎn)換 213
9.2.2 對數(shù)轉(zhuǎn)換 215
9.2.3 冪次轉(zhuǎn)換 216
9.2.4 Box-Cox 轉(zhuǎn)換 217
9.2.5 指數(shù)轉(zhuǎn)換 219
9.3 處理分類數(shù)據(jù)和其他特征 220
9.3.1 獨熱編碼 220
9.3.2 標簽編碼 221
9.3.3 目標編碼 223
9.3.4 計算字段 224
9.4 執(zhí)行特征選擇 226
9.4.1 特征選擇的類型 227
9.4.2 遞歸特征消除 227
9.4.3 L1 正則化 228
9.4.4 基于樹的特征選擇 228
9.4.5 方差膨脹因子 229
9.5 處理不平衡數(shù)據(jù) 230
9.5.1 理解不平衡數(shù)據(jù) 230
9.5.2 處理不平衡數(shù)據(jù) 231
9.6 降低維度 231
9.6.1 主成分分析 232
9.6.2 奇異值分解 232
9.6.3 t-SNE 233
9.6.4 自編碼器 233
9.7 本章小結(jié) 234
第10章 精通機器學習概念 236
10.1 介紹機器學習工作流程 236
10.1.1 問題陳述 238
10.1.2 模型選擇 238
10.1.3 模型調(diào)整 238
10.1.4 模型預測 238
10.2 監(jiān)督機器學習 239
10.2.1 回歸與分類 239
10.2.2 線性回歸回歸 240
10.2.3 邏輯回歸 244
10.2.4 k-最近鄰(k-NN) 246
10.2.5 隨機森林 248
10.2.6 極端梯度提升(XGBoost) 252
10.3 無監(jiān)督機器學習 254
10.3.1 K-means 255
10.3.2 具有噪聲的基于密度的聚類應用(DBSCAN) 257
10.3.3 其他聚類算法 260
10.3.4 評估聚類 261
10.4 總結(jié)其他值得注意的機器學習模型 262
10.5 理解偏差-方差權(quán)衡 263
10.6 超參數(shù)調(diào)整 265
10.6.1 網(wǎng)格搜索 265
10.6.2 隨機搜索 265
10.6.3 貝葉斯優(yōu)化 266
10.7 本章小結(jié) 267
第11章 用深度學習構(gòu)建網(wǎng)絡 268
11.1 介紹神經(jīng)網(wǎng)絡和深度學習 268
11.2 討論權(quán)重和偏差 271
11.2.1 權(quán)重介紹 271
11.2.2 偏差介紹 271
11.3 使用激活函數(shù)激活神經(jīng)元 273
11.3.1 常見激活函數(shù) 273
11.3.2 選擇合適的激活函數(shù) 275
11.4 剖析反向傳播 276
11.4.1 梯度下降 276
11.4.2 什么是反向傳播 276
11.4.3 損失函數(shù) 277
11.4.4 梯度下降步驟 278
11.4.5 梯度消失問題 278
11.5 使用優(yōu)化器 281
11.5.1 優(yōu)化算法 281
11.5.2 網(wǎng)絡調(diào)整 282
11.6 理解嵌入 284
11.6.1 詞嵌入 284
11.6.2 訓練嵌入 284
11.7 列出常見的網(wǎng)絡架構(gòu) 285
11.7.1 常見網(wǎng)絡 285
11.7.2 工具和包 287
11.8 介紹 GenAI 和 LLM 288
11.8.1 揭示語言模型 288
11.8.2 Transformer 和自注意力 289
11.8.3 遷移學習 290
11.8.4 GPT 應用 291
11.9 本章小結(jié) 293
第12章 用MLOps實現(xiàn)機器學習解決方案 294
12.1 引入 MLOps 294
12.2 理解數(shù)據(jù)采集 297
12.3 學習數(shù)據(jù)存儲的基礎知識 298
12.4 審查模型開發(fā) 299
12.5 模型部署的打包 300
12.5.1 確定要求 300
12.5.2 虛擬環(huán)境 301
12.5.3 環(huán)境管理的工具和方法 301
12.6 使用容器部署模型 302
12.7 驗證和監(jiān)控模型 304
12.7.1 驗證模型部署 304
12.7.2 模型監(jiān)控 305
12.7.3 思考治理 306
12.8 使用 Azure ML 的 MLOps 307
12.9 本章小結(jié) 307
第 4 篇 獲得工作
第13章 掌握面試環(huán)節(jié) 311
13.1 掌握與招聘人員的早期互動 311
13.2 掌握不同的面試階段 314
13.2.1 招聘經(jīng)理階段 314
13.2.2 技術(shù)面試 315
13.2.3 編碼問題 316
13.2.4 小組面試階段 319
13.3 本章小結(jié) 319
13.4 參考文獻 320
第14章 協(xié)商薪酬 321
14.1 理解薪酬格局 321
14.2 談判報價 322
14.2.1 談判考慮因素 322
14.2.2 回應報價 323
14.2.3 最大可談判薪酬和情境價值 324
14.3 本章小結(jié) 329
14.4 最后的話 330