環境準備:
pip install capymoa
?
使用 HoeffdingTree 對流數據做在線分類:
from capymoa.streams import FileStream
from capymoa.learners import HoeffdingTreeClassifier
from capymoa.evaluation import ProgressiveEvaluator# 1. 構造流:假設 data/stream.csv 第一列為標簽,后續列為特征
stream = FileStream(path="data/stream.csv", target_idx=0)# 2. 選擇學習器
learner = HoeffdingTreeClassifier()# 3. 評估器:預訓練 200 條樣本,然后每 500 條測試一次
evaluator = ProgressiveEvaluator(pretrain_size=200, test_size=500)# 4. 在線學習—評估循環
for X, y in stream: # 在測試集上評估y_pred = learner.predict(X)evaluator.add_result(y_true=y, y_pred=y_pred)# 以當前樣本更新模型learner.partial_fit(X, y, classes=stream.target_values)# 5. 輸出最終性能
print(f"在線準確率:{evaluator.get_accuracy():.4f}")
-
深度學習流:可通過
capymoa.learners.PyTorchOnlineLearner
將 PyTorch 模型接入流學習,結合自定義nn.Module
實現 Transformer、CNN 等在線更新。 -
概念漂移檢測:結合 CapyMOA 的漂移檢測模塊(如 ADWIN),自動檢測并重置模型,以應對數據分布變化。