Allen

2 Posts
By Allen

[Data Science] MLOps Python套件Scikit-Learn Pipeline

一、前言 機器學習已經成為推動業務創新和提升決策品質的重要力量。隨著機器學習模型在各行各業的廣泛應用,如何有效地將這些模型從實驗室環境轉移到生產環境,並確保它們在實際操作中的穩定性和效率,MLOps是一種實踐,結合了機器學習、DevOps(開發與運營)和數據工程的原則,旨在自動化和優化機器學習模型的整個生命周期。 二、Scikit-Learn介紹 是一種主要由python撰寫的套件庫,根據其官網的介紹: 1. 用於分析、預測資料簡單且有效的工具 2. 大部人都可以很快速上手,且可以適用於不同情境 3. 基於NumPy, SciPy, and matplotlib建構 4. 開源且商業可用 常見的分類、分群、迴歸等方法在scikit-learn中都可以找到,除了收納了多數常用模型外,也提供了不少除了模型以外的工具如: 1. 資料預處理(標準化、遺失值處理...) 2. 模型特徵選擇及降維(PCA、LDA) 3. 模型評估方法(交叉驗證、Reacll、F1-score) 4. 模型儲存 5.

By Allen

[Data Science]探討模型/分析程式架構

一、前言 軟體開發中,會將程式架構引入設計模式(design pattern),目的是用來簡化程式的開發與強化程式的維護性;例如常見的Model-View-Controller(MVC)模式,或是拆成router、controller、service、handle等區塊等,將每個單一的功能或方法,依據不同的功能與邏輯分拆並放到不同的區塊之中,已建立專案內鬆散的耦合(Loose Coupling)關係。 如上圖,一個使用者對點擊一個網頁,觸發了一項請求,這份請求原本應該是一支function再回傳結果,但根據拆分後的架構,請求會經Router決定他要由哪個Controller進行param的檢查後進到Service做資料的撈取。 拆解後的程式架構中,每一個部分負責的功能都不一樣,主要是強調職責分離,這樣的好處可以讓開發跟維護人員可以更快的針對目的或是BUG找到對應的部分,因此在維護跟開發上更加方便。 二、模型/分析有沒有所謂的”通用”架構? 隨著硬體的日新月異,資料的儲存、演算法的運行時間門檻逐漸降低,即時無法購買大型機器或高階顯卡,也能透過租用的方式來獲得高端的空間或是效