數據科學 R語言實踐 : 面向計算推理與問題求解的案例研究法 (Data science in R : a case studies approach to computational reasoning and problem solving) 数据科学R语言实践:面向计算推理与问题求解的案例研究法

德博拉·諾蘭

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

商品描述

本書帶領讀者身臨其境地體驗數據科學領域的日常工作,書中的12章即為12個鮮活的實踐案例,包括航班延誤數據分析、股票配對交易模擬以及二十一點紙牌游戲策略開發等,涵蓋統計學、數據庫、機器學習和可視化技術等眾多知識點。本書的重點是計算推理和問題求解的思維過程,而不涉及具體編程語言的語法細節。本書適合作為統計計算、數據挖掘等相關課程的補充案例教材,也適合該領域的技術人員閱讀參考。

作者簡介

Deborah Nolan在改進數學和統計學的教學方法以及為本科生提供拓展服務方面傾註了大量心血。她擔任加州大學伯克利分校本科教育的Zaffaroni Family主席,獲得過伯克利分校的大學傑出教學獎,以及普林斯頓大學傑出教學William R. Kenan, Jr.客座教授席位。她是美國統計學會的會士,計算分會和教育分會的前任主席。她也是美國數理統計研究院的會士。她參與指導了數學和理學教師培訓計劃、加州大學教學培訓項目、在職名師培訓項目和美國數學教育培訓項目。她出版了包括本書在內的多部著作。

 

目錄大綱

譯者序 
前言 
致謝 
作者簡介 

第一部分 數據操作和建模

第1章 基於室內定位系統的位置預測2 
1.1 引言2 
1.2 原始數據3 
1.3 數據清洗和建立用於分析的數據表示10 
1.3.1 對於方向數據的探索12 
1.3.2 對於MAC地址數據的探索13 
1.3.3 對於手持設備位置數據的探索15 
1.3.4 數據準備函數的創建17 
1.4 信號強度的分析17 
1.4.1 信號強度的分佈18 
1.4.2 信號與距離之間的關系22 
1.5 預測位置的最近鄰方法26 
1.5.1 測試數據的準備26 
1.5.2 方向的選擇27 
1.5.3 發現最近鄰29 
1.5.4 交叉驗證和k的選擇31 
1.6 練習題34 
參考文獻36 

第2章 櫻花公路賽參賽選手比賽時間建模37 
2.1 引言37 
2.2 將比賽結果表讀入R中39 
2.3 數據清洗和變量格式化46 
2.4 探索所有男選手的跑步時間53 
2.4.1 根據大量觀察繪制散點圖53 
2.4.2 對平均成績構建擬合模型56 
2.4.3 橫截面數據和協變量63 
2.5 為跨年度的個人參賽選手構造記錄66 
2.6 對個人跑步時間的變化進行建模74 
2.7 從網上抓取比賽結果78 
2.8 練習題84 
參考文獻86 

第3章 應用統計學方法識別垃圾郵件87 
3.1 引言87 
3.2 郵件消息解析88 
3.3 讀取郵件消息91 
3.4 文本挖掘和樸素貝葉斯分類94 
3.5 在郵件消息中找到單詞96 
3.5.1 將消息劃分成消息頭部與消息正文96 
3.5.2 從消息正文中移除附件97 
3.5.3 從消息正文中抽取單詞103 
3.5.4 完成數據準備過程105 
3.6 實現樸素貝葉斯分類器106 
3.6.1 測試數據與訓練數據107 
3.6.2 訓練數據的概率估計108 
3.6.3 分類新消息110 
3.6.4 計算方面的考慮114 
3.7 遞歸劃分與分類樹115 
3.8 將電子郵件消息組織成R語言數據結構117 
3.8.1 處理郵件頭部118 
3.8.2 處理附件121 
3.8.3 在更多的郵件數據上測試代碼123 
3.8.4 完成處理過程124 
3.9 從郵件消息中獲取變量126 
3.10 探索郵件特徵集合133 
3.11 使用rpart()模型擬合郵件數據135 
3.12 練習題139 
參考文獻142 

第4章 處理機器人和傳感器日誌文件:尋找圓形目標143 
4.1 描述143 
4.2 數據144 
4.2.1 讀取一個完整的日誌文件146 
4.2.2 探索日誌文件150 
4.2.3 可視化路徑154 
4.2.4 探索 “觀察”157 
4.2.5 範圍值的誤差分佈160 
4.3 探測圓形目標162 
4.3.1 連接機器人背後的片段166 
4.3.2 確定一個片段是否對應於一個圓形168 
4.4 實時流數據情況下探測目標180 
參考文獻182 

