成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python監測MLOps管道中的模型性能

譯文
人工智能 機器學習
這篇Python教程介紹了如何通過監測性能來維持生產環境中模型的質量。

點擊參加51CTO網站內容調查問卷

譯者 | 布加迪

審校 | 重樓

機器學習模型只有在生產環境中用于解決業務問題時才有幫助。然而,業務問題和機器學習模型在不斷發展變化。這就要求我們維護機器學習,以便性能跟上業務KPI。這就是MLOps概念的由來

MLOps或機器學習運營是一整套用于生產環境中機器學習的技術和工具。MLOps處理的事情機器學習自動化、版本控制、交付和監測。本文重點介紹監測以及如何在生產環境中使用Python軟件來監測模型性能

監測模型性能

我們談論MLOps中的監測時,它其實指很多方面,因為MLOps的原則之一就是監測比如說:

  • 監測數據分布在一段時間以來的變化
  • 監測開發環境和生產環境中使用的功能特性
  • 監測模型衰減
  • 監測模型性能
  • 監測系統失效情況

MLOps中仍然有許多方面需要監測,但是本文重點關注監測模型性能。在本文中,模型性能是指模型利用沒有見過的數據做出可靠預測的能力,用特定的度量指標(比如準確性、精度召回率等)加以衡量。

什么我們需要監測模型性能?為了保持模型預測的可靠性以解決業務問題。在部署到生產環境之前,我們經常計算模型性能及其對KPI的影響。比如說,如果我們希望模型仍然遵循業務需求,基準要求是70%的準確性,但低于這個標準不可接受。這就是為什么監測性能可以保證模型始終滿足業務需求

使用Python,我們將學習如何實現模型監測。不妨從安裝軟件入手。模型監測方面有很多選擇,但是就本文而言,我們將使用名為evidently開源軟件包進行監測。

用Python設置模型監測

首先我們需要用以下代碼安裝evidently軟件包。

pip install evidently

安裝完軟件包后,我們將下載數據示例,即來自Kaggle的保險索賠數據。此外,我們將在進一步使用這些數據之前清理數據。

import pandas as pd

df = pd.read_csv("insurance_claims.csv")

# Sort the data based on the Incident Data
df = df.sort_values(by="incident_date").reset_index(drop=True)

# Variable Selection
df = df[
 [
  "incident_date",
 "months_as_customer",
  "age",
 "policy_deductable",
  "policy_annual_premium",
 "umbrella_limit",
  "insured_sex",
 "insured_relationship",
  "capital-gains",
 "capital-loss",
 "incident_type",
  "collision_type",
 "total_claim_amount",
 "injury_claim",
 "property_claim",
 "vehicle_claim",
  "incident_severity",
 "fraud_reported",
 ]
]

# Data Cleaning and One-Hot Encoding
df = pd.get_dummies(
 df,
 columns=[
  "insured_sex",
  "insured_relationship",
 "incident_type",
 "collision_type",
  "incident_severity",
 ],
 drop_first=True,
)

df["fraud_reported"] = df["fraud_reported"].apply(lambda x: 1 if x == "Y" else 0)

df = df.rename(columns={"incident_date": "timestamp", "fraud_reported": "target"})

for i in df.select_dtypes("number").columns:
 df[i] = df[i].apply(float)

data = df[df["timestamp"] < "2015-02-20"].copy()
val = df[df["timestamp"] >= "2015-02-20"].copy()

在上面的代碼中,我們選擇了一些用于訓練模型的列,將它們轉換數字表示,并將數據分為參考數據data和當前數據val

