模型理解#
模型理解工具。
子模块#
包内容#
函数#
计算目标得分,该得分是拟合的二元分类管道的潜在二元分类决策阈值的函数。 |
|
计算特征的置换重要性。 |
|
计算原始 dataframe 中某一列的置换重要性。 |
|
用于二元分类和多类分类的混淆矩阵。 |
|
创建一份报告,总结输入特征中每个数据点的贡献最大的特征。 |
|
创建一份报告,总结数据集中根据与真实标签的误差衡量的最佳和最差数据点的贡献最大的特征。 |
|
获取每个阈值的混淆矩阵和直方图分箱,以及每个目标函数的最佳阈值。仅适用于二元分类管道。 |
|
返回一个 dataframe,显示线性模型中预测能力最强的特征。 |
|
将 y_true 和 y_pred 合并到一个 dataframe 中,并为异常值添加一列。用于 graph_prediction_vs_actual() 函数。 |
|
获取 prediction_vs_actual_over_time 图所需的数据。 |
|
生成一个图表,绘制拟合的二元分类管道的目标得分与决策阈值的关系。 |
|
生成并显示混淆矩阵图。 |
|
创建单向或双向偏依赖图。 |
|
生成管道置换重要性的条形图。 |
|
生成并显示精确率-召回率图。 |
|
生成比较真实值和预测值的散点图。用于回归绘图。 |
|
在 x 轴上绘制目标值和预测值随时间的变化。 |
|
为二元分类和多类分类问题生成并显示接收者操作特征 (ROC) 图。 |
|
使用 t-SNE 将高维数据绘制到低维空间中。 |
|
规范化混淆矩阵。 |
|
计算单向或双向偏依赖。 |
|
给定标签和二元分类器预测概率,计算并返回表示精确率-召回率曲线的数据。 |
|
给定标签和分类器预测概率,计算并返回表示接收者操作特征 (ROC) 曲线的数据。适用于二元或多类问题。 |
|
使用 t-SNE 将 X 拟合到嵌入空间后,获取转换后的输出。 |
内容#
- evalml.model_understanding.binary_objective_vs_threshold(pipeline, X, y, objective, steps=100)[source]#
计算目标得分,该得分是拟合的二元分类管道的潜在二元分类决策阈值的函数。
- 参数
pipeline (BinaryClassificationPipeline obj) – 拟合的二元分类管道。
X (pd.DataFrame) – 用于计算目标得分的输入数据。
y (pd.Series) – 目标标签。
objective (ObjectiveBase obj, str) – 用于评分的目标。
steps (int) – 用于划分和计算目标得分的区间数量。
- 返回
DataFrame,包含阈值以及在每个阈值处计算的相应目标得分。
- 返回类型
pd.DataFrame
- 抛出
ValueError – 如果 objective 不是二元分类目标。
ValueError – 如果 objective 的 score_needs_proba 不为 False。
- evalml.model_understanding.calculate_permutation_importance(pipeline, X, y, objective, n_repeats=5, n_jobs=None, random_seed=0)[source]#
计算特征的置换重要性。
- 参数
pipeline (PipelineBase or subclass) – 拟合的管道。
X (pd.DataFrame) – 用于评分和计算置换重要性的输入数据。
y (pd.Series) – 目标数据。
objective (str, ObjectiveBase) – 用于评分的目标。
n_repeats (int) – 置换特征的次数。默认为 5。
n_jobs (int or None) – 非负整数,描述管道使用的并行级别。None 和 1 是等效的。如果设置为 -1,则使用所有 CPU。对于小于 -1 的 n_jobs,使用 (n_cpus + 1 + n_jobs)。默认为 None。
random_seed (int) – 随机数生成器的种子。默认为 0。
- 返回
在多次洗牌后的平均特征重要性得分。
- 返回类型
pd.DataFrame
- 抛出
ValueError – 如果 objective 不能用于给定的管道。
- evalml.model_understanding.calculate_permutation_importance_one_column(pipeline, X, y, col_name, objective, n_repeats=5, fast=True, precomputed_features=None, random_seed=0)[source]#
计算原始 dataframe 中某一列的置换重要性。
- 参数
pipeline (PipelineBase or subclass) – 拟合的管道。
X (pd.DataFrame) – 用于评分和计算置换重要性的输入数据。
y (pd.Series) – 目标数据。
col_name (str, int) – 要计算置换重要性的 X 中的列。
objective (str, ObjectiveBase) – 用于评分的目标。
n_repeats (int) – 置换特征的次数。默认为 5。
fast (bool) – 是否使用快速方法计算置换重要性。默认为 True。
precomputed_features (pd.DataFrame) – 使用快速方法计算置换重要性所需的预计算特征。默认为 None。
random_seed (int) – 随机数生成器的种子。默认为 0。
- 返回
在多次洗牌后的平均特征重要性得分。
- 返回类型
float
- 抛出
ValueError – 如果管道不支持快速置换重要性计算。
ValueError – 如果 precomputed_features 为 None。
- evalml.model_understanding.confusion_matrix(y_true, y_predicted, normalize_method='true')[source]#
用于二元分类和多类分类的混淆矩阵。
- 参数
y_true (pd.Series or np.ndarray) – 真实二元标签。
y_predicted (pd.Series or np.ndarray) – 来自二元分类器的预测。
normalize_method ({'true', 'pred', 'all', None}) – 如果不为 None,则使用规范化方法。支持的选项包括:'true' 按行规范化,'pred' 按列规范化,或 'all' 按所有值规范化。默认为 'true'。
- 返回
混淆矩阵。列标题表示预测标签,行标题表示实际标签。
- 返回类型
pd.DataFrame
- evalml.model_understanding.explain_predictions(pipeline, input_features, y, indices_to_explain, top_k_features=3, include_explainer_values=False, include_expected_value=False, output_format='text', training_data=None, training_target=None, algorithm='shap')[source]#
创建一份报告,总结输入特征中每个数据点的贡献最大的特征。
XGBoost 模型和 CatBoost 多类分类器目前不支持 SHAP 算法。要解释 XGBoost 模型预测,请使用 LIME 算法。LIME 算法目前不支持任何 CatBoost 模型。对于堆叠集成模型,使用每个输入管道的 predict 函数输入到 metalearner 的 SHAP 值。
- 参数
pipeline (PipelineBase) – 拟合的管道,我们希望使用 SHAP 或 LIME 解释其预测。
input_features (pd.DataFrame) – 用于评估管道的输入数据的 DataFrame。
y (pd.Series) – 输入数据的标签。
indices_to_explain (list[int]) – 要解释的整数索引列表。
top_k_features (int) – 每个数据点在表中包含的贡献最高/最低的特征数量。默认为 3。
include_explainer_values (bool) – 表中是否应包含解释器(SHAP 或 LIME)值。默认为 False。
include_expected_value (bool) – 表中是否应包含期望值。默认为 False。
output_format (str) – “text”、“dict”或“dataframe”之一。默认为“text”。
training_data (pd.DataFrame, np.ndarray) – 管道训练时使用的数据。时序管道必需且仅使用此项。
training_target (pd.Series, np.ndarray) – 用于训练管道的目标。时序管道必需且仅使用此项。
algorithm (str) – 生成贡献最大特征时使用的算法,“shap”或“lime”之一。默认为“shap”。
- 返回
- 一份报告,解释 input_features 每行数据点预测的贡献最大的特征。
报告将包括特征名称、预测贡献和解释器值(可选)。
- 返回类型
str, dict, or pd.DataFrame
- 抛出
ValueError – 如果 input_features 为空。
ValueError – 如果提供的 output_format 不是“text”、“dict”或“dataframe”。
ValueError – 如果请求的索引超出 input_feature 的边界。
- evalml.model_understanding.explain_predictions_best_worst(pipeline, input_features, y_true, num_to_explain=5, top_k_features=3, include_explainer_values=False, metric=None, output_format='text', callback=None, training_data=None, training_target=None, algorithm='shap')[source]#
创建一份报告,总结数据集中根据与真实标签的误差衡量的最佳和最差数据点的贡献最大的特征。
XGBoost 模型和 CatBoost 多类分类器目前不支持 SHAP 算法。要解释 XGBoost 模型预测,请使用 LIME 算法。LIME 算法目前不支持任何 CatBoost 模型。对于堆叠集成模型,使用每个输入管道的 predict 函数输入到 metalearner 的 SHAP 值。
- 参数
pipeline (PipelineBase) – 拟合的管道,我们希望使用 SHAP 或 LIME 解释其预测。
input_features (pd.DataFrame) – 用于评估管道的输入数据。
y_true (pd.Series) – 输入数据的真实标签。
num_to_explain (int) – 要解释的最佳、最差、随机数据点的数量。
top_k_features (int) – 每个数据点在表中包含的贡献最高/最低的特征数量。
include_explainer_values (bool) – 表中是否应包含解释器(SHAP 或 LIME)值。默认为 False。
metric (callable) – 用于识别数据集中最佳和最差数据点的指标。函数必须接受真实标签和预测值或概率作为唯一参数,并且值越低越好。默认情况下,回归问题使用绝对误差,分类问题使用交叉熵损失。
output_format (str) – “text”或“dict”之一。默认为“text”。
callback (callable) – 用于接收增量更新的函数。具有以下参数: - progress_stage: 计算阶段 - time_elapsed: 自调用开始以来经过的总秒数
training_data (pd.DataFrame, np.ndarray) – 管道训练时使用的数据。时序管道必需且仅使用此项。
training_target (pd.Series, np.ndarray) – 用于训练管道的目标。时序管道必需且仅使用此项。
algorithm (str) – 生成贡献最大特征时使用的算法,“shap”或“lime”之一。默认为“shap”。
- 返回
- 一份报告,解释 input_features 中最佳/最差预测的贡献最大的特征。
对于 input_features 中最佳/最差的每一行,将列出预测值、真实标签、指标值、特征名称、预测贡献和解释器值(可选)。
- 返回类型
str, dict, or pd.DataFrame
- 抛出
ValueError – 如果 input_features 中没有超过请求解释的特征数量的两倍。
ValueError – 如果 y_true 和 input_features 的长度不匹配。
ValueError – 如果提供的 output_format 不是“text”、“dict”或“dataframe”。
PipelineScoreError – 如果管道在评分时出错。
- evalml.model_understanding.find_confusion_matrix_per_thresholds(pipeline, X, y, n_bins=None, top_k=5, to_json=False)[source]#
获取每个阈值的混淆矩阵和直方图分箱,以及每个目标函数的最佳阈值。仅适用于二元分类管道。
- 参数
pipeline (PipelineBase) – 用于获取混淆矩阵的拟合的二元分类管道。
X (pd.DataFrame) – 输入特征。
y (pd.Series) – 输入目标。
n_bins (int) – 用于计算阈值的分箱数量。默认为 None,此时将默认为使用 Freedman-Diaconis 规则。
top_k (int) – 每个分箱中作为样本包含的最大行索引数量。-1 包括落入分箱之间的所有行索引。默认为 5。
to_json (bool) – 是否返回 json 输出。如果为 False,返回 (DataFrame, dict) 元组,否则返回 json。
- 返回
- 该 dataframe 包含实际正样本直方图、实际负样本直方图,
混淆矩阵,以及落入分箱中的行样本,所有这些都针对每个阈值。由 dataframe 索引表示的阈值表示该值的截止阈值。字典包含每个目标的理想阈值和得分,以目标名称作为键。如果为 json,则以 json 输出形式返回 dataframe 和字典的信息。
- 返回类型
(tuple(pd.DataFrame, dict)), json)
- 抛出
ValueError – 如果管道不是二元分类管道或尚未在数据上拟合。
- evalml.model_understanding.get_linear_coefficients(estimator, features=None)[source]#
返回一个 dataframe,显示线性模型中预测能力最强的特征。
- 参数
estimator (Estimator) – 拟合的线性模型族估计器。
features (list[str]) – 与基础数据关联的特征名称列表。
- 返回
按重要性显示特征。
- 返回类型
pd.DataFrame
- 抛出
ValueError – 如果模型不是线性模型。
NotFittedError – 如果模型尚未拟合。
- evalml.model_understanding.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.Series, or np.ndarray) – 数据的真实目标值
y_pred (pd.Series, or np.ndarray) – 回归模型输出的预测值。
outlier_threshold (int, float) – 用于判断异常值的正阈值。此值与 y_true 和 y_pred 中每个值之间的绝对差进行比较。在此阈值内的值将显示为蓝色,否则显示为黄色。默认为 None。
- 返回
prediction: 来自回归模型的预测值。
actual: 真实目标值。
outlier: 指示哪些值在异常值阈值内的颜色。
- 返回类型
包含以下列的 pd.DataFrame
- 抛出
ValueError – 如果阈值不是正数。
- evalml.model_understanding.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.graph_binary_objective_vs_threshold(pipeline, X, y, objective, steps=100)[source]#
生成一个图表,绘制拟合的二元分类管道的目标得分与决策阈值的关系。
- 参数
pipeline (PipelineBase or subclass) – 拟合的管道
X (pd.DataFrame) – 用于评分和计算得分的输入数据
y (pd.Series) – 目标标签
objective (ObjectiveBase obj, str) – 用于评分的目标,显示在图的 y 轴上
steps (int) – 用于划分和计算目标得分的区间数量
- 返回
表示生成的目标得分与阈值图的 plotly.Figure 对象
- evalml.model_understanding.graph_confusion_matrix(y_true, y_pred, normalize_method='true', title_addition=None)[source]#
生成并显示混淆矩阵图。
如果设置了 normalize_method,悬停文本将显示原始计数,否则悬停文本将显示使用方法“true”规范化后的计数。
- 参数
y_true (pd.Series or np.ndarray) – 真实二元标签。
y_pred (pd.Series or np.ndarray) – 来自二元分类器的预测。
normalize_method ({'true', 'pred', 'all', None}) – 如果不为 None,则使用规范化方法。支持的选项包括:'true' 按行规范化,'pred' 按列规范化,或 'all' 按所有值规范化。默认为 'true'。
title_addition (str) – 如果不为 None,则附加到绘图标题。默认为 None。
- 返回
表示生成的混淆矩阵图的 plotly.Figure 对象。
- evalml.model_understanding.graph_partial_dependence(pipeline, X, features, class_label=None, grid_resolution=100, kind='average')[source]#
创建单向或双向偏依赖图。
将单个整数或字符串作为 features 传入将创建一个单向偏依赖图,其中特征值与偏依赖关系进行绘制。将 int/strings 元组作为 features 传入将创建一个双向偏依赖图,其中 feature[0] 在 y 轴上以等高线表示,feature[1] 在 x 轴上,偏依赖关系在 z 轴上。
- 参数
pipeline (PipelineBase or subclass) – 拟合的管道。
X (pd.DataFrame, np.ndarray) – 用于生成特征网格值以计算偏依赖关系的输入数据。
features (int, string, tuple[int or string]) – 用于创建偏依赖图的目标特征。如果 features 是一个 int,它必须是使用特征的索引。如果 features 是一个 string,它必须是 X 中有效的列名。如果 features 是一个字符串元组,它必须包含 X 中有效的列整数/名称。
class_label (string, optional) – 对于多类问题要绘制的类的名称。如果为 None,则将绘制每个类的偏依赖关系。此参数不会改变回归或二元分类管道的行为。对于二元分类,将始终显示正标签的偏依赖关系。默认为 None。
grid_resolution (int) – 偏依赖图中特征样本的数量。
kind ({'average', 'individual', 'both'}) – 要绘制的偏依赖类型。'average' 创建常规偏依赖 (PD) 图,'individual' 创建个体条件期望 (ICE) 图,'both' 创建单个图的 PD 和 ICE 图。ICE 图只能用于单向偏依赖图。
- 返回
包含用于绘图的偏依赖数据的 figure 对象
- 返回类型
plotly.graph_objects.Figure
- 抛出
PartialDependenceError – 如果为管道中不存在的类名请求图形。
PartialDependenceError – 如果为双向偏依赖请求 ICE 图。
- evalml.model_understanding.graph_permutation_importance(pipeline, X, y, objective, importance_threshold=0)[source]#
生成管道置换重要性的条形图。
- 参数
pipeline (PipelineBase or subclass) – 拟合的管道。
X (pd.DataFrame) – 用于评分和计算置换重要性的输入数据。
y (pd.Series) – 目标数据。
objective (str, ObjectiveBase) – 用于评分的目标。
importance_threshold (float, optional) – 如果提供,绘制置换重要性绝对值大于 importance_threshold 的特征图。默认为 0。
- 返回
plotly.Figure,一个显示特征及其各自置换重要性的条形图。
- 抛出
ValueError – 如果 importance_threshold 不大于或等于 0。
- evalml.model_understanding.graph_precision_recall_curve(y_true, y_pred_proba, title_addition=None)[source]#
生成并显示精确率-召回率图。
- 参数
y_true (pd.Series or np.ndarray) – 真实二元标签。
y_pred_proba (pd.Series or np.ndarray) – 来自二元分类器的预测,在应用阈值之前。请注意,这应该是“真实”标签的预测概率。
title_addition (str or None) – 如果不为 None,则附加到绘图标题。默认为 None。
- 返回
表示生成的精确率-召回率图的 plotly.Figure 对象
- evalml.model_understanding.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。
- 返回
表示生成的预测值与实际值图的 plotly.Figure 对象
- 抛出
ValueError – 如果阈值不是正数。
- evalml.model_understanding.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.graph_roc_curve(y_true, y_pred_proba, custom_class_names=None, title_addition=None)[source]#
为二元分类和多类分类问题生成并显示接收者操作特征 (ROC) 图。
- 参数
y_true (pd.Series or np.ndarray) – 真实标签。
y_pred_proba (pd.Series or np.ndarray) – 来自分类器的预测,在应用阈值之前。请注意,在二元情况下,这应该是一个一维数组,包含“真实”标签的预测概率。
custom_class_names (list or None) – 如果不为 None,则为类的自定义标签。默认为 None。
title_addition (str or None) – 如果不为 None,则附加到绘图标题。默认为 None。
- 返回
表示生成的 ROC 图的 plotly.Figure 对象
- 抛出
ValueError – 如果自定义类名的数量与输入数据中类的数量不匹配。
- evalml.model_understanding.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.normalize_confusion_matrix(conf_mat, normalize_method='true')[source]#
规范化混淆矩阵。
- 参数
conf_mat (pd.DataFrame or np.ndarray) – 要规范化的混淆矩阵。
normalize_method ({'true', 'pred', 'all'}) – 规范化方法。支持的选项包括:'true' 按行规范化,'pred' 按列规范化,或 'all' 按所有值规范化。默认为 'true'。
- 返回
输入混淆矩阵的规范化版本。列标题表示预测标签,行标题表示实际标签。
- 返回类型
pd.DataFrame
- 抛出
ValueError – 如果配置无效,或者给定轴的总和为零且指定了按轴进行规范化。
- evalml.model_understanding.partial_dependence(pipeline, X, features, percentiles=(0.05, 0.95), grid_resolution=100, kind='average', fast_mode=False, X_train=None, y_train=None)[source]#
计算单向或双向偏依赖。
如果 features 给定单个整数或字符串,则计算单向偏依赖。如果给定包含两个整数或字符串的元组,则计算双向偏依赖,其中第一个特征在 y 轴上,第二个特征在 x 轴上。
- 参数
pipeline (PipelineBase or subclass) – 拟合的管道
X (pd.DataFrame, np.ndarray) – 用于生成特征网格值以计算偏依赖关系的输入数据
features (int, string, tuple[int or string]) – 用于创建偏依赖图的目标特征。如果 features 是一个 int,它必须是使用特征的索引。如果 features 是一个 string,它必须是 X 中有效的列名。如果 features 是一个 int/string 元组,它必须包含 X 中有效的列整数/名称。
percentiles (tuple[float]) – 用于创建网格极端值的下限和上限百分位数。必须在 [0, 1] 范围内。默认为 (0.05, 0.95)。
grid_resolution (int) – 偏依赖图中特征样本的数量。如果此值小于 X 中类别数据中存在的最大类别数,它将被设置为最大类别数 + 1。默认为 100。
kind ({'average', 'individual', 'both'}) – 要返回的预测类型。“individual”将返回网格中所有点对于 X 中每个样本的预测。“average”将返回网格中所有点的预测,但对 X 中所有样本进行平均。
fast_mode (bool, optional) – 计算偏依赖时是否应使用性能优化。默认为 False。请注意,用户指定的组件可能不会产生正确的偏依赖结果,因此快速模式只能与 EvalML 原生组件一起使用。此外,某些组件与快速模式不兼容;在这些情况下,将引发错误,表明不应使用快速模式。
X_train (pd.DataFrame, np.ndarray) – 用于训练原始管道的数据。在快速模式下将用于训练克隆的管道。默认为 None。
y_train (pd.Series, np.ndarray) – 用于训练原始管道的目标数据。在快速模式下将用于训练克隆的管道。默认为 None。
- 返回
当 kind=’average’ 时:DataFrame,包含网格中所有点对 X 所有样本进行平均的预测,以及用于计算这些预测的值。
当 kind=’individual’ 时:DataFrame,包含网格中所有点对 X 中每个样本的个体预测,以及用于计算这些预测的值。如果计算的是双向偏依赖,则结果是一个 DataFrame 列表,每个 DataFrame 表示一个样本的预测。
当 kind=’both’ 时:一个元组,包含对 X 所有样本进行平均的预测(在 DataFrame 中)以及对 X 中每个样本的个体预测(在 DataFrame 列表中)。
在单向情况下:dataframe 将包含两列,“feature_values”(计算偏依赖的网格点)和“partial_dependence”(在该特征值处的偏依赖)。对于分类问题,将有第三列称为“class_label”(计算偏依赖的类标签)。对于二元分类,仅计算“正”类的偏依赖。
在双向情况下:dataframe 将包含 grid_resolution 数量的列和行,其中索引和列头分别是用于创建偏依赖等高线图的第一个和第二个特征的采样值。dataframe 的值包含每对特征值组合的偏依赖数据。
- 返回类型
pd.DataFrame, list(pd.DataFrame), or tuple(pd.DataFrame, list(pd.DataFrame))
- 抛出
ValueError – 调用 scikit-learn 的 partial dependence 方法时出错。
Exception – 计算期间的所有其他错误。
PartialDependenceError – 如果用户提供的特征元组数量不正好为两个。
PartialDependenceError – 如果提供的管道未拟合。
PartialDependenceError – 如果提供的管道是 Baseline 管道。
PartialDependenceError – 如果传入的任何特征完全是 NaN。
PartialDependenceError – 如果任何特征是低方差的。定义为某个值出现的次数超过用户传入的上限百分位数。默认为 95%。
- evalml.model_understanding.precision_recall_curve(y_true, y_pred_proba, pos_label_idx=-1)[source]#
给定标签和二元分类器预测概率,计算并返回表示精确率-召回率曲线的数据。
- 参数
y_true (pd.Series or np.ndarray) – 真实二元标签。
y_pred_proba (pd.Series or np.ndarray) – 来自二元分类器的预测,在应用阈值之前。请注意,这应该是“真实”标签的预测概率。
pos_label_idx (int) – 对应于正类的列索引。如果预测概率是二维的,这将用于访问正类的概率。
- 返回
包含用于生成精确率-召回率图的指标的字典,包含以下键
precision: 精确率值。
recall: 召回率值。
thresholds: 用于产生精确率和召回率的阈值。
auc_score: ROC 曲线下的面积。
- 返回类型
list
- 抛出
NoPositiveLabelException – 如果预测概率在指定的标签处不包含列。
- evalml.model_understanding.roc_curve(y_true, y_pred_proba)[source]#
给定标签和分类器预测概率,计算并返回表示接收者操作特征 (ROC) 曲线的数据。适用于二元或多类问题。
- 参数
y_true (pd.Series or np.ndarray) – 真实标签。
y_pred_proba (pd.Series or pd.DataFrame or np.ndarray) – 来自分类器的预测,在应用阈值之前。
- 返回
- 返回一个字典列表(每个类一个字典)。二元分类问题返回一个包含一个字典的列表。
- 每个字典包含用于生成 ROC 图的指标,包含以下键
fpr_rate: 假正率。
tpr_rate: 真正率。
threshold: 用于产生每对真正率/假正率的阈值。
auc_score: ROC 曲线下的面积。
- 返回类型
list(dict)
- evalml.model_understanding.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, optional) – 嵌入空间的维度。
perplexity (float, optional) – 与其他流形学习算法中使用的最近邻数量有关。较大的数据集通常需要较大的 perplexity。考虑选择介于 5 到 50 之间的值。
learning_rate (float, optional) – 通常在 [10.0, 1000.0] 范围内。如果成本函数陷入不良局部最小值,增加学习率可能会有所帮助。
metric (str, optional) – 计算特征数组中实例之间距离时使用的指标。
kwargs – 任意关键字参数。
- 返回
TSNE 输出。
- 返回类型
np.ndarray (n_samples, n_components)
- 抛出
ValueError – 如果指定的参数不是有效值。