每個數據科學家都應該知道的5個 Python 庫_陳杏圓. 如果您是初學者或中級機器學習工程師或數據科學家,本文非常適合您。您已經選擇了首選… | by Diana Chen | May, 2024


如果您是初學者或中級機器學習工程師或數據科學家,本文非常適合您。您已經選擇了首選的機器學習庫(如 PyTorch 或 TensorFlow),並掌握了為模型選擇正確的架構。您還可以訓練模型並解決實際問題。但下一步是什麼?

在本文中,我將介紹我認為每個機器學習工程師和數據科學家都應該熟悉的五個庫。這些將成為您技能組合的寶貴補充,使您成為更具競爭力的候選人並簡化機器學習開發過程。1. MLFlow — 實驗和模型跟蹤

圖片由作者提供,示例來自 https://mlflow.org

想像一下,你是一名 ML 開發人員,正在開發一個專案,以構建一個預測客戶流失的模型。首先使用 Jupyter 筆記本瀏覽數據,嘗試不同的演算法和超參數。隨著進度的提高,筆記本中會越來越雜亂無章地堆滿代碼、結果和可視化效果。跟蹤您的進度確定哪些有效、哪些無效以及複製最佳結果變得很困難

這就是 MLflow 的用武之地。MLflow 是一個平臺,可説明您從頭到尾管理 ML 實驗,確保可追溯性和可重複性。它提供了一個集中式存儲庫,用於存儲代碼、數據和模型工件,以及一個跟蹤系統,用於記錄所有實驗,包括超參數、指標和輸出。

下面介紹 MLflow 如何説明你避免單獨使用 Jupyter 筆記本的陷阱:

  1. 集中式存儲庫:MLflow 使代碼、數據和模型專案井井有條且易於訪問。您可以快速找到所需的資源,而不會迷失在迷宮般的筆記本中。
  2. 實驗跟蹤:MLflow 記錄每個實驗,包括使用的確切代碼、數據和超參數。這使您可以輕鬆地比較不同的實驗並確定導致最佳結果的原因。
  3. 可重現性:MLflow 可以使用完全相同的代碼、數據和環境重現最佳模型。這對於確保結果的一致性和可靠性至關重要。

因此,如果你真的想構建有效的機器學習模型,請拋棄 Jupyter 筆記本的混亂局面,擁抱 MLflow 的強大功能。

Streamlit 是數據科學最流行的前端框架。它是一個開源的 Python 框架。它允許使用者快速輕鬆地創建互動式數據應用程式,這對於可能沒有廣泛 Web 開發知識的數據科學家和機器學習工程師特別有益。

借助 Streamlit,開發人員可以構建和共用有吸引力的使用者介面並部署模型,而無需深入的前端經驗或知識。該框架是免費的、全 Python 的和開源的,可以在幾分鐘內創建可共用的 Web 應用程式。

如果您有一些涉及機器學習的寵物項目,那麼使用 Streamlit 為其添加一個介面是個好主意。開始使用它不需要任何時間,有許多範本已經準備好,您可以在幾分鐘內完成前端。分享它也非常容易,這意味著它肯定會在你的簡歷中看起來不錯。

如果你想研究 Python 中的其他前端庫,請務必查看我的文章 前 5 名 Python 數據科學前端庫

圖片由作者提供

訓練和驗證模型后,需要部署它,以便其他應用程式可以使用它。這就是 FastAPI 的用武之地。

FastAPI 是一個用於構建 RESTful API 的高性能 Web 框架。它以其簡單、易用和速度而聞名。這使其成為將機器學習模型部署到生產環境的理想選擇。

以下是 ML 工程師和數據科學家應該學習 FastAPI 的一些原因:

  • 速度:FastAPI 的速度非常快。它使用現代異步程式設計模型,可以有效地同時處理多個請求。這對於部署需要處理大量數據的機器學習模型至關重要。
  • 簡單性:FastAPI 易於學習和使用。它具有清晰簡潔的語法,可以輕鬆編寫乾淨且可維護的代碼。這對於不一定是經驗豐富的 Web 開發人員的 ML 工程師和數據科學家來說很重要。
  • 易用性:FastAPI 提供了許多功能,可以輕鬆構建和部署 API。例如,它內置了對自動文檔、數據驗證和錯誤處理的支援。這節省了時間和精力,使 ML 工程師能夠專注於構建和部署模型的核心工作。
  • 生產就緒:FastAPI 專為生產用途而設計。它具有支援多個後端、安全性和部署工具等功能。這使其成為部署關鍵機器學習模型的可靠選擇。

