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


猜你喜欢
- 1. composer 安装 PDF组件composer require setasign/fpdicomposer require set
- 同一进程下的多个线程共享内存数据,多个线程之间没有主次关系,相互之间可以操作;cpu执行的都是线程,默认程序会开一个主线程;进程是程序以及和
- 字符串的表示方式单引号 ' '双引号 " "多引号 """ "&
- 最近在做Python 的项目,特地整理了下 Python 序列的方法。序列se
- 如下所示:fp = open(''test2.txt','w') #打开你要写得文件test2.tx
- 如下所示:matplotlib.pyplot.plot(*args, **kwargs)绘制线条或标记的轴。参数是一个可变长度参数,允许多个
- 人口普查人口数量变化图1 第七次人口普查不同省份总人口import pandas as pdfrom collections import
- 用python编表白程序的方法:1、创建GUI窗口,实现代码的调用。2、编写点击触发函数,实现表白程序。具体代码如下:from tkinte
- 另外,我们在 控制结构比较两个数值是否一直的时候,也应该尽量使用 === 来代替 ==(当然,这个也根据具体的业务逻辑选用比较合适的)。 小
- 这篇文章主要介绍了Python assert关键字原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 本文实例讲述了JS实现淡入淡出图片效果的方法。分享给大家供大家参考,具体如下:效果:鼠标移入时,图片由半透明逐渐变成清晰,移出时,由清晰变为
- 继上一篇单向链表,单线链表可以进一步扩展为环,如下图所示:特点:1、第一个节点称为头部节点,最后一个节点称为尾部节点2、每个节点都单方面的指
- Python爬虫之Scrapy环境搭建如何搭建Scrapy环境首先要安装Python环境,Python环境搭建见:https://blog.
- 线程实现Python中线程有两种方式:函数或者用类来包装线程对象。threading模块中包含了丰富的多线程支持功能:threading.c
- 前言如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然。要加一个进度条其实只需要几行代码。from alive_
- 我们在微博上可以对图片进行向左转向右转等旋转操作,让用户可以从不同的视角欣赏图片效果。本文将结合实例为您讲解如何使用Javascript结合
- open(filename,mode,buffer) 其中第一个参数是要打开的文件的文件名,必选;第二个是打开方式,可选;第三个为缓冲区,可
- Hypothesis是Python的一个高级测试库。它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试数据。可以用更少的工作在代
- 1.自定义浏览器窗口大小或全屏from selenium import webdriverimport timedriver = webdr
- 具体代码如下所示:#coding:utf-8#!/usr/bin/python3from selenium import webdriver