可视化#

用于模型理解的可视化函数。

模块内容#

函数#

binary_objective_vs_threshold

计算拟合的二元分类流水线在不同二元分类决策阈值下的目标分数。

decision_tree_data_from_estimator

以重构格式返回拟合树的数据。

decision_tree_data_from_pipeline

以重构格式返回拟合流水线的数据。

get_linear_coefficients

返回一个 DataFrame,显示线性模型中具有最大预测能力的特征。

get_prediction_vs_actual_data

将 y_true 和 y_pred 合并到一个 DataFrame 中,并添加一列用于标识异常值。在 graph_prediction_vs_actual() 中使用。

get_prediction_vs_actual_over_time_data

获取 prediction_vs_actual_over_time 绘图所需的数据。

graph_binary_objective_vs_threshold

生成一个图表,展示拟合的二元分类流水线的目标分数与决策阈值之间的关系。

graph_prediction_vs_actual

生成一个散点图,比较真实值和预测值。用于回归分析绘图。

graph_prediction_vs_actual_over_time

在 x 轴上绘制目标值和预测值随时间的变化。

graph_t_sne

使用 t-SNE 将高维数据绘制到低维空间中。

t_sne

使用 t-SNE 将 X 拟合到嵌入空间后,获取变换后的输出。

visualize_decision_tree

生成一个可视化决策树的图像。

目录#

evalml.model_understanding.visualizations.binary_objective_vs_threshold(pipeline, X, y, objective, steps=100)[source]#

计算拟合的二元分类流水线在不同二元分类决策阈值下的目标分数。

参数
  • pipeline (BinaryClassificationPipeline 对象) – 拟合的二元分类流水线。

  • X (pd.DataFrame) – 用于计算目标分数的输入数据。

  • y (pd.Series) – 目标标签。

  • objective (ObjectiveBase 对象, str) – 用于评分的目标。

  • steps (int) – 划分并计算目标分数的区间数量。

返回

包含阈值和在每个阈值下计算出的对应目标分数的 DataFrame。

返回类型

pd.DataFrame

引发
  • ValueError – 如果目标不是二元分类目标。

  • ValueError – 如果目标的 score_needs_proba 不是 False。

evalml.model_understanding.visualizations.decision_tree_data_from_estimator(estimator)[source]#

以重构格式返回拟合树的数据。

参数

estimator (ComponentBase) – 拟合的基于决策树的估计器。

返回

描述树结构的 OrderedDict 嵌套。

返回类型

OrderedDict

引发
  • ValueError – 如果估计器不是基于决策树的估计器。

  • NotFittedError – 如果估计器尚未拟合。

evalml.model_understanding.visualizations.decision_tree_data_from_pipeline(pipeline_)[source]#

以重构格式返回拟合流水线的数据。

参数

pipeline (PipelineBase) – 包含基于决策树的估计器的流水线。

返回

描述树结构的 OrderedDict 嵌套。

返回类型

OrderedDict

引发
  • ValueError – 如果估计器不是基于决策树的估计器。

  • NotFittedError – 如果估计器尚未拟合。

evalml.model_understanding.visualizations.get_linear_coefficients(estimator, features=None)[source]#

返回一个 DataFrame,显示线性模型中具有最大预测能力的特征。

参数
  • estimator (Estimator) – 拟合的线性模型家族估计器。

  • features (list[str]) – 与底层数据相关的特征名称列表。

返回

按重要性显示特征。

返回类型

pd.DataFrame

引发
  • ValueError – 如果模型不是线性模型。

  • NotFittedError – 如果模型尚未拟合。

evalml.model_understanding.visualizations.get_prediction_vs_actual_data(y_true, y_pred, outlier_threshold=None)[source]#

将 y_true 和 y_pred 合并到一个 DataFrame 中,并添加一列用于标识异常值。在 graph_prediction_vs_actual() 中使用。

参数
  • y_true (pd.Seriesnp.ndarray) – 数据的真实目标值

  • y_pred (pd.Seriesnp.ndarray) – 回归模型输出的预测值。

  • outlier_threshold (int, float) – 用于判断异常值的正阈值。此值与 y_true 和 y_pred 每对值之间的绝对差进行比较。在此阈值范围内的值将显示为蓝色,否则显示为黄色。默认为 None。

返回

  • prediction: 回归模型的预测值。

  • actual: 真实目标值。

  • outlier: 指示哪些值在异常值阈值范围内的颜色。

返回类型

包含以下列的 pd.DataFrame

引发

ValueError – 如果阈值不是正数。

evalml.model_understanding.visualizations.get_prediction_vs_actual_over_time_data(pipeline, X, y, X_train, y_train, dates)[source]#

获取 prediction_vs_actual_over_time 绘图所需的数据。

参数
  • pipeline (TimeSeriesRegressionPipeline) – 拟合的时间序列回归流水线。

  • X (pd.DataFrame) – 用于生成新预测的特征。

  • y (pd.Series) – 用于与预测进行比较的目标值。

  • X_train (pd.DataFrame) – 用于训练流水线的数据。

  • y_train (pd.Series) – 训练数据的目标值。

  • dates (pd.Series) – 对应于目标值和预测值的日期。

返回

预测值随时间的变化。

返回类型

pd.DataFrame

evalml.model_understanding.visualizations.graph_binary_objective_vs_threshold(pipeline, X, y, objective, steps=100)[source]#

生成一个图表,展示拟合的二元分类流水线的目标分数与决策阈值之间的关系。

