可解释性结果¶
包含从 _ForecastingModelExplainer.explain() 获得的可解释性结果。
- 用于基于组件的可解释性结果的 - ComponentBasedExplainabilityResult
- 用于基于预测范围的可解释性结果的 - HorizonBasedExplainabilityResult
- class darts.explainability.explainability_result.ComponentBasedExplainabilityResult(explained_components)[source]¶
- 基类: - _ExplainabilityResult- 通用组件对象的可解释性结果。解释的组件可以描述任何事物。 - 示例 - >>> explainer = SomeComponentBasedExplainer(model) >>> explain_results = explainer.explain() >>> output = explain_results.get_explanation(component="some_component") - 方法 - get_explanation(component)- 返回给定组件的一个或多个解释。 
- class darts.explainability.explainability_result.HorizonBasedExplainabilityResult(explained_forecasts)[source]¶
- 基类: - _ExplainabilityResult- 存储 - _ForecastingModelExplainer的可解释性结果,方便访问基于预测范围的结果。- 结果是一个多元 TimeSeries 实例,包含对应于前景 TimeSeries 输入的任何可预测时间戳上 (预测范围, 目标组件) 预测的“解释”。 - 此多元 TimeSeries 的组件命名约定为: - "{name}_{type_of_cov}_lag_{idx}",其中- {name}是原始前景序列(目标、过去或未来)中的组件名称。
- {type_of_cov}是协变量类型。它可以取 3 个不同的值:- "target"、- "past_cov"或- "future_cov"。
- {idx}是滞后索引。
 - 示例 - 假设我们有一个模型,包含 2 个目标组件,名为 - "T_0"和- "T_1",3 个过去协变量,默认组件名称为- "0"、- "1"和- "2",以及一个未来协变量,默认组件名称为- "0"。同时,- horizons = [1, 2]。该模型是一个回归模型,- lags = 3,- lags_past_covariates=[-1, -3],- lags_future_covariates = [0]。- 我们提供长度为 5 的 foreground_series、foreground_past_covariates、foreground_future_covariates。 - >>> explainer = SomeHorizonBasedExplainer(model) >>> explain_results = explainer.explain( >>> foreground_series=foreground_series, >>> foreground_past_covariates=foreground_past_covariates, >>> foreground_future_covariates=foreground_future_covariates, >>> horizons=[1, 2], >>> target_names=["T_0", "T_1"] >>> ) >>> output = explain_results.get_explanation(horizon=1, target="T_1") - 然后该方法返回一个包含对应 _ForecastingModelExplainer 的解释的多元 TimeSeries,其组件名称如下: - T_0_target_lag-1 
- T_0_target_lag-2 
- T_0_target_lag-3 
- T_1_target_lag-1 
- T_1_target_lag-2 
- T_1_target_lag-3 
- 0_past_cov_lag-1 
- 0_past_cov_lag-3 
- 1_past_cov_lag-1 
- 1_past_cov_lag-3 
- 2_past_cov_lag-1 
- 2_past_cov_lag-3 
- 0_fut_cov_lag_0 
 - 该序列的长度为 3,因为模型可以解释 5-3+1 个预测(时间戳索引 4、5 和 6) - 方法 - get_explanation(horizon[, component])- 返回一个或多个 TimeSeries,表示给定预测范围和组件的解释。 - get_explanation(horizon, component=None)[source]¶
- 返回一个或多个 TimeSeries,表示给定预测范围和组件的解释。 - 参数
- horizon ( - int) – 返回解释的预测范围。
- component ( - Optional[- str,- None]) – 返回解释的组件。对于单变量序列无需指定。
 
- 返回类型
- Union[- TimeSeries,- list[- TimeSeries]]
 
 
- class darts.explainability.explainability_result.ShapExplainabilityResult(explained_forecasts, feature_values, shap_explanation_object)[source]¶
- 基类: - HorizonBasedExplainabilityResult- 存储 - ShapExplainer的可解释性结果,方便访问结果。它扩展了- HorizonBasedExplainabilityResult,并携带了 Shap 解释器特有的额外信息。特别是,除了 explained_forecasts(在 ShapExplainer 的情况下是 shap 值)之外,它还提供了对相应 feature_values 和底层 shap.Explanation 对象的访问。- get_explanation(): 给定预测范围(和目标组件)的解释预测
- get_feature_values(): 给定预测范围(和目标组件)的特征值。
- get_shap_explanation_object(): 给定预测范围(和目标组件)的 shap.Explanation 对象。
 - 示例 - >>> explainer = ShapExplainer(model) # requires `background` if model was trained on multiple series >>> explain_results = explainer.explain() >>> exlained_fc = explain_results.get_explanation(horizon=1) >>> feature_values = explain_results.get_feature_values(horizon=1) >>> shap_objects = explain_results.get_shap_explanation_objects(horizon=1) - 方法 - get_explanation(horizon[, component])- 返回一个或多个 TimeSeries,表示给定预测范围和组件的解释。 - get_feature_values(horizon[, component])- 返回一个或多个 TimeSeries,表示给定预测范围和组件的特征值。 - get_shap_explanation_object(horizon[, component])- 返回给定预测范围和组件的底层 shap.Explanation 对象。 - get_explanation(horizon, component=None)¶