第5章 針對12GB數據集的分析策略:航班延誤案例183 
5.1 引言183 
5.2 獲取航班數據集184 
5.3 處理海量數據集:計算航班延誤數184 
5.3.1 R程序設計環境185 
5.3.2 UNIX shell方法186 
5.3.3 支持R的SQL數據庫188 
5.3.4 R的bigmemory程序包191 
5.4 使用並行計算進行數據探索:航班延誤的分佈194 
5.4.1 使用foreach編寫可並行化的循環194 
5.4.2 使用“劃分-應用-合並”方法獲得更好的性能196 
5.4.3 使用“劃分-應用-合並”方法發現航班飛行的最佳時間196 
5.5 從探索分析到建模:舊飛機會帶來較大的延誤嗎200 
參考文獻201 

第二部分 模擬研究 

第6章 股票的配對交易204 
6.1 問題提出204 
6.2 數據格式208 
6.3 金融數據的讀取209 
6.4 時間序列的可視化211 
6.5 查找開倉點和平倉點213 
6.5.1 識別倉位213 
6.5.2 顯示倉位215 
6.5.3 查找所有開/平倉216 
6.5.4 計算一個倉位的收益218 
6.5.5 找到k的最優值220 
6.6 模擬研究223 
6.6.1 股票價格序列模擬225 
6.6.2 提升stockSim()函數的運行速度233 
參考文獻235 

第7章 分支過程的模擬研究236 
7.1 引言236 
7.2 隨機過程探索239 
7.3 產生後代241 
7.3.1 檢查結果244 
7.3.2 考慮其他的實現方式245 
7.4 性能分析與代碼改進245 
7.5 從一個作業的後代到全部的後代247 
7.6 單元測試248 
7.7 函數返回值的結構249 
7.8 家族樹:分支過程模擬250 
7.9 模擬復制254 
7.10 練習題260 
參考文獻261 

第8章 具有相變過程的自組織動態系統262 
8.1 引言與動機262 
8.2 模型263 
8.3 實現BML模型265 
8.3.1 創建初始網格結構266 
8.3.2 測試網格創建函數269 
8.3.3 顯示網格273 
8.3.4 可視化網格273 
8.3.5 簡單方便的面向對象程序設計276 
8.3.6 移動汽車278 
8.4 評估代碼性能284 
8.5 用C實現BML模型295 
8.5.1 用C編寫算法297 
8.5.2 編譯、加載和調用C代碼303 
8.6 運行模擬307 
8.7 實驗性編譯311 
參考文獻312 

第9章 模擬二十一點紙牌游戲313 
9.1 引言313 
9.2 二十一點游戲基礎314 
9.3 玩一手二十一點游戲317 
9.4 游戲策略321 
9.5 玩多手二十一點游戲326 
9.6 一個更加精確的發牌器329 
9.7 算牌333 
9.8 合而為一335 
9.9 練習題337 
參考文獻338 

第三部分 數據和Web技術 

第10章 棒球:探索關系數據庫中的數據340 
10.1 引言340 
10.2 Sean Lahman數據庫341 
10.3 匯總球員工資得到球隊工資總額343 
10.4 合並工資總額數據與其他表中的信息348 
10.4.1 在工資總額數據中增加球隊名稱348 
10.4.2 在工資總額數據中增加世界大賽記錄351 
10.5 探索極端工資352 
10.6 練習題354 
參考文獻355 

第11章 CIA世界概況的混搭應用357 
11.1 引言357 
11.2 採集數據359 
11.3 從不同數據源集成數據360 
11.4 準備繪圖數據361 
11.5 使用Google Earth繪圖366 
11.6 從CIA的XML文件中抽取人口統計信息370 
11.7 直接生成KML376 
11.8 附加的計算任務381 
11.8.1 創建繪圖標識381 
11.8.2 從字符串生成KML文件的效率381 
11.8.3 從HTML文件中抽取緯度和經度383 
11.9 練習題383 
參考文獻386 

第12章 利用Web抓取和文本挖掘探索數據科學職位招聘信息388 
12.1 引言與動機388 
12.2 探索不同的Web網站390 
12.3 初步/探索性抓取:Kaggle網站的職位招聘列表395 
12.3.1 處理文本399 
12.3.2 泛化到其他招聘啟事中400 
12.3.3 抓取Kaggle招聘啟事列表403 
12.4 抓取CyberCoders.com404 
12.4.1 從一條招聘啟事中提取技能列表407 
12.4.2 在搜索結果中發現指向招聘啟事的鏈接411 
12.4.3 查找招聘啟事搜索結果的下一頁416 
12.4.4 將這些函數集成在一起417 
12.5 對任意網站可重用的通用框架418 
12.6 抓取Career Builder網站421 
12.7 抓取Monster.com網站422 
12.8 分析結果:重要的技能424 
12.9 Web抓取註意事項430 
12.10 練習題431 
參考文獻431