Skip to content

[Scikit-Learn] 基本教學 (0): 介紹 scikit-learn

Last Updated on 2021-03-26 by Clay

我一直希望能寫個關於 Scikit-Learn 種種模型及使用方法的筆記,故先在這裡開了坑,等到日後有機會便補上內容 (2020/03/21 更新,我開始筆記 Scikit-Learn 的各種教學了,如文章末)。

Scikit-Learn 基本上是用 CPU 訓練模型的,所以 Scikit-Learn 算是相當適合入門的機器學習框架:畢竟我們並不需要強大的 GPU 就可以用以訓練模型了!基本上我們可以說,只要我們手邊有任何一台可以用的電腦,那麼我們就可以使用 Scikit-Learn 訓練模型!

當然,還是受限於我們 CPU 的好壞影響訓練速度的。

若是你想要使用 GPU 進行更複雜的深度學習任務,可能你可以參考我之前所寫過的: [PyTorch 教學] Getting Start: 從 Tensor 設定開始

目前感覺大宗的主流機器學習、深度學習都是使用 Python 語言架構的,Scikit-Learn 也不例外。這同時也代表著 Scikit-Learn 是相當容易上手、學習的。那麼,以下簡單筆記起 Scikit-Learn 的種類吧!也是我為了將來的心得筆記所作的一個 Overview。


簡單介紹 Scikit-Learn

Scikit-Learn為Python的一個開源的機器學習框架,其所能解決的問題如官網所提及的以著以下六個 (甚至不只) 面向:

Classification (分類)

  • 確認我們檢測的目標屬於哪一種類別。
  • 應用:垃圾郵件偵測、圖像識別
  • 演算法:SVM (支援向量機)、Nearest neighbors (最近鄰居)、Random forest (隨機森林)

Regression (迴歸)

  • 預測檢測資料的連續值屬性。
  • 應用:Drug response (藥物反應)、Stock prices (股價)
  • 演算法:SVR (支援向量迴歸)、Ridge regression (脊迴歸)、Lasso

Clustering (分群)

  • 自動將資料分類成不同群集。
  • 應用:Customer segmentation (客戶分類)、Grouping experiment outcomes (分組實驗結果)
  • 演算法:K-Means、Spectral clustering、mean-shift

Dimensionality reduction (降維)

  • 檢索我們所需考慮的隨機變數數量
  • 應用:Visualization (視覺化)、Increased efficiency (提高效率)

Model selection (模型選擇)

  • 比較、驗證各參數與模型
  • 應用:通過調整參數提高精確度
  • 模塊:Grid search (網格搜索)、Cross validation (交叉驗證)、Metrics (指標)

Preprocessing (前處理)

  • 特徵提取與正規化
  • 應用:Preprocessing (前處裡)、Feature extraction (特徵擷取)

資料集

現在許多的機器學習、深度學習框架都會提供可以容易調適的資料集,可以簡單地透過這些框架的 Package 使用 Python 語法匯入這些簡單的資料集。Scikit-Learn 也不例外: 它提供了各式各樣的小型玩具資料集(toy datasets)供使用者測試他們的各種模型。

例如以下這些:

  • Boston house-prices
  • Iris
  • Diabetes
  • Digits
  • Linnerud
  • Wine
  • Breast cancer Wisconsin

不過使用這些資料集的同時,我們必須注意,由於這些資料過於輕量,並不能真正地取代現實世界中的資料。頂多頂多,就是用於練習調適模型、確認模型可以在這樣的資料中運作、並取得一定的效果。

接下來我將會整理不同的模型與資料集的應用,也將會繼續將Scikit-Learn的介紹教學系列繼續寫下去。

也可以參考 Scikit-Learn 官網所提供的演算法地圖:

Scikit-Learn 演算法地圖.png

References


Read More

Leave a Reply