- 返回一个或多个 TimeSeries,表示给定预测范围和组件的解释。 - 参数
- horizon ( - int) – 返回解释的预测范围。
- component ( - Optional[- str,- None]) – 返回解释的组件。对于单变量序列无需指定。
 
- 返回类型
- Union[- TimeSeries,- list[- TimeSeries]]
 
 - get_feature_values(horizon, component=None)[source]¶
- 返回一个或多个 TimeSeries,表示给定预测范围和组件的特征值。 - 参数
- horizon ( - int) – 返回特征值的预测范围。
- component ( - Optional[- str,- None]) – 返回特征值的组件。对于单变量序列无需指定。
 
- 返回类型
- Union[- TimeSeries,- list[- TimeSeries]]
 
 
- class darts.explainability.explainability_result.TFTExplainabilityResult(explanations)[source]¶
- 基类: - ComponentBasedExplainabilityResult- 存储 - TFTExplainer的可解释性结果,方便访问结果。它扩展了- ComponentBasedExplainabilityResult,并携带了 TFT 解释器特有的信息。- get_attention(): 编码器和解码器上的自注意力
- get_encoder_importance(): 编码器特征重要性,包括过去目标、过去协变量和未来协变量的历史部分。
- get_decoder_importance(): 解码器特征重要性,包括未来协变量的未来部分。
- get_static_covariates_importance(): 静态协变量重要性。
- get_feature_importances(): 一次获取所有特征重要性。
 - 示例 - >>> explainer = TFTExplainer(model) # requires `background` if model was trained on multiple series >>> explain_results = explainer.explain() >>> attention = explain_results.get_attention() >>> importances = explain_results.get_feature_importances() >>> encoder_importance = explain_results.get_encoder_importance() >>> decoder_importance = explain_results.get_decoder_importance() >>> static_covariates_importance = explain_results.get_static_covariates_importance() - 方法 - 返回编码器和解码器在 (1, output_chunk_length) 中每个 horizon 上的时间依赖注意力。 - 将时间依赖的解码器重要性作为 pd.DataFrame 返回。 - 将时间依赖的编码器重要性作为 pd.DataFrame 返回。 - get_explanation(component)- 返回给定组件的一个或多个解释。 - 将编码器、解码器和静态协变量的特征重要性作为 pd.DataFrame 返回。 - 将数值和分类静态协变量重要性作为 pd.DataFrame 返回。 - get_attention()[source]¶
- 返回编码器和解码器在 (1, output_chunk_length) 中每个 horizon 上的时间依赖注意力。时间索引范围从预测序列的开始时间减去 input_chunk_length,到预测序列的结束时间。如果在调用 - TFTExplainer.explain()时使用了多个序列,则返回一个 TimeSeries 列表。- 返回类型
- Union[- TimeSeries,- list[- TimeSeries]]
 
 - get_decoder_importance()[source]¶
- 将时间依赖的解码器重要性作为 pd.DataFrame 返回。如果在 - TFTExplainer.explain()中使用了多个序列,则返回一个 pd.DataFrame 列表。- 返回类型
- Union[- DataFrame,- list[- DataFrame]]
 
 - get_encoder_importance()[source]¶
- 将时间依赖的编码器重要性作为 pd.DataFrame 返回。如果在 - TFTExplainer.explain()中使用了多个序列,则返回一个 pd.DataFrame 列表。- 返回类型
- Union[- DataFrame,- list[- DataFrame]]
 
 - get_explanation(component)¶
- 返回给定组件的一个或多个解释。 - 参数
- component – 返回解释的组件。 
- 返回类型
- Union[- Any,- list[- Any]]
 
 - get_feature_importances()[source]¶
- 将编码器、解码器和静态协变量的特征重要性作为 pd.DataFrame 返回。如果在 - TFTExplainer.explain()中使用了多个序列,则针对每种重要性返回一个 pd.DataFrame 列表。- 返回类型
- dict[- str,- Union[- DataFrame,- list[- DataFrame]]]
 
 - get_static_covariates_importance()[source]¶
- 将数值和分类静态协变量重要性作为 pd.DataFrame 返回。如果在 - TFTExplainer.explain()中使用了多个序列,则返回一个 pd.DataFrame 列表。- 返回类型
- Union[- DataFrame,- list[- DataFrame]]