fit()
訓練合成模型。
語法
def fit(data: pd.DataFrame)
參數
- data : pd.DataFrame, required
- 用於訓練的資料集
- 必須是 pandas DataFrame
- 不能為 None
返回值
無。更新合成器的內部狀態。
說明
fit()
方法用於訓練合成模型。此方法會使用提供的資料集來學習資料的統計特性和模式,以便後續生成合成資料。
此方法執行以下操作:
- 驗證輸入資料的有效性
- 將資料傳遞給底層合成器實作
- 執行模型訓練過程
- 儲存訓練後的模型狀態
訓練過程的具體細節取決於所選的合成方法:
- GaussianCopula:學習邊際分布和相關結構
- CTGAN/CopulaGAN:訓練生成對抗網路
- TVAE:訓練變分自編碼器
- 自訂方法:執行自訂的訓練邏輯
範例
from petsard import Synthesizer, Metadater
import pandas as pd
# 準備訓練資料
df = pd.read_csv('training_data.csv')
metadata = Metadater.from_data(df)
# 初始化並訓練合成器
synthesizer = Synthesizer(method='default')
synthesizer.create(metadata=metadata)
synthesizer.fit(data=df)
# 訓練完成後可以生成合成資料
synthetic_data = synthesizer.sample()
注意事項
- 必須在呼叫
fit()
之前先呼叫create()
- 訓練時間取決於資料大小、複雜度和選擇的合成方法
- 深度學習方法(CTGAN、TVAE)通常需要較長的訓練時間
- 訓練過程可能消耗大量記憶體,特別是對於大型資料集
- 某些合成器(如 CTGAN)可能需要 GPU 加速以提升效能
- 訓練完成後,模型狀態會儲存在合成器內部
- 可以多次呼叫
sample()
而無需重新訓練 - 如需重新訓練,請再次呼叫
fit()
方法