Py之yellowbrick:yellowbrick的简介、安装、使用方法之详细攻略

Py之yellowbrick:yellowbrick的简介、安装、使用方法之详细攻略

目录

yellowbrick的简介

1、​​​​​​​Visualizers

2、模型选择

3、Yellowbrick是为谁服务的?

yellowbrick的安装

yellowbrick的使用方法

1、基础用法


yellowbrick的简介

       Yellowbrick包得名于美国作家L. Frank Baum于1900年出版的儿童小说《绿野仙踪》中的虚构元素。在书中,yellow brick路是主人公多Dorothy Gale到达目的地翡翠城的必经之路。
       Yellowbrick是一个开源的纯Python项目,它使用可视化分析和诊断工具扩展了scikit-learn API。Yellowbrick API还封装了matplotlib,以创建可发布的图形和交互式数据探索,同时仍允许开发人员对图形进行细粒度控制。对于用户来说,Yellowbrick可以帮助评估机器学习模型的性能、稳定性和预测价值,并帮助诊断整个机器学习工作流程中的问题
       最近,大部分工作流程已通过网格搜索方法、标准化 API 和基于 GUI 的应用程序实现自动化。然而,在实践中,人类的直觉和指导可以比穷举搜索更有效地细化质量模型。通过可视化模型选择过程,数据科学家可以转向最终的、可解释的模型,并避免陷阱和圈套
       Yellowbrick 库是一个用于机器学习的诊断可视化平台,它允许数据科学家指导模型选择过程。它使用一个新的核心对象扩展了 scikit-learn API:Visualizer。可视化工具允许将可视模型作为 scikit-learn 管道过程的一部分进行拟合和转换,从而在高维数据的整个转换过程中提供可视化诊断
       Yellowbrick是一套可视化分析和诊断工具,旨在通过scikit-learn促进机器学习。该库实现了一个新的核心API对象,即 Visualizer,它是一个scikit-learn估计器——一个从数据中学习的对象。与转换器或模型类似,可视化工具通过创建模型选择工作流程的可视化表示来从数据中学习
       ​​​​​​​Visualizer允许用户引导模型选择过程,围绕特征工程、算法选择和超参数调优建立直觉。例如,它们可以帮助诊断围绕模型复杂性和偏差、异方差、不适应和过度训练或班级平衡问题的常见问题。通过对模型选择工作流应用可视化工具,Yellowbrick允许您更快地引导预测模型获得更成功的结果。

官网简介https://www.scikit-yb.org/en/latest/about.html

Pypiyellowbrick · PyPI

1、​​​​​​​Visualizers

       可视化器是估计器——从数据中学习的对象——其主要目标是创建可视化,以便深入了解模型选择过程。在 scikit-learn 术语中,它们在可视化数据空间或包装模型估计器时类似于变形器,类似于ModelCV(例如RidgeCV, LassoCV)方法的工作方式。Yellowbrick的主要目标是创建一个类似于scikit-learn的有意义的API。我们最流行的可视化工具包括:

分类可视化

分类报告:一个可视化分类报告,以热图的形式显示模型的准确率、召回率和每个类别的F1分数;

混淆矩阵:多类分类中类对混淆矩阵的热图视图

判别阈值:将二元分类器判别阈值的精度、召回率、F1 分数和排队率可视化

Precision-Recall Curve:绘制不同概率阈值的精度与召回分数

ROCAUC:绘制接收者操作特征 (ROC) 和曲线下面积图 (AUC)

聚类可视化

簇间距离图:可视化簇的相对距离和大小

KElbow Visualizer:根据指定的评分函数可视化聚类,在曲线中寻找“肘部”。

Silhouette Visualizer:通过在单个模型中可视化每个簇的轮廓系数分数来选择 k

特征可视化

流形可视化:具有流形学习的高维可视化

平行坐标:实例的水平可视化

PCA投影:基于主成分的实例投影

RadViz Visualizer:围绕圆形图分离实例

Rank Features:对特征进行单次或成对排序以检测关系

模型选择可视化

交叉验证分数:将交叉验证分数显示为条形图,平均分数绘制为水平线

特征重要性:基于它们在模型中的表现对特征进行排名