参数
  • pipeline (PipelineBase子类) – 拟合的流水线

  • X (pd.DataFrame) – 用于评分和计算分数的输入数据

  • y (pd.Series) – 目标标签

  • objective (ObjectiveBase 对象, str) – 用于评分的目标,显示在图表的 y 轴上

  • steps (int) – 划分并计算目标分数的区间数量

返回

表示生成的目标分数 vs. 阈值图表的 plotly.Figure

evalml.model_understanding.visualizations.graph_prediction_vs_actual(y_true, y_pred, outlier_threshold=None)[source]#

生成一个散点图,比较真实值和预测值。用于回归分析绘图。

参数
  • y_true (pd.Series) – 数据的真实目标值。

  • y_pred (pd.Series) – 回归模型输出的预测值。

  • outlier_threshold (int, float) – 用于判断异常值的正阈值。此值与 y_true 和 y_pred 每对值之间的绝对差进行比较。在此阈值范围内的值将显示为蓝色,否则显示为黄色。默认为 None。

返回

表示预测值 vs. 真实值图表的 plotly.Figure

引发

ValueError – 如果阈值不是正数。

evalml.model_understanding.visualizations.graph_prediction_vs_actual_over_time(pipeline, X, y, X_train, y_train, dates, single_series=None)[source]#

在 x 轴上绘制目标值和预测值随时间的变化。

参数
  • pipeline (TimeSeriesRegressionPipeline) – 拟合的时间序列回归流水线。

  • X (pd.DataFrame) – 用于生成新预测的特征。如果问题是多序列的,X 应该进行堆叠。

  • y (pd.Series) – 用于与预测进行比较的目标值。如果问题是多序列的,y 应该进行堆叠。

  • X_train (pd.DataFrame) – 用于训练流水线的数据。

  • y_train (pd.Series) – 训练数据的目标值。

  • dates (pd.Series) – 对应于目标值和预测值的日期。

  • single_series (str) – 多序列数据集中用于只绘制单个序列的序列 id 值。默认为 None。

返回

显示预测值与真实值随时间的变化。

返回类型

plotly.Figure

引发

ValueError – 如果流水线不是时间序列回归流水线。

evalml.model_understanding.visualizations.graph_t_sne(X, n_components=2, perplexity=30.0, learning_rate=200.0, metric='euclidean', marker_line_width=2, marker_size=7, **kwargs)[source]#

使用 t-SNE 将高维数据绘制到低维空间中。

参数
  • X (np.ndarray, pd.DataFrame) – 要进行变换的数据。必须是数值类型。

  • n_components (int) – 嵌入空间的维度。默认为 2。

  • perplexity (float) – 与其他流形学习算法中使用的最近邻数量相关。大型数据集通常需要更大的困惑度(perplexity)。建议选择 5 到 50 之间的值。默认为 30。

  • learning_rate (float) – 通常在 [10.0, 1000.0] 范围内。如果成本函数陷入糟糕的局部最小值,增加学习率可能有助于改善。必须是正数。默认为 200。

  • metric (str) – 计算特征数组中实例之间距离时使用的度量。默认是“euclidean”,解释为欧氏距离的平方。

  • marker_line_width (int) – 确定标记边界的线宽。默认为 2。

  • marker_size (int) – 确定标记的大小。默认为 7。

  • kwargs – 任意关键字参数。

返回

表示变换后数据的 Figure。

返回类型

plotly.Figure

引发

ValueError – 如果 marker_line_width 或 marker_size 不是有效值。

evalml.model_understanding.visualizations.t_sne(X, n_components=2, perplexity=30.0, learning_rate=200.0, metric='euclidean', **kwargs)[source]#

使用 t-SNE 将 X 拟合到嵌入空间后,获取变换后的输出。

参数
  • X (np.ndarray, pd.DataFrame) – 要进行变换的数据。必须是数值类型。

  • n_components (int, 可选) – 嵌入空间的维度。

  • perplexity (float, 可选) – 与其他流形学习算法中使用的最近邻数量相关。大型数据集通常需要更大的困惑度(perplexity)。建议选择 5 到 50 之间的值。

  • learning_rate (float, 可选) – 通常在 [10.0, 1000.0] 范围内。如果成本函数陷入糟糕的局部最小值,增加学习率可能有助于改善。

  • metric (str, 可选) – 计算特征数组中实例之间距离时使用的度量。

  • kwargs – 任意关键字参数。

返回

TSNE 输出。

返回类型

np.ndarray (n_samples, n_components)

引发

ValueError – 如果指定的参数不是有效值。

evalml.model_understanding.visualizations.visualize_decision_tree(estimator, max_depth=None, rotate=False, filled=False, filepath=None)[source]#

生成一个可视化决策树的图像。

参数
  • estimator (ComponentBase) – 拟合的基于决策树的估计器。

  • max_depth (int, 可选) – 树应显示的深度。如果设置为 None (默认为此值),则完全生成树。

  • rotate (bool, 可选) – 使树的方向从左到右,而不是自顶向下。

  • filled (bool, 可选) – 填充节点以指示分类中的多数类别、回归中的值极值或多输出中的节点纯度。

  • filepath (str, 可选) – 图表应保存到的路径。如果设置为 None (默认为此值),则图表将不会保存。

返回

可以直接在 Jupyter notebooks 中显示的 DOT 对象。

返回类型

graphviz.Source

引发
  • ValueError – 如果估计器不是基于决策树的估计器。

  • NotFittedError – 如果估计器尚未拟合。