總之,FastAPI 是一個功能強大且用途廣泛的工具,可用於將機器學習模型部署到生產環境。它的易用性、速度和生產就緒性使其成為希望讓其他人訪問其模型的 ML 工程師和數據科學家的理想選擇。

圖片由作者、來源 1來源 2 提供

XGBoost 是一種強大的機器學習演算法,以其準確性、速度和可擴充性而聞名。它基於梯度提升框架,該框架將多個弱學習者組合成一個強學習者。簡單來說,你使用多個小模型,比如隨機森林,你把它們組合成一個大模型,最終你得到一個更快的模型(例如,與神經網路相比),但同時它是可擴展的,不易過度擬合。

以下是 ML 工程師和數據科學家應該學習 XGBoost 的一些原因:

  • 準確性:XGBoost 是目前最準確的機器學習演算法之一。它已被用於贏得許多機器學習比賽,並且一直被評為各種任務的頂級演算法之一。
  • 速度:XGBoost 也非常快。它能夠快速有效地對大型數據集進行訓練和預測。這使其成為速度很重要的應用程式(例如即時欺詐檢測或財務建模)的不錯選擇。
  • 可擴展性:XGBoost 具有高度可擴充性。它可以在不犧牲準確性的情況下處理大型數據集和複雜模型。這使其成為關注數據量或模型複雜性的應用程式的不錯選擇。

如果您有一項使用表格數據的任務(例如根據房屋擁有的房間預測房屋的價格,或根據上次購買/帳戶數據計算客戶購買產品的可能性),那麼在求助於帶有 Keras 或 PyTorch 的神經網路之前,您應該始終先嘗試 XGBoost。

圖片由作者提供,來自來源 1來源 2

訓練模型后,只需部署並使用它即可。但在這一點上,這個模型將更像是一個「黑匣子」 — — 你把東西去,你就把東西拿出來。它是如何工作的?沒人知道。數位在這裡,數位在那裡,最後你會得到一個答案。

如果你的客戶/老闆問你,你的模型是如何得出一些具體答案的呢?同樣,你不知道。或者,也許您想知道哪些參數在訓練過程中最重要,哪些只會增加噪音?

所有這些問題都可以用ELI5來回答。該庫將説明您使模型透明、可解釋且更易於理解。但是,您不僅可以獲得有關模型的更多資訊,還可以獲得有關數據、訓練過程、權重分佈和輸入參數的更多資訊。除此之外,您還可以「調試」您的模型,並獲得有關哪種架構可能效果更好的見解,以及當前模型存在哪些問題。

ELI5 已經支援 Scikit-Learn、Keras、XGBoost 等庫。您可以調試模型以對圖像、文字和表格數據進行分類。

我們探索了五個領先的數據科學框架。如果你至少掌握了每個庫,你將獲得多個優勢:

  1. 與其他數據科學家相比,您將有更多機會找到工作,因為您在機器學習的不同方面獲得了多種技能。
  2. 您將能夠處理全棧項目,因為您不僅可以開發模型,還可以使用FastAPI後端部署它,並讓使用者在 Streamlit 前端中與之交互。
  3. 您不會迷失在「Jupyter Notebook 地獄」中,因為所有機器學習實驗都可以通過 MLFlow 進行可追溯和重現,並且所有模型都將正確進行版本控制。
  4. 表格數據對您來說不是問題,因為您知道如何使用 XGBoost 快速訓練可擴展、快速和準確的模型。
  5. 大多數模型對你來說不再是「黑匣子」,因為你可以通過ELI5更深入地理解它們,調試它們的思維過程並解釋它們的預測。

所有這些庫將使您的生活更輕鬆,為您的武器庫添加許多有用且重要的技能。祝您編碼愉快!

  1. https://mlflow.org
  2. https://streamlit.io
  3. https://blog.streamlit.io/building-a-streamlit-and-scikit-learn-app-with-chatgpt/
  4. https://fastapi.tiangolo.com
  5. https://www.geeksforgeeks.org/xgboost/
  6. https://xgboost.readthedocs.io/en/stable/
  7. https://github.com/TeamHG-Memex/eli5
  8. https://eli5.readthedocs.io/en/latest/overview.html#basic-usage
  9. https://www.analyticsvidhya.com/blog/2020/11/demystifying-model-interpretation-using-eli5/



Source link

Be the first to comment

Leave a Reply

Your email address will not be published.


*