预测误差图(Prediction Error)
预测误差图显示了数据集中的实际目标与我们的模型生成的预测值。 这使我们能够看到模型中有多少方差。
数据科学家可以使用此图通过与45度线进行比较来诊断回归模型,那个地方预测结果完全的匹配模型。
from sklearn.linear_model import Lasso from yellowbrick.datasets import load_bikeshare from yellowbrick.regressor import prediction_error X, y = load_bikeshare() visualizer = prediction_error(Lasso(), X, y) 复制代码
库克距离(Cooks Distance)
Cook距离是统计分析中一种常见的距离,用于诊断各种回归分析中是否存在异常数据。
具有较大影响的实例可能是异常值,并且具有大量高影响点的数据集可能不适合线性回归,而无需进一步处理,例如去除异常值或插补。
CooksDistance 可视化器按索引显示所有实例的茎图及其相关距离分数,以及启发式阈值,以快速显示数据集的百分比可能会影响 OLS 回归模型。
from sklearn.datasets import load_diabetes from yellowbrick.regressor import cooks_distance X, y = load_diabetes(return_X_y=True) visualizer = cooks_distance(X, y) 复制代码
聚类模型可视化
轮廓系数(Silhouette Scores)
当关于数据集的真实情况未知时,使用轮廓系数,并对模型聚类密度的估算进行计算。 该分数是通过对每个样本的轮廓系数求平均值来计算的,计算为每个样本的平均簇内距离和平均最近簇距离之间的差异,并对最大值归一化。这会产生介于 1 和 -1 之间的分数,其中 1 是高度密集的聚类,而 -1 是完全不正确的聚类。
Silhouette可视化器在每个簇的基础上显示每个样本的轮廓系数,可视化哪些簇是密集的,哪些不是。这对于确定聚类不平衡或通过比较多个可视化工具为选择值特别有用。
from sklearn.cluster import KMeans from yellowbrick.datasets import load_nfl from yellowbrick.cluster import silhouette_visualizer X, y = load_nfl() visualizer = silhouette_visualizer(KMeans(5, random_state=42), X) 复制代码
簇间距离图(Intercluster Distance)
簇间距离图显示了簇中心在二维中的嵌入,并保留了与其他中心的距离。
例如,在可视化中越靠近中心,它们就越靠近原始特征空间。根据评分指标来确定簇的大小。
默认情况下,它们按成员身份确定大小,例如,属于每个中心的实例数。这给出了簇的相对重要性的理解。
注意:
因为两个簇在 2D 空间中重叠,所以并不意味着它们在原始特征空间中重叠。
from yellowbrick.datasets import load_nfl from sklearn.cluster import MiniBatchKMeans from yellowbrick.cluster import intercluster_distance X, y = load_nfl() visualizer = intercluster_distance(MiniBatchKMeans(5, random_state=777), X) 复制代码
类平衡(ClassBalance)
分类模型的最大挑战之一是训练数据中的类不平衡。严重的类不平衡可能会被相对较好的 F1 和准确度分数所掩盖。
分类器只是猜测多数类,而不是对代表性不足的类进行任何评估。
有几种处理类别不平衡的技术,例如分层抽样、对多数类别进行下采样、加权等。
但在采取这些行动之前,了解训练数据中的类别平衡是什么很重要。
ClassBalance 可视化工具通过为每个类创建一个条形图来了解类别的平衡,即类在数据集中的表示频率。
from yellowbrick.datasets import load_game from yellowbrick.target import class_balance X, y = load_game() visualizer = class_balance(y, labels=["draw", "loss", "win"]) 复制代码
总结
Yellowbrick这个工具包,给我们机器学习建模带来了极大地便利。一是因为解决了特征工程和建模过程中的可视化问题,极大地简化了操作;二是通过各种可视化也可以补充自己对建模的一些盲区。这里只介绍了Yellowbrick的冰山一角,详情请参见官网。