iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
自我挑戰組

攔截記憶碼:每日一小時記錄技術學習系列 第 30

Day 29 - PyCaret:機器學習的懶人神器

  • 分享至 

  • xImage
  •  

攔截源頭

  • 發現管道:Hello World Dev Conference
  • 攔截原因:我最近在想,如果未來要做「AI 模型輔助開發工具」,那勢必要快速原型機器學習流程。
    但用 scikit-learn 一步步建模太慢。結果聽了一場演講發現了這個酷東西。

結果就看到 PyCaret 的標語:

“An open-source, low-code machine learning library in Python.”

為什麼不用其他方案

  • scikit-learn:功能完整,但步驟太繁瑣,對實驗型任務太慢。
  • AutoGluon / H2O AutoML:雖然強,但配置重、資源吃多。
  • PyCaret 的特色剛好介於兩者之間:
    • 輕量
    • 人類可讀
    • 快速迭代
    • 適合個人開發者或教學實驗

技術初探

  • 官方定義:PyCaret is an open-source, low-code machine learning library that automates the entire machine learning workflow — from preprocessing to model deployment.

  • 核心賣點:

    • 全流程自動化 — 從清理資料、訓練、比較模型到部署,全自動。
    • 一行比較所有模型 — 自動 benchmark 多種演算法。
    • 支援分類、迴歸、群集、異常偵測、NLP 等任務。
    • 內建部署工具 — 可輸出為 pickle 或 FastAPI app。
    • 低代碼、可視化優先 — 適合原型開發與學習。
  • 適用場景:

    • 想快速驗證資料科學想法
    • 教學或課堂 demo
    • 專案早期模型選型
    • 低代碼 AI 系統 PoC

實戰使用

安裝

pip install pycaret

快速上手 — 分類任務

from pycaret.datasets import get_data
from pycaret.classification import *

# 1. 載入範例資料
data = get_data('iris')

# 2. 初始化任務
s = setup(data, target='species', session_id=42)

# 3. 一鍵比較所有模型
best = compare_models()

# 4. 輸出最佳模型
print(best)

輸出會列出每個演算法的準確率、AUC、F1 等指標,
例如:

Model              Accuracy    AUC
Logistic Regression  0.96      0.95
Random Forest        0.98      0.97
SVM                  0.95      0.94

預測與部署

# 使用最佳模型預測
predictions = predict_model(best)

# 儲存模型
save_model(best, 'best_model_iris')

甚至可以直接建立 FastAPI 部署:

pycaret deploy --model best_model_iris --platform fastapi

記憶碼摘要

技術:PyCaret  
分類:低代碼機器學習框架  
難度:⭐⭐⭐☆☆(1–5 顆星)  
實用度:⭐⭐⭐⭐☆(1–5 顆星)  
一句話:讓你一行指令就能比較所有模型、完成整個 ML 工作流。  
關鍵指令:compare_models()  
適用情境:快速驗證 AI 想法、教學或自動化原型開發。

結語 — 完賽心得

到這篇為止,「攔截記憶碼」系列正式完賽

這 29 天的挑戰,其實一開始只是想讓自己「每天都碰一點技術」,
不管是新的 AI 框架、CLI 工具、Agent SDK,或只是某個冷門小專案。
因為技術變太快,很多學到的東西很容易忘;
與其被動被資訊淹沒,不如主動攔截,留下記憶的索引。

每天一小時,
有時候真的只是 clone 一個 repo、跑個 hello world;
但在這過程中,我學會怎麼更快地理解一個新技術的價值,
怎麼透過寫下來整理思考,
讓「學習」變成一種節奏,而不是壓力。

語的結語

「攔截記憶碼」對我來說不是挑戰結束,而是習慣的開始。
未來不一定每天都寫,但一定會繼續這個「攔截—記錄—輸出」的節奏,
讓技術的變化不只是浪潮,而是被記錄下的足跡。

完賽

技術每天都在更新,記憶每天都在流失。
攔截它、記錄它,未來的自己會感謝你。


上一篇
Day 28: Backlog.md — 用 Markdown 管理開發任務的極簡待辦系統
系列文
攔截記憶碼:每日一小時記錄技術學習30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言