环境准备:
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),自动检测并重置模型,以应对数据分布变化。