-
Notifications
You must be signed in to change notification settings - Fork 142
/
Copy pathmlc-classify.py
41 lines (33 loc) · 1.37 KB
/
mlc-classify.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
40
41
# This file is badly structured to make it possible to embed parts of it
# into documentation.
import Orange
emotions = Orange.data.Table('emotions')
learner = Orange.multilabel.BRkNNLearner(k=5)
classifier = learner(emotions)
print classifier(emotions[0])
learner = Orange.multilabel.MLkNNLearner(k=5)
classifier = learner(emotions)
print classifier(emotions[0])
learner = Orange.multilabel.BinaryRelevanceLearner()
classifier = learner(emotions)
print classifier(emotions[0])
learner = Orange.multilabel.LabelPowersetLearner()
classifier = learner(emotions)
print classifier(emotions[0])
def test_mlc(data, learners):
for l in learners:
c = l(data)
for e in data[:20]:
labels, probs = c(e, Orange.classification.Classifier.GetBoth)
print [val.value for val in labels], "[%s]" % ", ".join("(%.4f, %.4f)" % (p['0'], p['1']) for p in probs)
print
learners = [Orange.multilabel.BinaryRelevanceLearner(),
Orange.multilabel.LabelPowersetLearner(),
Orange.multilabel.MLkNNLearner(k=1),
Orange.multilabel.MLkNNLearner(k=5),
Orange.multilabel.BRkNNLearner(k=1),
Orange.multilabel.BRkNNLearner(k=5),
Orange.multilabel.BRkNNLearner(k=5,ext='a'),
Orange.multilabel.BRkNNLearner(k=5,ext='b')
]
test_mlc(Orange.data.Table("emotions.tab"), learners)