我們需要MLOps管道中的參考或基數據來監測模型性能。它通常是訓練數據分開來的數據(比如測試數據。此外,我們還需要當前數據或模型未看到的數據(入站數據)

不妨使用evidently來監測數據和模型性能。由于數據漂移會影響模型性能,所以它也是需要監測的對象

from evidently.report import Report
from evidently.metric_preset import DataDriftPreset

data_drift_report = Report(metrics=[
  DataDriftPreset(),
])

data_drift_report.run(current_data=val, reference_data=data, column_mapping=None)
data_drift_report.show(mode='inline')

數據集漂移

evidently軟件包將自動顯示一份報告,表明數據集所出現的情況。該信息包括數據集漂移和列漂移。對于上述示例而言沒有出現任何數據集漂移,但是有兩列出現了漂移。

報告顯示,列property_claimtimestamp確實檢測到了漂移。這些信息可以在MLOps管道中重新訓練模型,或者我們仍需要進一步的數據探索。

如果需要,我們也可以在日志字典對象中獲取上述數據報告。

data_drift_report.as_dict()

接下來,不妨嘗試從數據中訓練分類器模型,并嘗試使用evidently來監測模型性能。

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier()
rf.fit(data.drop(['target', 'timestamp'], axis = 1), data['target']) 

evidently將需要參考數據集和當前數據集中的目標列和預測列。不妨將模型預測添加到數據集中,并使用evidently來監測性能。

data['prediction'] = rf.predict(data.drop(['target', 'timestamp'], axis = 1))
val['prediction'] = rf.predict(val.drop(['target', 'timestamp'], axis = 1))

捎帶提一下,最好使用不是訓練數據的參考數據來監測模型性能。不妨使用以下代碼設置模型性能監測。

from evidently.metric_preset import ClassificationPreset

classification_performance_report = Report(metrics=[
  ClassificationPreset(),
])

classification_performance_report.run(reference_data=data, current_data=val)

classification_performance_report.show(mode='inline')

在結果中,我們得到的當前模型質量指標低于參考(由于我們使用訓練數據作為參考,這在預料之中)業務需求而定上述度量指標表明我們需要采取的下一步。不妨看看從evidently報告中得到的其他信息。

類Representation報告顯示了實際的類分布。

混淆矩陣顯示了預測值與參考數據集和當前數據集中的實際數據的對比情況。

按類的質量度量指標顯示每個類的性能如何。

與前面一樣,我們可以使用以下代碼將分類性能報告轉換字典日志。

classification_performance_report.as_dict ()

以上就是全部內容。您可以在當前擁有的任何MLOps管道中設置模型性能監測機制,它仍然可以很好地工作。

結語

模型性能監測是MLOps管道中的一項基本任務,幫助確保我們的模型跟上業務需求。使用一個名為evidently的Python軟件包,我們就能輕松設置模型性能監測機制,它可以整合到任何現有的MLOps管道中。

原文標題:Monitor Model Performance in the MLOps Pipeline with Python,作者:Cornellius Yudha Wijaya


責任編輯:華軒 來源: 51CTO
相關推薦

2024-12-23 00:27:40

2018-09-10 08:45:04

Linux管道命令

2021-02-20 20:36:56

Linux無名管道

2023-04-27 13:09:10

MLOps工程師軟技能

2010-12-22 12:54:03

Linux性能監測

2013-07-01 17:35:30

2025-03-27 00:45:00

2010-12-22 13:19:43

Linux性能監測網絡

2010-12-22 13:14:52

Linux性能監測

2010-12-22 13:09:23

Linux性能監測CPU

2021-07-06 14:17:16

MLOps機器學習AI

2023-09-13 08:00:00

MLOps數據科學

2024-06-17 15:59:53

2022-04-23 16:30:22

Linux磁盤性能

2010-12-22 13:17:47

Linux性能監測磁盤IO

2011-11-08 21:51:43

Linux 監控 IO

2016-11-07 18:26:39

IT可視化

2023-09-13 14:45:14

性能測試開發

2022-03-15 09:00:00

機器學習軟件開發MLOps

2023-09-08 15:37:29

軟件開發性能
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品精品久久久 | 可以免费看的毛片 | 成人av激情| 日韩一级电影免费观看 | 国产二区视频 | 国产精品欧美大片 | h视频在线看 | 一区影院 | 欧美国产精品一区二区 | 欧美在线 | 久久久久久久久久性 | 国产精品精品视频一区二区三区 | 亚洲精品久久久久中文字幕欢迎你 | 欧州一区二区 | 久久国产精彩视频 | 久久成人人人人精品欧 | 国产精品欧美一区二区 | 国产综合在线视频 | 操久久 | 精品国产91亚洲一区二区三区www | 亚洲一区毛片 | 日韩精品一区二区三区视频播放 | 亚洲精品一区二区三区蜜桃久 | 日本精品视频 | 欧美嘿咻 | 亚洲美女网站 | 日韩欧美精品在线播放 | 成人日韩精品 | 日韩视频在线观看中文字幕 | 99精品网 | 日韩成人在线视频 | 一区二区三区中文字幕 | 激情五月综合网 | 日韩一二区 | 亚洲精品无人区 | 国产一区二区在线视频 | 亚洲一区中文字幕 | 成人在线免费 | 欧美视频成人 | 一区二区三区免费 | 欧美精品福利 |