Skip to content

Commit 814b68e

Browse files
committed
modAL.acquisition added, PI acquisition function implemented
1 parent 8b699c7 commit 814b68e

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

modAL/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from .models import ActiveLearner, Committee, CommitteeRegressor
2+
from .acquisition import PI, max_PI
23
from .uncertainty import classifier_uncertainty, classifier_margin, classifier_entropy, \
34
uncertainty_sampling, margin_sampling, entropy_sampling
45
from .disagreement import vote_entropy, consensus_entropy, KL_max_disagreement, \
@@ -7,6 +8,7 @@
78

89
__all__ = [
910
'ActiveLearner', 'Committee', 'CommitteeRegressor',
11+
'PI', 'max_PI',
1012
'classifier_uncertainty', 'classifier_margin', 'classifier_entropy',
1113
'uncertainty_sampling', 'margin_sampling', 'entropy_sampling',
1214
'vote_entropy', 'consensus_entropy', 'KL_max_disagreement',

modAL/acquisition.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
"""
2+
=====================
3+
Acquisition functions
4+
=====================
5+
-----------------------------------------------
6+
Acquisition functions for Bayesian optimization
7+
-----------------------------------------------
8+
"""
9+
10+
from scipy.special import ndtr
11+
from modAL.utils.selection import multi_argmax
12+
13+
14+
def PI(optimizer, X, tradeoff=0):
15+
mean, std = optimizer.predict(X, return_std=True)
16+
return ndtr((mean - optimizer.max_val - tradeoff)/std)
17+
18+
19+
def max_PI(optimizer, X, tradeoff=0, n_instances=1):
20+
pi = PI(optimizer, X, tradeoff=tradeoff)
21+
query_idx = multi_argmax(pi, n_instances=n_instances)
22+
23+
return query_idx, X[query_idx]

modAL/bayesopt.py

Whitespace-only changes.

0 commit comments

Comments
 (0)