机器学习模型:深入了解Evidencely AI

2024年02月22日 由 alex 发表 205 0

简介

Evidently AI 是一款专为监控生产中的机器学习(ML)模型而设计的工具。它侧重于分析和诊断这些模型随时间变化的性能,提供对数据漂移、模型性能和概念漂移等各个方面的见解。Evidently AI 的目的是帮助数据科学家和 ML 工程师轻松识别和了解模型部署后可能出现的任何问题,确保模型在现实世界中继续发挥预期性能。


6


特点和能力

显而易见,人工智能提供了一系列功能,使其成为 ML 生命周期中的宝贵资产:


  • 数据漂移检测: 它可以检测数据分布随时间的变化。这对于识别模型何时可能在未经训练的条件下运行至关重要。
  • 模型性能监控: 该工具使用适合任务的指标(如准确率、精确度、召回率)跟踪 ML 模型随时间推移的性能。这有助于了解模型的有效性是否因不断变化的数据模式而降低。
  • 概念漂移识别: 显而易见,人工智能可以识别概念漂移,当输入数据和输出预测之间的关系发生变化时,就会出现概念漂移。识别概念漂移对于保持 ML 模型的准确性至关重要。
  • 仪表板和报告: 它提供了一个全面而直观的仪表板,可直观显示 ML 模型的健康状况和性能。这些见解可跨团队共享,以确保透明度和协作解决问题。
  • 集成与自动化: 显而易见,人工智能可集成到现有的 ML 工作流程和管道中。其 API 可促进监控任务的自动化,使大规模维护模型变得更加容易。


在人工智能生态系统中的重要性

通过解决机器学习模型的一个关键方面:部署后监控,人工智能显然在人工智能生态系统中发挥着至关重要的作用。虽然人工智能开发的重点在于模型的训练和验证,但模型在现实世界中的表现会因数据环境的变化而不同。显而易见,人工智能可确保模型长期保持准确可靠,这对于金融、医疗保健和电子商务等行业的应用至关重要,因为在这些行业中,基于模型预测的决策可能会产生重大影响。


7


对人工智能发展的影响

Evidently AI 的影响不仅限于监控。它通过以下方式为开发更强大的人工智能系统做出贡献:


  • 提高透明度: 通过提供有关模型性能和行为的详细见解,它提高了人工智能系统的透明度。在人工智能决策会对个人和社会产生重大影响的今天,这一点变得越来越重要。
  • 促进持续改进: 人工智能的洞察力有助于不断完善和改进模型,从而提高性能和可靠性。
  • 促进负责任的人工智能:通过对监控和透明度的关注,Evidently AI 支持负责任的人工智能发展的更广泛目标,包括公平性、问责制和技术的道德使用。


代码

为了演示如何通过合成数据集使用 Evidently AI,包括生成指标和图表,让我们创建一个简单的示例。该示例包括创建一个合成数据集,训练一个模型,然后使用 Evidently 分析模型的性能和数据漂移。


首先,确保你已安装 Evidently。如果没有,可以使用 pip 安装:


pip install evidently


让我们将其放入代码中:


import numpy as np
import pandas as pd
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
from evidently.dashboard import Dashboard
from evidently.dashboard.tabs import ClassificationPerformanceTab, DataDriftTab
from evidently.model_profile import Profile
from evidently.model_profile.sections import DataDriftProfileSection, ClassificationPerformanceProfileSection
# Step 1: Create a synthetic dataset
X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, random_state=42)
data = pd.DataFrame(X, columns=[f'feature_{i}' for i in range(X.shape[1])])
data['target'] = y
# Split into train and test sets
X_train, X_test, y_train, y_test = train_test_split(data.drop('target', axis=1), data['target'], test_size=0.25, random_state=42)
# Step 2: Train a model
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
# Predict on the test set
predictions = model.predict(X_test)
# Calculate accuracy
accuracy = accuracy_score(y_test, predictions)
print(f'Model Accuracy: {accuracy}')
# Step 3: Use Evidently to analyze model performance and data drift
# Combine predictions with the test set for Evidently analysis
test_data_with_predictions = X_test.copy()
test_data_with_predictions['target'] = y_test
test_data_with_predictions['prediction'] = predictions
# Generate reference (training) and current (test) datasets as Pandas dataframes
reference_data = pd.concat([X_train, y_train], axis=1)
current_data = test_data_with_predictions
# Generate Evidently Profile
profile = Profile(sections=[DataDriftProfileSection(), ClassificationPerformanceProfileSection()])
profile.calculate(reference_data, current_data, column_mapping=None)
# Generate and save Evidently dashboard report
report = Dashboard(tabs=[DataDriftTab(), ClassificationPerformanceTab()])
report.calculate(reference_data, current_data, column_mapping=None)
report.save('evidently_report.html')


该代码的功能如下:


  • 生成二元分类问题的合成数据集。
  • 将数据集分成训练集和测试集。
  • 训练逻辑回归模型,并对测试集进行预测。
  • 计算模型的准确性。
  • 使用 Evidently 在训练数据(作为参考)和测试数据(作为当前)之间生成数据漂移分析和分类性能分析。
  • 将 Evidently 面板报告保存为 HTML 文件,你可以在浏览器中查看,直观地了解数据漂移和模型性能。


7


9


10


11


12


请确保你的环境中已安装 Evidently 和其他所需库函数(如 pandas、sklearn 等),以便运行此代码。


结论

Evidently AI 代表了人工智能领域的重大进步,特别是解决了与 ML 模型部署后阶段相关的挑战。通过提供全面监控和分析工具,Evidently AI 使企业能够满怀信心地部署人工智能解决方案,因为他们知道,面对不断变化的现实条件,这些解决方案能够保持高性能和可靠性。随着人工智能不断发展并扩展到各个领域,Evidently AI 等监控工具在确保负责任地有效使用这些技术方面的作用将变得越来越关键。

文章来源:https://medium.com/the-modern-scientist/monitoring-machine-learning-models-an-in-depth-look-at-evidently-ai-dfebd5760643
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消