学习曲线:显示模型是否可以从更多数据或更少复杂性中受益

递归特征消除:根据重要性找到最佳的特征子集

验证曲线:针对单个超参数调优模型

回归可视化

Alpha选择:展示 alpha 的选择如何影响正则化

Cook’s Distance:显示实例对线性回归的影响

预测误差图:沿目标域查找模型故障

Residuals Plot:显示训练和测试数据的残差差异

目标可视化

Balanced Binning Reference:生成带有垂直线的直方图,显示推荐值,将 bin 数据点到均匀分布的 bin 中

类平衡:通过将每个类出现的频率以柱状图(类在数据集中表示的频率)的形式显示出来,从而显示出训练数据和测试数据中每个类支持的关系

特征相关性:将因变量与目标之间的相关性可视化

文本可视化

分散图:可视化关键术语如何分散在整个语料库中

PosTag Visualizer:绘制整个标记语料库中不同词性的计数

Token 频率分布:可视化语料库中术语的频率分布

t-SNE语料库可视化:将随机邻居嵌入到项目文档中

UMAP语料库可视化:将相似的文档绘制得更紧密以发现集群

2、模型选择

       机器学习的讨论通常都集中在模型选择上。无论是逻辑回归、随机森林、贝叶斯方法还是人工神经网络,机器学习从业者通常都能快速表达他们的偏好。造成这种情况的原因主要是历史原因。尽管现代的第三方机器学习库已经使得多个模型的部署变得几乎微不足道,但传统上,即使是其中一种算法的应用和调整都需要多年的研究。结果,机器学习实践者往往对特定(并且可能更熟悉)模型比其他模型有强烈的偏好。
然而,模型选择比简单地选择“正确”或“错误”算法更微妙一些。在实践中,工作流程包括:
(1)、选择和/或设计最小和最具预测性的特征集
(2)、从模型族中选择一组算法
(3)、优化算法超参数以优化性能
       2015年,Kumar等人在SIGMOD的一篇论文中首次描述了模型选择triples。在他们的论文中,该论文涉及为预测预测建模而构建的下一代数据库系统的开发,作者有力地表示,由于机器学习在实践中的高度实验性,迫切需要此类系统。他们解释说:“模型选择是迭代和探索性的,因为 [模型选择triples] 的空间通常是无限的,分析师通常不可能先验地知道哪种 [组合] 会产生令人满意的准确性和/或洞察力。”

3、Yellowbrick是为谁服务的?

       Yellowbrick Visualizers 有多个用例:
(1)、对于数据科学家来说,他们可以帮助评估机器学习模型的稳定性和预测价值,提高实验工作流程的速度。
(2)、对于数据工程师来说,Yellowbrick 提供了可视化工具,用于监控真实世界应用中的模型性能
(3)、对于模型的用户来说,Yellowbrick 提供了模型在高维特征空间中的行为的可视化解释。
(4)、对于老师和学生来说,Yellowbrick 是一个用于教学和理解大量算法和方法的框架。

yellowbrick的安装

pip install yellowbrick
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple yellowbrick

pip install yellowbrick==1.3
pip install yellowbrick==1.4    #下载不成功
原因:Could not find a version that satisfies the requirement scikit-learn>=1.0.0

yellowbrick的使用方法

1、基础用法

from yellowbrick.features import rank2d
from yellowbrick.datasets import load_credit


# Pearson相关方法来可视化特征之间的相关性
X, _ = load_credit()
visualizer = rank2d(X)


# 评估模型性能并解释模型:生成一个判别阈值图,以找到分隔二进制类的最佳阈值
from yellowbrick.classifier import discrimination_threshold
from sklearn.linear_model import LogisticRegression
from yellowbrick.datasets import load_spam

X, y = load_spam()
visualizer = discrimination_threshold(LogisticRegression(multi_class="auto", solver="liblinear"), X,y)
# 解释模型在0.4概率阈值下表现最好

"the downloaded dataset was improperly packaged without meta.json "
yellowbrick.exceptions.DatasetsError: the downloaded dataset was improperly packaged without meta.json - please report this bug to the Yellowbrick maintainers!

猜你喜欢

转载自blog.csdn.net/qq_41185868/article/details/126088666