Forecast 解釋 - Amazon Forecast

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Forecast 解釋

「Forecast 說明」可協助您進一步瞭解資料集中的屬性如何影響特定時間序列 (項目與維度組合) 與時間點的預測。「Forecast」使用稱為「影響分數」的量度來量化每個屬性的相對影響,並判斷它們是否增加或減少預測值。

例如,假設目標所為 sales 且有兩個相關屬性的預測案例:pricecolor。Forecast 可能會發現該項目的顏色對某些商品的銷售有很大的影響,但對其他項目的影響可忽略不計。它也可能發現,在夏季的促銷活動對銷售有很大的影響,但在冬季促銷影響不大。

若要啟用 Forecast 解釋功能,您的預測值必須至少包含下列其中一項:相關時間序列、項目中繼資料或其他資料集,例如假日和天氣索引。如需詳細資訊,請參閱限制和最佳做法

若要檢視資料集中所有時間序列和時間點的彙總影響分數,請使用「Forecast 器解釋性」而非「預測解釋性」。請參閱預測器可解釋性。

Python 筆記本

如需 Forecast 解釋性的 step-by-step 指南,請參閱項目層級可解釋性。

解譯影響分數

影響分數會衡量屬性對預測值的相對影響。例如,如果「價格」屬性的影響分數是「商店位置」屬性的兩倍,則可以得出結論,商品價格對預測值的影響是商店位置的兩倍。

影響分數也會提供屬性是否增加或減少預測值的相關資訊。在控制台中,這是由兩個圖表表示。具有藍色長條的屬性會增加預測值,而具有紅色長條的屬性則會減少預測值。

值得注意的是,影響力分數衡量的是屬性的相對影響,而不是絕對影響。因此,影響分數無法用於確定特定屬性是否可以改善模型的準確性。如果某個屬性的影響分數較低,不一定表示它對預測值的影響較低; 這表示與它對預測值的影響比預測器使用的其他屬性要小。

所有或部分影響分數都可能為零。如果功能對預測值沒有影響、僅 AutoPredictor 使用非 ML 演算法,或者您未提供相關的時間序列或項目中繼資料,就會發生這種情況。

對於「Forecast 解釋」,影響評分有兩種形式:標準化影響評分和原始影響評分。原始影響分數是以 Shapley 值為基礎,不會縮放或界限。歸一化的影響評分會將原始分數縮放為 -1 到 1 之間的值。

原始影響分數對於合併和比較不同解釋資源中的分數非常有用。例如,如果您的 Forecast 值包含 50 個以上的時間序列或超過 500 個時間點,您可以建立多個「預測解釋性」資源,以涵蓋更多組合的時間序列或時間點,並直接比較屬性的原始影響評分。但是,來自不同 Forecast 的「預測解釋」資源的原始影響評分無法直接比較。

在主控台中檢視影響分數時,您只會看到標準化的影響分數。匯出無法解釋功能將為您提供原始和標準化分數。

建立 Forecast 解釋

使用「Forecast 解釋」,您可以探索屬性如何影響特定時間點的特定時間序列的預測值。指定時間序列和時間點後,Amazon Forecast 只會計算那些特定時間序列和時間點的影響分數。

您可以使用軟體開發套件 (SDK) 或 Amazon Forecast 主控台為預測器啟用預測解釋功能。使用 SDK 時,請使用該CreateExplainability操作。

指定時間序列

注意

時間序列是項目 (item_id) 和資料集中所有維度的組合

當您指定「Forecast 解釋」的時間序列 (料號與維度組合) 時,Amazon Forecast 只會計算那些特定時間序列之屬性的影響評分。

若要指定時間序列清單,請將 CSV 檔案上傳依 item_id 和維度值識別時間序列的 CSV 檔案至 S3 儲存貯體。您最多可以指定 50 個時間序列。您也必須定義結構描述中時間序列的屬性和屬性類型。

例如,零售商可能想知道促銷如何影響特定商店地點的特定料號 (item_id) 銷售 (store_location)。在此使用案例中,您可以指定時間序列,該序列是項目識別碼和儲存位置的組合。

下列 CSV 檔案會選取下列五個時間序列:

  1. 物品編號:001,商店位置:西雅圖

  2. 物品編號:001,商店位置:紐約

  3. 商品編號:002,商店位置:西雅圖

  4. 物品編號:002,商店位置:紐約

  5. 物品編號:003,商店位置:丹佛

001, Seattle 001, New York 002, Seattle 002, New York 003, Denver

結構描述將第一個資料行定義為item_id,第二欄定義為store_location

您可以使用「Forecast」主控台或「Forecast 軟體開發套件」(SDK) 來指定時間序列。

