一旦您確定反事實對數配對 (CLP) 是適合您使用情境的技術,即可按照下列步驟套用
- 使用原始資料和反事實資料建立
CounterfactualPackedInputs
的執行個體。 - 衡量翻轉率和翻轉次數,以判斷是否需要介入。
- 如果需要介入,請傳遞原始輸入資料、反事實資料、原始模型和反事實損失至反事實模型。
- 藉由衡量翻轉率和翻轉次數,評估 CLP 的影響。
如要查看將 CLP 套用至 Keras 模型的範例,請參閱「搭配 Keras 使用反事實對數配對」教學課程。
建立 CounterfactualPackedInputs
的執行個體
如要建立反事實資料集,請先判斷您要評估的詞彙和特徵,這些詞彙和特徵在移除或取代後,可能會改變模型的預測。
瞭解要評估的詞彙和特徵後,您需要建立 CounterfactualPackedInputs
的執行個體,其中包含原始輸入和反事實資料。原始輸入應為您用來訓練 Keras 模型的資料集。反事實資料具有 original_x
值、counterfactual_x
值和 counterfactual_sample_weight
。反事實值應與原始值幾乎相同,差異在於一或多個敏感屬性已移除或取代。反事實資料集的品質非常重要,因為它用於配對原始值和反事實值之間的損失函數,目標是確保模型的預測在敏感屬性不同時不會改變。
如需瞭解如何開發這個反事實資料集的詳細資訊,請參閱建立自訂反事實資料集筆記本。
衡量翻轉次數和翻轉率
「翻轉」是指當範例中參照的敏感屬性變更時,分類器給出不同決策的情況。它捕捉到分類器在身分屬性存在、不存在或變更時,變更其預測的情況。評估分類器的實際值 (分數) 時,應使用更連續的指標。
翻轉次數
翻轉次數衡量的是,如果給定範例中的身分詞彙變更,分類器給出不同決策的次數。
- 整體翻轉次數:預測從肯定變為否定,反之亦然的總翻轉次數。
- 肯定變為否定預測翻轉次數:預測標籤從肯定變為否定的翻轉次數。
- 否定變為肯定預測翻轉次數:預測標籤從否定變為肯定的翻轉次數。
翻轉率
翻轉率衡量的是,如果給定範例中的身分詞彙變更,分類器給出不同決策的機率。
- 整體翻轉率:總翻轉次數除以範例總數
- 肯定變為否定預測翻轉率:肯定變為否定翻轉次數除以反事實資料集中的肯定範例數
- 否定變為肯定預測翻轉率:否定變為肯定翻轉次數除以反事實資料集中的否定範例數
使用公平性指標計算翻轉率和翻轉次數後,您可以判斷分類器是否根據資料中的敏感屬性做出不同的預測。您可以使用範例計數和信賴區間,判斷您是否有足夠的資料可套用 CLP,並從翻轉率得出結論。高翻轉率和翻轉次數表示這種行為正在發生,可用於判斷 CLP 是否適合您的使用情境。此決策專屬於您的模型,並取決於多項因素,例如可能對最終使用者造成的損害,以及模型使用的產品。
將反事實對數配對套用至您的 Keras 模型
如要使用 CLP,您需要想要修復的原始 Keras 模型、原始訓練資料集和反事實資料集。判斷應將哪個counterfactual loss
套用於對數配對。有了這些,您可以使用所需的反事實損失函數和原始模型中的損失函數,建構反事實模型。
套用 CLP 後,您應計算翻轉率和翻轉次數,以及其他指標 (例如整體準確度) 的任何變更,以衡量套用這項技術後產生的改善。