-
Notifications
You must be signed in to change notification settings - Fork 2
/
evalexperiment.py
39 lines (29 loc) · 1.24 KB
/
evalexperiment.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from skmultiflow.data.file_stream import FileStream
from skmultiflow.data import SEAGenerator
from skmultiflow.trees import HoeffdingTree
from skmultiflow.evaluation import EvaluatePrequential
from Goowe import Goowe
# Prepare the data stream
stream = FileStream('./datasets/sea_stream.csv')
stream.prepare_for_use()
num_features = stream.n_features
num_targets = stream.n_targets
num_classes = stream.n_classes
N_MAX_CLASSIFIERS = 15
CHUNK_SIZE = 500 # User-specified
WINDOW_SIZE = 100 # User-specified
# Initialize the ensemble
goowe = Goowe(n_max_components=N_MAX_CLASSIFIERS,
chunk_size=CHUNK_SIZE,
window_size=WINDOW_SIZE)
goowe.prepare_post_analysis_req(num_features, num_targets, num_classes)
ht = HoeffdingTree()
evaluator = EvaluatePrequential(max_samples=100000,
max_time=1000,
pretrain_size=CHUNK_SIZE,
batch_size=1,
n_wait=CHUNK_SIZE,
show_plot=True,
output_file="out.txt",
metrics=['accuracy', 'kappa'])
evaluator.evaluate(stream=stream, model=[goowe, ht], model_names=['GOOWE', 'HT'])