All Projects → blablahaha → concept-drift

blablahaha / concept-drift

Licence: other
Algorithms for detecting changes from a data stream.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to concept-drift

tornado
The Tornado 🌪️ framework, designed and implemented for adaptive online learning and data stream mining in Python.
Stars: ✭ 110 (+15.79%)
Mutual labels:  adwin, concept-drift
codes-for-moa
My Java codes for the MOA framework. It includes the implementations of FHDDM, FHDDMS, and MDDMs.
Stars: ✭ 21 (-77.89%)
Mutual labels:  concept-drift
River
🌊 Online machine learning in Python
Stars: ✭ 2,980 (+3036.84%)
Mutual labels:  concept-drift
AdaptiveRandomForest
Repository for the AdaptiveRandomForest algorithm implemented in MOA 2016-04
Stars: ✭ 28 (-70.53%)
Mutual labels:  concept-drift
MemStream
MemStream: Memory-Based Streaming Anomaly Detection
Stars: ✭ 58 (-38.95%)
Mutual labels:  concept-drift
website-change-monitor
Monitor a website and get email and Slack notifications when specific changes are detected
Stars: ✭ 104 (+9.47%)
Mutual labels:  change-detector

AdWin: ADaptive sliding WINdow algorithm

Based on paper:

Bifet and R. Gavalda. 2007. Learning from Time-Changing Data with Adaptive Windowing

class concept_drift.adwin.AdWin(
    delta=0.002, max_buckets=5, min_clock=32, min_win_len=10, min_sub_win_len=5
)
Parameters
delta Confidence value
max_buckets Max number of buckets within one bucket row
min_clock Min number of new data for starting to reduce window and detect change
min_window_len Min window length for starting to reduce window and detect change
min_sub_window_len Min sub-window length, which is split from whole window

Methods

set_input(value)

Set input value to the drift detector - ADWIN.

Type Input - Output
Parameters value: Input value
Return Boolean: Whether has drift

Example

from concept_drift.adwin import AdWin

adwin = AdWin()
for i in range(1000):
    if adwin.set_input(i):
        print("Here is a drift")

Page-Hinckley Test

Based on Chapter 5.1:

Gama, J., Sebastião, R., & Rodrigues, P. P. (2013). On evaluating stream learning algorithms

class concept_drift.page_hinkley.PageHinkley(
    delta_=0.005, lambda_=50, alpha_=1 - 0.0001
)
Parameters
delta_ Magnitude of changes that are allowed
lambda_ Difference threshold
alpha_ Adaption variable for lambda adjustment

Methods

set_input(value)

Set input value to the drift detector - PageHinkley.

Type Input - Output
Parameters value: Input value
Return Boolean: Whether has drift

Test

Used the elecNormNew dataset;
Used GaussianNB as based classification;
Used accuracy_score as input date for change detector;
Used the prequential evaluation;

GaussianNB:
Mean acc within the window 1000: 0.7289912189511405

Page-Hinkley:
Drift detection: 8
Mean acc within the window 1000: 0.7342849306584686

AdWin:
Drift detection: 139
Mean acc within the window 1000: 0.7496421003738032
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].