圖書名稱:必學!Python 資料科學‧機器學習最強套件 - NumPy、Pandas、Matplotlib、OpenCV、scikit-learn、tf.Keras
最夯的 Python 套件解說 ✕ 最夯的資料科學、機器學習技術,
本書帶您一次學會!
Python 是近來最熱門的程式語言, 也是資料科學、機器學習實作時的首選語言。Python 之所以在這些領域大放異彩, 就是仰賴了各種功能強大的第三方套件, 不過套件百百款, 該從哪些下手呢?很簡單, 很少用到的先不用花太多時間, 我們挑常用、關鍵的先學好!本書為有志於學習資料科學、機器學習的初學者, 嚴選出 NumPy、Pandas、Matplotlib、OpenCV、scikit-learn、tf.Keras 等最強套件, 絕對是初學者必須好好掌握的!
NumPy 數值運算套件可以做資料高速運算, 許多套件也都是以 NumPy 為基礎建構而成, 經常得跟 NumPy 搭配使用, 一定要紮穩這個重要基石;
在面對龐大的資料時, 使用 Pandas、Matplotlib 可以輕鬆做資料整理, 並藉由繪圖獲取重要資訊, 是資料科學實作的強大利器;
OpenCV 是電腦視覺 (Computer Vision) 領域響叮噹的套件, 不管是裁切、縮放、輪廓偵測、過濾影像以強化資訊...各種影像處理功能一應俱全, 是影像辨識、機器學習做資料擴增的最強助手;
最後, 我們將帶您一窺 scikit-learn、tf.Keras 這兩個重量級套件如何在機器學習、深度學習領域中發揮關鍵性的作用, 我們會實際操演如何利用它們做資料預處理 (Preprocessing)、建構 KNN / SVM / 邏輯斯迴歸 (Logistic regression) / 決策樹 (Decision tree) / 隨機森林 (Random forest)…等監督式學習分類模型;以及建立 DNN、CNN 等影像辨識神經網路 (Neural network)。
看了本書之後, 你將深刻體會到各套件的強大之處, 利用短短幾行程式碼, 竟然瞬間完成許多運算、建模工作。不過各套件的函式、參數設定可不像網路文章寫的這麼單純, 當中有許多設定「眉角」需要特別注意, 為此, 小編都經過逐一詳測, 針對可能遇到的問題添加大量註解, 幫助讀者更加理解內容!
本書特色:
□資料科學熱門套件解說
‧紮穩 NumPy 重要基礎:axis、dimention、陣列切片、各種高速運算函式
‧Pandas 資料分析技巧:資料清理、缺失值處理、快速取得各種統計數據
‧Matplotlib 資料視覺化:繪製 2D / 3D 圖 / 子圖、比較資料的分布狀況
‧OpenCV 影像處理:影像裁切 / 縮放 / 翻轉...做資料擴增, 二值化 (binarization) / 降雜訊...強化重要影像資訊
□最紮實的機器學習、深度學習實戰
‧機器學習的資料預處理 (Data preprocessing)
‧快速建構 KNN / SVM / 邏輯斯迴歸 (Logistic regression) / 決策樹 (Decision tree) / 隨機森林 (Random forest)...監督式學習分類模型
‧建立 DNN、CNN 影像辨識神經網路 (Neural network)
‧建模完只是第一步!各模型超參數 (Hyperparameter) 調整心法大公開!
□本書由【施威銘研究室監修】, 書中針對原書進行大量補充, 並適當添加註解, 幫助讀者更加理解內容!
目錄
第 1 章 Python 基礎:變數、 資料型別與 if 判斷式
第 2 章 Python 基礎:list、dict 與迴圈
第 3 章 函式、 類別與模組
第 4 章 進階函式及特殊容器
第 5 章 NumPy 高速運算套件
5-1 NumPy 的基本介紹
5-2 陣列的基本操作
5-2-1 建立陣列
5-2-2 陣列的切片操作
5-2-3 使用布林陣列篩選值
5-2-4 陣列的四則計算
5-2-5 體驗好用的 NumPy 函式
5-3 NumPy 多軸陣列
5-3-1 陣列的軸 (axis)
5-3-2 陣列的 shape
5-3-3 多軸陣列的切片做法
5-3-4 陣列轉置 (transpose)
5-3-5 陣列排序
5-3-6 陣列擴張 (Broadcasting)
5-3-7 用 NumPy 函式計算矩陣乘積
第 6 章 pandas 的基礎
6-1 pandas 簡介
6-2 Series 物件的操作處理
6-2-1 建立 Series 物件
6-2-2 取出 Series 當中的元素
6-2-3 單取出「索引值」或者「內容值」-.index、.values
6-2-4 新增 Series 物件的元素–append()
6-2-5 刪除 Series 物件的元素–drop()
6-2-6 從 Series 物件篩選出想要的元素
6-2-7 將 Series 的元素排序–sort_index()、 sort_values()
6-3 DataFrame 物件的操作處理
6-3-1 建立 DataFrame 物件–pd.DataFrame()
6-3-2 修改 index 和 column 的名稱–.index、.column
6-3-4 加入新的資料列–append()
6-3-4 加入新的欄位
6-3-5 取出 DataFrame 當中的元素–df.loc[]、df.iloc[]
6-3-6 刪除 df 物件的列或行–drop()
6-3-7 將欄位值依大小排序–sort_values()
6-3-8 從 df 物件篩選出想要的資料
第 7 章 DataFrame 的串接與合併
7-1 概念說明
7-2 用 concat() 串接多個 DataFrame
7-3 用 merge() 合併多個 DataFrame
第 8 章 DataFrame 的進階應用
8-1 載入外部檔案並做資料整理
8-2 處理 DataFrame 中的缺失值
8-2-1 用 dropna() 刪除含有 NaN (缺失值) 的列
8-2-2 用 fllna() 填補 NaN 值
8-3 分析數據常用到的技巧 (一)
8-3-1 duplicated()、drop_duplicated() - 尋找或刪除 DataFrame 內重複的資料
8-3-2 map()–利用 DataFrame 的既有欄位生成新的欄位
8-3-3 用 cut() 劃分、篩選資料
8-4 分析數據常用到的技巧 (二)
8-4-1 取頭尾列–head()、tail()
8-4-2 對 DataFrame 的值做運算
8-4-3 快速取得 DataFrame 各種統計數據
8-4-4 計算行 (列) 之間的差
8-4-5 用 groupy() 做分組統計
第 9 章 Matplotlib 資料視覺化套件的基礎
9-1 常見的圖表類型
9-2 單一筆資料的視覺化
9-2-1 繪製折線圖
9-2-2 指定圖表的座標軸範圍–xlim()、 ylim()
9-2-3 設定圖表標題與兩軸名稱–title()、xlabel()、ylabel()
9-2-4 在圖表上顯示網格–grid()
9-2-5 自訂座標軸的刻度及標籤 – xticks()、 yticks()
9-3 多筆資料的視覺化
9-3-1 在同一張圖表繪製多筆資料並指定不同顏色
9-3-2 設定圖例–legend()
9-4 繪製內含多張子圖的圖表
9-4-1 設定整張圖表的尺寸–fgure()
9-4-2 在畫布切出子圖區, 並繪製內容–add_subplot()
9-4-3 調整子圖間距–subplots_adjust()
9-4-4 設定子圖的座標範圍–set_xlim() / 座標說明文字–set_xlabel() / 子圖標題 - set_title()
9-4-5 設定子圖是否顯示網格– grid() / 設定子圖的兩軸刻度 set_xticks()、set_xticklabels()
第 10 章 用 Matplotlib 繪製各類圖表
10-1 再探折線圖 (plot chart)
10-2 繪製長條圖 (bar chart)
10-3 繪製直方圖 (histogram chart)
10-4 繪製散佈圖 (scatter chart)
10-5 繪製圓餅圖 (pie chart)
10-6 繪製 3D 圖表
第 11 章 用 OpenCV 處理影像資料
11-1 認識影像資料
11-2 OpenCV 的基礎
11-3 OpenCV 的進階處理功能
11-3-1 圖片的二值化 (binarization) 處理
11-3-2 套用遮罩
11-3-3 模糊效果
11-3-4 去除圖片的雜訊
第 12 章用 scikit-learn 進行監督式機器學習
12-1 監督式學習 / 分類
12-2 資料集的準備
12-3 用常見的監督式學習分類器來做預測
12-3-1 k 鄰近演算法 (KNN)
12-3-2 邏輯斯迴歸 (logistic regression)
12-3-3 線性支援向量機 (Linear SVM)
12-3-4 非線性 SVM
12-3-5 決策樹 (decision tree)
12-3-6 隨機森林 (random forest)
12-4 k-fold 交叉驗證及模型的預測性能
第 13 章 監督式學習模型的超參數調整
13-1 KNN 的超參數
13-2 邏輯斯迴歸與線性 SVM 的超參數
13-3 非線性 SVM
13-4 決策樹與隨機森林的超參數
第 14 章 用 tf.Keras 套件實作深度學習
14-1 深度學習簡介
14-2 用神經網路辨識手寫數字圖片
第 15 章 優化神經網路模型
15-1 認識超參數 (Hyperparameter)
15-2 隱藏層的數量、 隱藏層設計多少神經元
15-3 丟棄法 (Dropout)
15-4 損失函數 (Loss function) 與優化器 (Optimizer)
15-5 小批次 (mini-batch) 訓練
15-6 訓練週期 (epoch)
第 16 章 利用卷積神經網路 (CNN) 做影像辨識
16-1 認識 CNN
16-2 卷積層 (Convolution Layer)
16-3 池化層 (Pooling Layer)
16-4 用 tf.Keras 建構 CNN 模型
16-5 實例:使用 CNN 辨識熉g數字圖片
16-6 實例:使用 CNN 辨識. cifar 10 圖片資料集
第 17 章 優化 CNN 模型
17-1 資料的正規化 (Normalization)
17-2 遷移學習 (Transfer Learning)
第 1 章 Python 基礎:變數、 資料型別與 if 判斷式
第 2 章 Python 基礎:list、dict 與迴圈
第 3 章 函式、 類別與模組
第 4 章 進階函式及特殊容器
第 5 章 NumPy 高速運算套件
5-1 NumPy 的基本介紹
5-2 陣列的基本操作
5-2-1 建立陣列
5-2-2 陣列的切片操作
5-2-3 使用布林陣列篩選值
5-2-4 陣列的四則計算
5-2-5 體驗好用的 NumPy 函式
5-3 NumPy 多軸陣列
5-3-1 陣列的軸 (axis)
5-3-2 陣列的 shape
5-3-3 多軸陣列的切片做法
5-3-4 陣列轉置 (transpose)
5-3-5 陣列排序
5-3-6 陣列擴張 (Broadcasting)...