「大數據會消失,資料科學不會」
「所有的科學都是資料科學」
―――資訊科學時代最需要閱讀的一本書―――東京大學資料科學人氣講座全收錄────
★傳說中的東大松尾研究室超熱門課程,第一手內容完整公開!
★用Python學習基本的程式撰寫,邊做邊學,鍛鍊最強的資料科學技能!
★收錄大量練習題和綜合題演練,打好理論基本功,具體應用於實務現場!
★體驗資料科學的魅力,培養整合跨領域課題的創造力!
所謂科學,是從世界上混沌的現象裡找出本質,逐步解決各式各樣的問題。在日漸龐大的各種資料當中,運用科學的力量解決各種問題,便可說是資料科學。
資料科學不僅只是數學(統計、機率、機器學習等),更是借用IT等各種力量,不斷挑戰世界上的難題與背後課題的綜合領域。
運用這樣資料科學和人工智慧的力量,減少浪費與沒有效率的事物,進一步創造出新價值,可以讓這個世界更加美好。
█ 動手操作實際的資料,大量練習題馬上學、馬上練、馬上懂!
本書廣泛說明資料科學不可不知的基礎事項,蒐羅豐富的重要關鍵知識和好用的參考資料,成為學習資料科學的地圖與羅盤。
書中主要使用Python來學習基本的程式撰寫技巧,以及資料的取得、讀取、操作等,含括各式各樣Python函式庫的使用方式、機率統計的手法、機器學習(監督式學習、非監督式學習、性能調校),還有讓Python高速化的方法和Spark的簡單操作等。
書中說明如何實際將現場的資料進行加工與分析,如何具體運用於市場行銷或金融等,使用何種手法來撰寫程式比較好,以及組合程式的技巧和流程。除了理論解說,也介紹實務性的使用方法,可立即上手應用。
收錄各種類型的實作練習題和綜合問題,以實際的問題為前提來思考,一邊動手實踐。
█ 本書的出版緣由
本書以2017年至2018年於東京大學舉辦的「全球消費智慧捐贈講座」講義和線上課程教材為基礎,用簡潔易懂的形式彙整編纂而成。
這個廣受歡迎的熱門講座首度出版,原因有三:
首先,希望讓更多讀者了解資料科學,培養資料分析技能。資訊時代各行各業都需要資料分析的人才,了解應該具備哪些知識、有何種處理手法、能達成什麼樣的目標,善用資料科學將是致勝的關鍵。
其次,雖然線上資源豐富又方便取得,但並非隨時都能在線上學習。藉由書籍的形式,可因地制宜反覆演練複習。
第三,以學習效果來說,書本的編排有助於深入思考,成效更佳。
█ 本書的目標讀者
▌有程式設計經驗、完成理科大一大二程度數學,以及對於學習資料科學有高度意願的一般人士
▌藉由本書,可掌握資料科學入門程度至中級程度的內容,已達中級程度以上者也能參酌本書來複習資料分析相關知識
▌對於目前備受矚目的深度學習,可透過本書掌握學習深度學習之前必需的基礎技能
█ 在本書裡學到的東西
▌Python/Numpy/Scipy/Pandas/Matplotlib的基礎
▌機率/統計/推論/迴歸的基礎
▌使用Numpy/Scipy進行科學計算
▌使用Pandas進行資料加工處理(遺漏資料/異常值的處理、時間序列資料的處理)
▌使用Matplotlib進行資料視覺化
▌機器學習(多元線性迴歸、邏輯迴歸、決策樹、k-NN、聚類分析、主成分分析、購物籃分析、模型調校)
作者簡介:
塚本邦尊Kunitaka Tsukamoto
現職在金融機構研究開發部門,負責從分析環境建構到資料的預處理自動化、分析、演算法開發與實作、交易資金與驗證、定型報告製作等工作。雖然每天在奈秒(10億分之1秒)的世界裡與紐約、倫敦的猛者搏鬥(?),但還不是很了解HFT(高頻交易)是否有助於這個世界,反而希望這項最尖端的技術能在IoT或其他領域提供幫助。
此外,做為個人事業,擔任本課程的講師,以及企業(製造商、系統公司、廣告代理商等)的分析支援與建議等,兼任某電腦相關研究所技術院士。
學生時代主修數學,至今任職的相關業界包括系統公司、廣告代理商、市場行銷、顧問公司等。
一直使用的開發工具為VisualStudio、RStudio、JupyterNotebook等,以及C#、SQL、VBA、R、Python、Shell、SAS等。
近來參與許多關於FPGA的專案,逐步學習硬體面(FPGA、Verilog、Vivado等)與網路面(WireShark等),每天使用AWS等雲端環境。最近有空閒時,也會用Raspberry Pi學習機器人科學,閱讀各類書籍。
山田典一Norikazu Yamada
Creative Intelligence股份有限公司代表董事。
在Yahoo! Japan、BrainPad、GREE、外商廣告代理公司等,從事運用資料挖掘、機器學習的進階分析工作。從資訊的價值觀點出發,考察智慧管理的正確意義、智慧流程與機器學習的融合可能性,獲頒日本競爭智慧學會(The Japan Society of Competitive Intelligence)最優秀論文獎(2015年)。
目前從事運用機器學習、決策科學、模擬科學的進階決策支援之技術研究開發、機器學習的導入顧問、資料運用諮詢。
大澤文孝Fumitaka Osawa
技術文件寫作人員。程式設計師。
資訊處理技術者(資訊安全專家、網路專家)。
多在雜誌和書籍等撰寫以開發者為目標讀者的文章。主要負責伺服器、網路、Web程式設計、資訊安全的文章。近年來從事Web系統的設計與開發。
主要著作
《ちゃんと使える力を身につける Webとプログラミングのきほんのきほん》
《ちゃんと使える力を身につける JavaScriptのきほんのきほん》(以上Mynavi出版)
《いちばんやさしい Python入門教室》
《Angular Webアプリ開発 スタートブック》(以上Sotechsha出版)
《AWS Lambda実践ガイド》
《できるキッズ 子どもと学ぶJavaScriptプログラミング入門》(以上Impress出版)
《Amazon Web Services完全ソリューションガイド》
《Amazon Web Services クラウドデザインパターン実装ガイド》(以上日經BP出版)
《UIまで手の回らないプログラマのためのBootstrap 3実用ガイド》
《prototype.jsとscript.aculo.usによるリッチWebアプリケーション開発》(以上翔泳社出版)
《TWE‐Liteではじめるセンサー電子工作》
《TWE‐Liteではじめるカンタン電子工作》
《Amazon Web ServicesではじめるWebサーバ》
《Python10行プログラミング》
《「sakura.io」ではじめるIoT電子工作》(以上工學社出版)
《たのしいプログラミング!: マイクラキッズのための超入門》(學研Plus出版)
相關著作:《Python入門教室:8堂基礎課程+程式範例練習,一次學會Python的原理概念、基本語法、實作應用》
中山浩太郎(監修)Kotaro Nakayama
2000年10月 就任關西綜合情報研究所代表董事社長
2002年4月 就任同志社女子大學兼任講師
2007年3月 取得大阪大學研究所資訊科學研究科博士學位
2007年4月 就任大阪大學研究所資訊科學研究科特任研究員
2008年4月 就任東京大學知識結構化中心(知の構造化センター)特任助理教授
2012年4月 就任東京大學知識結構化中心特任講師
2014年12月 就任東京大學工學系研究科技術經營戰略學專攻特任講師
松尾豐(協力)Yutaka Matsuo
1997年 東京大學工學部電子情報工學科畢業
2002年 取得東京大學研究所工學博士學位。同年起就任產業技術綜合研究所研究員
2005年10月 史丹佛大學客座研究員
2007年10月 東京大學研究所工學系研究科綜合研究機構/知識結構化中心/技術經營戰略學專攻副教授
2014年 東京大學研究所工學系研究科技術經營戰略學專攻「全球消費智慧捐贈講座」(グローバル消費インテリジェンス寄附講座)共同代表暨特任副教授
2002年獲頒人工智慧學會論文獎、2007年獲頒情報處理學會長尾真紀念特別獎
2012年~2014年擔任人工智慧學會編輯委員長,現為倫理委員長
專研領域為人工智慧、Web挖掘、大數據分析、深度學習
譯者簡介:
莊永裕
日本東京大學情報理工學博士。現任中央大學資工系助理教授。主要研究領域為程式語言設計、軟體工程,以及高效能運算。ACM、IEEE、IPSJ學會會員。曾任東京大學情報理工學系研究科助理教授,旅居日本多年。譯有數本程式語言與軟體開發相關之日文書籍。日常興趣為旅行、攝影、小說與音樂。
目錄
序言
【Chapter 1 本書的概要與Python的基礎】
▌1-1 資料科學家的工作
1-1-1 資料科學家的工作
1-1-2 資料分析的流程
1-1-3 本書的架構
1-1-4 對閱讀本書有幫助的文獻
1-1-5 動手來學習吧
▌1-2 Python的基礎
1-2-1 Jupyter Notebook的使用方法
1-2-2 Python的基礎
1-2-3 串列型別與字典型別
1-2-4 條件分歧與迴圈
1-2-5 函式
1-2-6 類別與實例
【Chapter 2 科學計算、資料加工、圖形描繪函式庫的使用方法基礎】
▌2-1 用於資料分析的函式庫
2-1-1 函式庫的匯入
2-1-2 Magic Command
2-1-3 匯入用於本章的函式庫
▌2-2 Numpy的基礎
2-2-1 Numpy的匯入
2-2-2 陣列的操作
2-2-3 亂數
2-2-4 矩陣
▌2-3 Scipy的基礎
2-3-1 Scipy的函式庫匯入
2-3-2 矩陣運算
2-3-3 牛頓法
▌2-4 Pandas的基礎
2-4-1 Pandas的函式庫匯入
2-4-2 Series的使用方法
2-4-3 DataFrame的使用方法
2-4-4 行列的操作
2-4-5 資料的抽出
2-4-6 資料的刪除與結合
2-4-7 統計
2-4-8 值的排序
2-4-9 nan (null)的判斷
▌2-5 Matplotlib的基礎
2-5-1 使用Matplotlib的準備工作
2-5-2 散佈圖
2-5-3 圖形的分割
2-5-4 函數圖形的描繪
2-5-5 直方圖
【Chapter 3 敘述統計與簡單迴歸分析】
▌3-1 統計分析的種類
3-1-1 敘述統計與推論統計
3-1-2 匯入用於本章的函式庫
▌3-2 資料的讀取與對話
3-2-1 讀取網路等處公開的對象資料
3-2-2 資料的讀取與確認
3-2-3 確認資料的性質
3-2-4 量的資料與質的資料
▌3-3 敘述統計
3-3-1 直方圖
3-3-2 平均、中位數、眾數
3-3-3 變異數、標準差
3-3-4 摘要統計量與百分位數
3-3-5 箱型圖
3-3-6 變異係數
3-3-7 散佈圖與相關係數
3-3-8 描繪所有變數的直方圖與散佈圖
▌3-4 簡單迴歸分析
3-4-1 簡單線性迴歸分析
3-4-2 決定係數
【Chapter 4 機率與統計的基礎】
▌4-1 學習機率與統計的準備工作
4-1-1 本章的背景知識
4-1-2 匯入用於本章的函式庫
▌4-2 機率
4-2-1 數學機率
4-2-2 統計機率
4-2-3 條件機率與乘法定理
4-2-4 獨立與相關
4-2-5 貝氏定理
▌4-3 機率變數與機率分布
4-3-1 機率變數、機率函數、分布函數、期望值
4-3-2 各種分布函數
4-3-3 核密度函數
▌4-4 應用:多元機率分布
4-4-1 聯合機率函數與邊際機率函數
4-4-2 條件機率函數與條件期望值
4-4-3 獨立的定義與連續分布
▌4-5 推論統計學
4-5-1 大數法則
4-5-2 中央極限定理
4-5-3 樣本分布
▌4-6 統計推論
4-6-1 估計量與點估計
4-6-2 無偏性與一致性
4-6-3 區間估計
4-6-4 計算估計量
▌4-7 統計檢驗
4-7-1 檢驗
4-7-2 第一型錯誤與第二型錯誤
4-7-3 檢驗大數據的注意事項
【Chapter 5 使用Python進行科學計算(Numpy與Scipy)】
▌5-1 概要與事前準備
5-1-1 本章的概要
5-1-2 匯入用於本章的函式庫
▌5-2 使用Numpy計算之應用
5-2-1 索引的參照
5-2-2 Numpy的運算處理
5-2-3 陣列操作與廣播
▌5-3 使用Scipy計算之應用
5-3-1 內插
5-3-2 線性代數:矩陣分解
5-3-3 積分與微分方程式
5-3-4 最佳化
【Chapter 6 使用Pandas進行資料加工處理】
▌6-1 概要與事前準備
6-1-1 匯入用於本章的函式庫
▌6-2 Pandas的基本資料操作
6-2-1 階層型索引
6-2-2 資料的結合
6-2-3 資料的操作與變換
6-2-4 資料的聚合與群組運算
▌6-3 遺漏資料與異常值處理的基礎
6-3-1 遺漏資料的處理方法
6-3-2 異常資料的處理方法
▌6-4 時間序列資料處理的基礎
6-4-1 時間序列資料的處理與變換
6-4-2 移動平均
【Chapter 7 使用Matplotlib進行資料視覺化】
▌7-1 資料的視覺化
7-1-1 關於資料的視覺化
7-1-2 匯入用於本章的函式庫
▌7-2 資料視覺化的基礎
7-2-1 長條圖
7-2-2 圓形圖
▌7-3 應用:金融資料的視覺化
7-3-1 將金融資料視覺化
7-3-2 顯示K線的函式庫
▌7-4 應用:思考分析結果的表現方式
7-4-1 關於資料製作的重點
【Chapter 8 機器學習的基礎(監督式學習)】
▌8-1 機器學習概觀
8-1-1 何謂機器學習?
8-1-2 監督式學習
8-1-3 非監督式學習
8-1-4 強化學習
8-1-5 匯入用於本章的函式庫
▌8-2 多元線性迴歸
8-2-1 讀取汽車售價資料
8-2-2 資料的整理
8-2-3 模型建構與評估
8-2-4 模型建構與模型評估流程總結
▌8-3 邏輯迴歸
8-3-1 邏輯迴歸的範例
8-3-2 資料的整理
8-3-3 模型建構與評估
8-3-4 藉由縮放來提高預測準確度
▌8-4 具正則化項的迴歸:Lasso迴歸、Ridge迴歸
8-4-1 Lasso迴歸、Ridge迴歸的特徵
8-4-2 多元線性迴歸與Ridge迴歸的比較
▌8-5 決策樹
8-5-1 蕈類資料集
8-5-2 資料的整理
8-5-3 熵:不純度的指標
8-5-4 資訊獲利:測量分歧條件的有用性
8-5-5 決策樹的模型建構
▌8-6 k-NN(K最近鄰演算法)
8-6-1 k-NN的模型建構
▌8-7 支援向量機
8-7-1 支援向量機的模型建構
【Chapter 9 機器學習的基礎(非監督式學習)】
▌9-1 非監督式學習
9-1-1 非監督式模型的種類
9-1-2 匯入用於本章的函式庫
▌9-2 聚類分析
9-2-1 k-means法
9-2-2 使用k-means法進行聚類分析
9-2-3 將金融市場行銷資料進行聚類分析
9-2-4 使用手肘法判斷群數
9-2-5 聚類分析結果的解釋
9-2-6 k-means法以外的手法
▌9-3 主成分分析
9-3-1 嘗試主成分分析
9-3-2 主成分分析的實例
▌9-4 購物籃分析與關聯規則
9-4-1 何謂購物籃分析?
9-4-2 讀取用來進行購物籃分析的樣本資料
9-4-3 關聯規則
【Chapter 10 模型的驗證方法與性能調校方法】
▌10-1 模型的評估與提高精確度的方法
10-1-1 機器學習的問題與手法
10-1-2 匯入用於本章的函式庫
▌10-2 模型的評估與性能調校
10-2-1 Holdout法與交叉驗證法
10-2-2 性能調校:超參數的調校
10-2-3 性能調校:特徵的處理
10-2-4 模型的種類
▌10-3 模型的評估指標
10-3-1 分類模型的評估:混淆矩陣與關聯指標
10-3-2 分類模型的評估:ROC曲線與AUC
10-3-3 迴歸模型的評估指標
▌10-4 集成學習
10-4-1 Bagging
10-4-2 Boosting
10-4-3 隨機森林、梯度Boosting
10-4-4 進一步了解
【Chapter 11 綜合練習問題】
▌11-1 綜合練習問題
11-1-1 綜合練習問題(1)
11-1-2 綜合練習問題(2)
11-1-3 綜合練習問題(3)
11-1-4 綜合練習問題(4)
11-1-5 綜合練習問題(5)
11-1-6 綜合練習問題(6)
11-1-7 參考:今後進行資料分析
【Appendix】
▌A-1 關於本書的環境建置
A-1-1 關於Anaconda
A-1-2 下載Anaconda的套件
A-1-3 安裝Anaconda
A-1-4 安裝pandas-datareader與Plotly
▌A-2 練習問題解答
A-2-1 Chapter1練習問題
A-2-2 Chapter2練習問題
A-2-3 Chapter3練習問題
A-2-4 Chapter4練習問題
A-2-5 Chapter5練習問題
A-2-6 Chapter6練習問題
A-2-7 Chapter7練習問題
A-2-8 Chapter8練習問題
A-2-9 Chapter9練習問題
A-2-10 Chapter10練習問題
A-2-11 Chapter11綜合練習問題
▌A-3 參考文獻、參考URL
A-3-1 參考文獻
A-3-2 參考URL
結語
序言
【Chapter 1 本書的概要與Python的基礎】
▌1-1 資料科學家的工作
1-1-1 資料科學家的工作
1-1-2 資料分析的流程
1-1-3 本書的架構
1-1-4 對閱讀本書有幫助的文獻
1-1-5 動手來學習吧
▌1-2 Python的基礎
1-2-1 Jupyter Notebook的使用方法
1-2-2 Python的基礎
1-2-3 串列型別與字典型別
1-2-4 條件分歧與迴圈
1-2-5 函式
1-2-6 類別與實例
【Chapter 2 科學計算、資料加工、圖形描繪函式庫的使用方法基礎】
▌2-1 用於資料分析的函式庫
2-1-1 函式庫的匯入
2-1-2 Magic Command
2-1-3 匯入用於本...