Skip to main content
QUICK REVIEW

[論文レビュー] stream-learn -- open-source Python library for difficult data stream batch analysis

Paweł Ksieniewicz, Paweł Zyblewski|arXiv (Cornell University)|Jan 29, 2020
Data Stream Mining Techniques被引用数 10
ひとこと要約

stream-learn は、コンcept drift と動的クラス不均衡を伴うデータストリームのバッチ処理を目的としたオープンソースの Python ライブラリであり、合成ストリーム生成、scikit-learn 互換の推定器、Test-Then-Train 法および Prequential 法による効率的な評価を提供する。再現可能で高性能な実験を、再発生および非再発生のドリフトタイプと動的不均衡比をサポートする不均衡で変化するデータストリーム上で可能にする。

ABSTRACT

stream-learn is a Python package compatible with scikit-learn and developed for the drifting and imbalanced data stream analysis. Its main component is a stream generator, which allows to produce a synthetic data stream that may incorporate each of the three main concept drift types (i.e. sudden, gradual and incremental drift) in their recurring or non-recurring versions. The package allows conducting experiments following established evaluation methodologies (i.e. Test-Then-Train and Prequential). In addition, estimators adapted for data stream classification have been implemented, including both simple classifiers and state-of-art chunk-based and online classifier ensembles. To improve computational efficiency, package utilises its own implementations of prediction metrics for imbalanced binary classification tasks.

研究の動機と目的

  • バッチ処理におけるコンcept drift と動的クラス不均衡を伴う、オープンソースで scikit-learn 互換のツールの不足に対処すること。
  • 突然、徐々、段階的なドリフトを含む制御可能で再現可能な特性を持つ合成データストリームを生成できるようにすること。
  • Test-Then-Train 法や Prequential 法といった確立された手法を、バッチ指向のフレームワーク内で評価に使用できることをサポートすること。
  • 不均衡なバイナリ分類のための効率的でカスタム実装された指標を提供し、計算パフォーマンスを向上させること。
  • データストリーム分類に特化した最先端の分類器アンサンブル(例:SEA、OnlineBagging、OOB、UOB、WAE)を提供すること。

提案手法

  • ライブラリは、Madelon モデルに基づく StreamGenerator クラスを実装し、ドリフトおよび不均衡特性を設定可能な合成データストリームの作成を可能にする。
  • 3 種類のコンセプトドリフト(突然、徐々、段階的)をサポートし、それぞれが再発生または非再発生のバリエーションを備える。
  • クラス不均衡は 'weights' パラメータによってモデル化され、サイクル数、間隔、範囲パラメータを用いて、静的比または時間経過に伴う動的変動を定義可能である。
  • 不均衡分類のためのバッチ最適化された指標実装が含まれており、scikit-learn や imbalanced-learn の実装と比較して効率性が向上している。
  • Test-Then-Train 法と Prequential 法の2つの評価器が用意されており、両者ともバッチ処理に適応され、再現可能な実験を可能にする。
  • scikit-learn API 互換性を持つ、シンプルな分類器(例:Accumulated Samples Classifier)および高度なアンサンブル手法(例:SEA、OnlineBagging、OOB、UOB、WAE)を統合している。
Figure 1 : Overall schema of the software architecture.
Figure 1 : Overall schema of the software architecture.

実験結果

リサーチクエスチョン

  • RQ1制御可能で再現可能な特性(突然、徐々、段階的ドリフトを含む)を持つ合成データストリームを、Python で効率的に生成し、再現性のある研究に活用できるか?
  • RQ2Python におけるオンライン処理と比較して、バッチ処理がデータストリーム処理の計算効率をどの程度向上させるか?
  • RQ3最先端の分類器アンサンブルは、コンセプトドリフトと動的不均衡が重複する条件下で、どのように性能を発揮するか?
  • RQ4不均衡分類のためのカスタム最適化指標は、ストリーム評価パイプラインのパフォーマンスと速度を向上させられるか?
  • RQ5Test-Then-Train 法や Prequential 法といった確立された評価手法を用いた再現性のある実験を、stream-learn ライブラリがどの程度効果的にサポートできるか?

主な発見

  • stream-learn は、突然、徐々、段階的ドリフトの複数のタイプを再発生および非再発生の両方でサポートし、ドリフトダイナミクスに対する細かい制御を可能にする。
  • 静的および時間経過に伴い変化するクラス不均衡比の両方をサポートしており、後者はサイクル、間隔、範囲のタプルベースのパラメータ化によって実装されている。
  • 不均衡バイナリ分類のための効率的でカスタム実装された予測指標を提供し、標準の scikit-learn や imbalanced-learn 実装と比較して計算オーバーヘッドを低減している。
  • UOB、OOB、WAE といった高度なオンラインアンサンブル手法の安定的でオープンソースの実装が、以前は Python で一貫した API を備えていなかったが、本ライブラリで実現されている。
  • scikit-learn との統合により、既存の機械学習ワークフローとのシームレスな互換性が確保され、stream-learn の推定器を即座に統合して使用可能になる。
  • 本ライブラリは、アクティブラーニング、インクリメンタルラーニングにおける前処理、不均衡データストリーム向けの動的アンサンブル選択といった複数の研究プロジェクトで実際に成功裏に使用されている。
Figure 2 : Accuracy score and precision achieved by a Gaussian Naive Bayes classifier over the run of the synthetic data stream generated by the StreamGenerator class.
Figure 2 : Accuracy score and precision achieved by a Gaussian Naive Bayes classifier over the run of the synthetic data stream generated by the StreamGenerator class.

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。