python数据挖掘使用Evidently创建机器学习模型仪表板
作者:Python学习与数据挖掘 发布时间:2022-10-23 14:21:52
解释机器学习模型是一个困难的过程,因为通常大多数模型都是一个黑匣子,我们不知道模型内部发生了什么。创建不同类型的可视化有助于理解模型是如何执行的,但是很少有库可以用来解释模型是如何工作的。
Evidently 是一个开源 Python 库,用于创建交互式可视化报告、仪表板和 JSON 配置文件,有助于在验证和预测期间分析机器学习模型。它可以创建 6 种不同类型的报告,这些报告与数据漂移、分类或回归的模型性能等有关。
让我们开始吧
1、安装包
使用 pip 软件包管理器安装,运行
$ pip install evidently
该工具允许在 Jupyter notebook 中以及作为单独的HTML文件构建交互式报告。如果你只想将交互式报告生成为HTML文件或导出为JSON配置文件,则安装现已完成。
为了能够在 Jupyter notebook 中构建交互式报告,我们使用Jupyter nbextension。如果想在 Jupyter notebook 中创建报告,那么在安装之后,您应该在 terminal 中运行以下两个命令。
要安装 jupyter Nbextion,请运行:
$ jupyter nbextension install --sys-prefix --symlink --overwrite --py evidently
运行
jupyter nbextension enable evidently --py --sys-prefix
有一点需要注意:安装后单次运行就足够了。无需每次都重复最后两个命令。
2、导入所需的库
在这一步中,我们将导入创建ML模型所需的库。我们还将导入用于创建用于分析模型性能的仪表板的库。此外,我们将导入 pandas 以加载数据集。
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from evidently.dashboard import Dashboard
from evidently.tabs import RegressionPerformanceTab
from evidently.model_profile import Profile
from evidently.profile_sections import RegressionPerformanceProfileSection
3、加载数据集
在这一步中,我们将加载数据并将其分离为参考数据和预测数据。
raw_data = pd.read_csv('/content/day.csv', header = 0, sep = ',', parse_dates=['dteday'])
ref_data = raw_data[:120]
prod_data = raw_data[120:150]
ref_data.head()
4、创建模型
在这一步中,我们将创建机器学习模型,对于这个特定的数据集,我们将使用随机森林回归模型。
target = 'cnt'
datetime = 'dteday'
numerical_features = ['mnth', 'temp', 'atemp', 'hum', 'windspeed']
categorical_features = ['season', 'holiday', 'weekday', 'workingday', 'weathersit',]
features = numerical_features + categorical_features
model = RandomForestRegressor(random_state = 0)
model.fit(ref_data[features], ref_data[target])
ref_data['prediction'] = model.predict(ref_data[features])
prod_data['prediction'] = model.predict(prod_data[features])
5、创建仪表板
在这一步中,我们将创建仪表板来解释模型性能并分析模型的不同属性,如 MAE、MAPE、误差分布等。
column_mapping = {}
column_mapping['target'] = target
column_mapping['prediction'] = 'prediction'
column_mapping['datetime'] = datetime
column_mapping['numerical_features'] = numerical_features
column_mapping['categorical_features'] = categorical_features
dashboard = Dashboard(tabs=[RegressionPerformanceTab])
dashboard .calculate(ref_data, prod_data, column_mapping=column_mapping)
dashboard.save('bike_sharing_demand_model_perfomance.html')
在上图中,可以清楚地看到显示模型性能的报告,可以使用上述代码下载并创建的 HTML 报告。
6、可用报告类型
1)数据漂移
检测特征分布的变化
2)数值目标漂移
检测数值目标和特征行为的变化。
3)分类目标漂移
检测分类目标和特征行为的变化
4)回归模型性能
分析回归模型的性能和模型误差
5)分类模型性能
分析分类模型的性能和错误。适用于二元和多类模型
6)概率分类模型性能
分析概率分类模型的性能、模型校准的质量和模型错误。适用于二元和多类模型。
来源:https://blog.csdn.net/weixin_38037405/article/details/119606663
猜你喜欢
- 编解码器在字符与字节之间的转换过程称为编解码,Python自带了超过100种编解码器,比如:ascii(英文体系)gb2312(中文体系)u
- DataLoaderDataset不能满足需求需自定义继承torch.utils.data.Dataset时需要override __ini
- 我为一大型网站做了一个论坛,也顺利通过了测试。由于是第一次做这方面的数据库,我不知道比其它网站上数据库差距有多大,是不是够优化。能推荐或介绍
- google前不久推出了Google Ajax Library API,说白了就是提供几个知名js库的host,目前有:jQueryprot
- 字典由多个键及与其对应的值构成的对组成(把键值对成为项),每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号
- 这篇文章主要介绍了python基于event实现线程间通信控制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 什么是字符串格式化,为什么需要这样做?我们有时候刷抖音/B站看到封面很好看,但是进入直播发现,不过如此!想必主播通过某种方式把输出转换为读者
- SOAP.py 客户机和服务器SOAP.py 包含的是一些基本的东西。没有 Web 服务描述语言(Web Services Descript
- 微软今天宣布正式发布SQL Server 2008服务器软件,这将帮助微软与Oracle 11g,IBM DB2 9.5数据库产品对抗.此前
- 实例代码:if __name__ == '__main__': # 时间戳 &nbs
- 今天使用shuffleNetV2+,使用自己的数据集,遇到了loss是nan的情况,而且top1精确率出现断崖式上升,这显示是不正常的。在网
- import requestsimport reimport jsonimport ossession = requests.session
- 引言python中的模块、库、包有什么区别?module:一个 .py 文件就是个 modulelib:抽象概念,和另外两个不是一类,只要你
- 一个网站的导航就相当于是一条路的路标,不同的是,网站的不同栏目页的入口远远比马路要来得复杂,所以一个清晰的导航设计对于一个网站的意义远远大于
- 在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样。在使用时我们需要配置一些 H
- 今天在一个QQ群中看到有人在问一个进度条的实现方式,当时因为工作时间,需求相对也比较紧,只是简单的说了一下可以通过CSS的边框属性和背景属性
- 本文实例讲述了PHP缓存集成库phpFastCache用法。分享给大家供大家参考。具体分析如下:phpFastCache是一个开源的PHP缓
- 当一个函数进行完成后需要重定向到一个带参数的urlURLpath('peopleapply/<int:jobid>/
- 一.docx模块Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把
- 引言这两天遭遇了手机号登录相关的压测需求,算是比较棘手的。主要原因有两个,第一:之前从来没有接手过这个项目,不熟悉各种规则;第二:数据量偏大