以預設參數做資料合成
產生隱私強化合成資料的最簡單方式。 目前的預設合成方式採用 SDV 的 Gaussian Copula。
請點擊下方按鈕在 Colab 中執行範例:
Loader:
load_csv:
filepath: benchmark/adult-income.csv
Preprocessor:
default:
method: 'default'
Synthesizer:
default:
method: 'default'
Postprocessor:
default:
method: 'default'
Reporter:
output:
method: 'save_data'
source: 'Synthesizer'
YAML 參數詳細說明
Loader(資料載入模組)
load_csv
: 實驗名稱,可自由命名,建議使用描述性名稱filepath
: 資料檔案路徑- 值:
benchmark/adult-income.csv
- 說明:指定要載入的資料檔案位置。此處示範使用
adult-income.csv
檔案,您可以替換成自己的 CSV 檔案路徑 - 支援格式:CSV、TSV、Excel(需安裝 openpyxl)、OpenDocument
- 可使用相對路徑或絕對路徑
- 也支援
benchmark://
協議來自動下載標準資料集
- 值:
建議使用 Schema:
為了確保資料載入的正確性和一致性,強烈建議使用 schema
參數預先定義資料結構。Schema 可以明確指定每個欄位的資料型別(數值、類別、日期時間等)、約束條件,以及欄位之間的關係。
使用 schema 的範例:
Loader:
load_csv:
filepath: benchmark/adult-income.csv
schema: benchmark/adult-income_schema.yaml
關於 Schema 的詳細說明,請參考 Schema YAML 文檔。
Preprocessor(資料前處理模組)
default
: 實驗名稱,可自由命名method
: 前處理方法- 值:
default
- 說明:使用預設的處理序列,包含以下步驟:
- missing(缺失值處理):數值型欄位使用平均值填補,類別型欄位刪除
- outlier(離群值處理):數值型使用 IQR 方法處理
- encoder(編碼):類別型欄位使用均勻編碼(
encoder_uniform
) - scaler(縮放):數值型欄位使用標準化(
scaler_standard
)
- 值:
Synthesizer(合成資料產生模組)
default
: 實驗名稱,可自由命名method
: 合成方法- 值:
default
- 說明:使用預設的合成方法,即 SDV Gaussian Copula
- Gaussian Copula 是一種基於統計的合成方法,能夠捕捉變數間的相關性
- 值:
Postprocessor(資料後處理模組)
default
: 實驗名稱,可自由命名method
: 後處理方法- 值:
default
- 說明:自動執行 Preprocessor 的逆向操作,將合成資料還原為原始格式
- 還原順序(與前處理相反):
- inverse scaler:反縮放,將標準化的數值還原
- inverse encoder:反編碼,將編碼後的類別變數還原
- restore missing:依原始比例重新插入缺失值
- 注意:離群值處理(outlier)無法還原
- 值:
Reporter(結果輸出模組)
output
: 實驗名稱,可自由命名method
: 報告方法- 值:
save_data
- 說明:將指定模組的輸出資料儲存為 CSV 檔案
- 值:
source
: 資料來源模組- 值:
Synthesizer
- 說明:儲存來自 Synthesizer 模組產生的合成資料
- 也可選擇其他模組,如
Preprocessor
、Postprocessor
等 - 輸出檔案預設命名格式:
petsard_Synthesizer[output].csv
- 值:
執行流程說明
- Loader 載入
adult-income.csv
資料 - Preprocessor 進行前處理(填補缺失值、處理離群值、編碼、縮放)
- Synthesizer 使用 Gaussian Copula 方法產生合成資料
- Postprocessor 將合成資料還原為原始格式(反縮放、反編碼、插入缺失值)
- Reporter 將最終的合成資料儲存為 CSV 檔案
進階使用
若需要自訂參數,可參考以下文檔: