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