Console

若要指定「Forecast 解釋功能」的時間序列

  1. 登錄到 AWS Management Console 並打開 Amazon Forecast 控制台 https://console.aws.amazon.com/forecast/.

  2. 資料集群組中,選擇您的資料集群組。

  3. 在導覽窗格中,選擇 Insights

  4. 選擇「建立可解釋」。

  5. 在「無法解釋名稱」欄位中,提供「Forecast 解釋性」的唯一名稱。

  6. 在「選取預測」 欄位中,選擇您的預測。

  7. S3 位置欄位中,輸入包含時間序列的檔案位置。

  8. 在「資料結構描述」欄位中,設定時間序列中使用的項目 ID 和維度的屬性名稱和屬性類型

  9. 選擇「建立可解釋」。

SDK

若要指定「Forecast 解釋功能」的時間序列

使用CreateExplainability作業,提供唯一的名稱, ExplainabilityName 並提供您的預測 ARN。 ResourceArn

設定下列資料類型:

  • ExplainabilityConfig-將值設置 TimeSeriesGranularity 為「特定」和 TimePointGranularity 「全部」。(要指定時間點,請設置 TimePointGranularity 為「特定」。 請參閱指定時間點)

  • S3Config-將「Path」的值設定為時間序列檔案的 S3 位置,並將「RoleArn」設定為可存取 S3 儲存貯體的角色。

  • Schema-定義 item_id 的「AttributeNameAttributeType」和「」以及時間序列中的維度。

下列範例顯示使用「item_id」和「儲存位置」維度組合的時間序列結構描述。

{ "ExplainabilityName" : [unique_name], "ResourceArn" : [forecast_arn], "ExplainabilityConfig" { "TimeSeriesGranularity": "SPECIFIC", "TimePointGranularity": "ALL" }, "DataSource": { "S3Config": { "Path": [S3_path_to_file], "RoleArn":[role-to-access-s3-bucket] } }, "Schema": { "Attributes": [ { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "store_location", "AttributeType": "string" } ] }, }

指定時間點

注意

如果您未指定時間點 ("TimePointGranularity": "ALL"),Amazon Forecast 會在計算影響評分時考慮整個預測時程。

當您指定「Forecast 解釋」的時間點時,Amazon Forecast 會計算該特定時間範圍內屬性的影響分數。您可以在預測總時程內指定最多 500 個連續時間點。

例如,零售商可能想知道他們的屬性如何影響冬季的銷售。在此使用案例中,他們會指定時間點,以僅跨越預測時程中的冬季期間。

您可以使用「Forecast」主控台或「Forecast 軟體開發套件」(SDK) 來指定時間點。

Console

若要指定「Forecast 解釋功能」的時間序列

  1. 登錄到 AWS Management Console 並打開 Amazon Forecast 控制台 https://console.aws.amazon.com/forecast/.

  2. 資料集群組中,選擇您的資料集群組。

  3. 在導覽窗格中,選擇 Insights

  4. 選擇「建立可解釋」。

  5. 在「無法解釋名稱」欄位中,提供「Forecast 解釋性」的唯一名稱。

  6. 在「選取預測」 欄位中,選擇您的預測。

  7. S3 位置欄位中,輸入包含時間序列的檔案位置。

  8. 在「資料結構描述」欄位中,將屬性名稱設定為項目 ID 和時間序列中使用的維度的屬性類型

  9. 在「持續時間」欄位中,指定行事曆中的開始日期和結束日期。

  10. 選擇「建立可解釋」。

SDK

若要指定「Forecast 解釋功能」的時間序列

使用CreateExplainability作業,提供唯一的名稱, ExplainabilityName 並提供您的預測 ARN。 ResourceArn使用以下時間戳記格式設置開始日期(StartDateTimeEndDateTime)和結束日期yyyy-MM-ddTHH:mm:ss():(例如:2015-01-01T20:00:00)。

設定下列資料類型:

  • ExplainabilityConfig-將值設置 TimeSeriesGranularity 為「特定」和 TimePointGranularity 「特定」。

  • S3Config-將「Path」的值設定為時間序列檔案的 S3 位置,並將「RoleArn」設定為可存取 S3 儲存貯體的角色。

  • Schema-定義 item_id 的「AttributeNameAttributeType」和「」以及時間序列中的維度。

下列範例顯示使用「item_id」和「儲存位置」維度組合的時間序列結構描述。

{ "ExplainabilityName" : [unique_name], "ResourceArn" : [forecast_arn], "ExplainabilityConfig" { "TimeSeriesGranularity": "SPECIFIC", "TimePointGranularity": "SPECIFIC" }, "DataSource": { "S3Config": { "Path": [S3_path_to_file], "RoleArn":[role-to-access-s3-bucket] } }, "Schema": { "Attributes": [ { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "store_location", "AttributeType": "string" } ] }, "StartDateTime": "string", "EndDateTime": "string", }

可視化 Forecast 解釋

在主控台中建立「Forecast 解釋」時,「Forecast」會自動將您的影響分數視覺化。使用CreateExplainability作業建立 Forecast 解釋時,請設定EnableVisualization為「true」,並在主控台內視覺化該解釋資源的影響分數。

影響分數視覺效果會從「無法解釋」建立之日起持續 30 天。若要重新建立視覺效果,請建立新的「Forecast 解釋性」。

匯出 Forecast 解釋

注意

匯出檔案可以直接從資料集匯入傳回資訊。如果匯入的資料含公式或命令,這會使檔案受到 CSV 注入的攻擊。因此,匯出的檔案可能會提示安全性警告。若要避免惡意活動,請在讀取匯出的檔案時停用連結和巨集。

Forecast 可讓您將影響分數的 CSV 檔案匯出至 S3 位置。

匯出包含指定時間序列的原始和標準化影響評分,以及所有指定時間序列和所有指定時間點的標準化彙總影響評分。如果您未指定時間點,則已彙總預測時程中所有時間點的影響分數。

您可以使用亞馬遜 Forecast 軟體開發套件 (SDK) 和 Amazon Forecast 主控台匯出預測解釋性。

Console

若要匯出「Forecast 解釋性」

  1. 登錄到 AWS Management Console 並打開 Amazon Forecast 控制台 https://console.aws.amazon.com/forecast/.

  2. 資料集群組中,選擇您的資料集群組。

  3. 在導覽窗格中,選擇 Insights

  4. 選擇您的無法解釋。

  5. 從「動作」下拉清單中選擇「匯出」。

  6. 在「匯出名稱」欄位中,為「Forecast 解釋性」匯出提供唯一的名稱。

  7. S3 無法解釋匯出位置欄位中,輸入要匯出 CSV 檔案的 S3 位置。

  8. IAM 角色欄位中,選擇可存取所選 S3 位置的角色。

  9. 選擇「建立無法解釋匯出」。

SDK

若要匯出「Forecast 解釋性」

使用CreateExplainability匯出操作,指定Destination物件中的 S3 位置和 IAM 角色,以ExplainabilityArn及和ExplainabilityExportName

例如:

{ "Destination": { "S3Config": { "Path": "s3://bucket/example-path/", "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole" } }, "ExplainabilityArn": "arn:aws:forecast:region:explainability/example", "ExplainabilityName": "Explainability-export-name", }

限制和最佳做法

使用「Forecast 解釋」時,請考慮下列限制和最佳作法。

  • Forecast 解釋」僅適用於某些自產生的「Forecast」 AutoPredictor -您無法針對從舊有預測器 (AutoML 或手動選取) 產生的「預測」啟用「預測解釋性」。請參閱升級到 AutoPredictor

  • 非所有模型均提供 Forecast 解釋功能-ARIMA(AutoRegressive 整合移動平均線)、ETS(指數平滑狀態空間模型)和 NPTS(非參數式時間序列)模型不包含外部時間序列資料。因此,即使您包含額外的資料集,這些模型也不會建立無法解釋的報表。

  • 無法解釋需要屬性-您的預測值必須至少包含下列其中一項:相關時間序列、項目中繼資料、假日或天氣指數。

  • 影響評分為零表示沒有影響-如果一或多個屬性的影響評分為零,則這些屬性對預測值沒有重大影響。如果只 AutoPredictor 使用非 ML 演算法,或者您未提供相關的時間序列或項目中繼資料,則分數也可以為零。

  • 指定最多 50 個時間序列-每個「Forecast 解釋」最多可指定 50 個時間序列。

  • 指定最多 500 個時間點-每個「Forecast 解釋」最多可指定 500 個連續時間點。

  • 「Fo@@ recast」也會計算某些彙總的影響評分-「Forecast」也會針對指定的時間序列和時間點提供彙總影響評分。

  • 針對單一「Forecast」建立多重「Forecast 解釋性」資源-如果您想要 50 個以上的時間序列或 500 個時間點的影響評分,則可以分批建立「解釋性」資源,以跨越較大的範圍。

  • 比較不同「Forecast 解釋性」資源中的原始影響評分-可以直接比較相同預測中「可解釋性」資源的原始影響評分。

  • 「Fo@@ recast 解釋」視覺效果可在建立後 30 天內使用-若要在 30 天後檢視視覺效果,請使用相同的組態建立新的「Forecast 解釋性」。