Changeset 9448:d3150d5fa7ff in orange
- Timestamp:
- 07/04/11 16:00:56 (23 months ago)
- Branch:
- default
- Convert:
- 1835405fa86ba1135bf7763c85cf33c95e4064c2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
orange/OrangeWidgets/Multilabel/OWTestLearners.py
r9447 r9448 16 16 warnings.filterwarnings("ignore", "'id' is not a builtin attribute", 17 17 orange.AttributeWarning) 18 import Orange.multilabel.label as label 19 import Orange 18 20 19 21 ############################################################################## … … 54 56 ('Recall', 'Recall', 'recall(cm)', False, True), 55 57 ('Brier score', 'Brier', 'BrierScore(res)', True), 56 ('Matthews correlation coefficient', 'MCC', 'MCC(cm)', False, True)]] 58 ('Hamming Loss', 'HammingLoss', 'hamming_loss(res)', True), 59 ('Matthews correlation coefficient', 'MCC', 'MCC(cm)', False, True), 60 ]] 57 61 58 62 rStatistics = [Score(*s) for s in [\ … … 271 275 self.learners[id].results = None 272 276 return 277 print self.data.domain 273 278 # test which learners can accept the given data set 274 279 # e.g., regressions can't deal with classification data … … 276 281 n = len(self.data.domain.attributes)*2 277 282 indices = orange.MakeRandomIndices2(p0=min(n, len(self.data)), stratified=orange.MakeRandomIndices2.StratifiedIfPossible) 278 new = self.data.selectref(indices(self.data)) 283 print indices 284 285 new = self.data 286 # new = self.data.selectref(indices(self.data)) 279 287 # new = self.data.selectref([1]*min(n, len(self.data)) + 280 288 # [0]*(len(self.data) - min(n, len(self.data)))) 289 290 for e in new: 291 print e 292 293 multilabel_flag = label.is_multilabel(self.data) 294 281 295 self.warning(0) 282 296 for l in [self.learners[id] for id in ids]: … … 286 300 try: 287 301 predictor = learner(new) 288 if predictor(new[0]).varType == new.domain.classVar.varType: 302 if multilabel_flag == 0: #single label 303 if predictor(new[0]).varType == new.domain.classVar.varType: 304 learners.append(learner) 305 else: 306 l.scores = [] 307 else: #multi-label 289 308 learners.append(learner) 290 else:291 l.scores = []292 309 except Exception, ex: 293 310 self.warning(0, "Learner %s ends with exception: %s" % (l.name, str(ex))) … … 357 374 358 375 def recomputeCM(self): 376 print "recomputeCM" 359 377 if not self.results: 360 378 return … … 372 390 def setData(self, data): 373 391 """handle input train data set""" 392 if not data: 393 return 374 394 self.closeContext() 375 self.data = self.isDataWithClass(data, checkMissing=True) and data or None 395 396 multilabel_flag = label.is_multilabel(data) 397 if multilabel_flag == 0: 398 self.data = self.isDataWithClass(data, checkMissing=True) and data or None 399 else: 400 self.data = data 401 376 402 self.fillClassCombo() 403 377 404 if not self.data: 378 405 # data was removed, remove the scores … … 383 410 else: 384 411 # new data has arrived 385 self.data = orange.Filter_hasClassValue(self.data) 412 if multilabel_flag == 0: #single label 413 self.data = orange.Filter_hasClassValue(self.data) 414 386 415 self.statLayout.setCurrentWidget(self.cbox if self.isclassification() else self.rbox) 387 416 # if self.isclassification(): … … 398 427 self.openContext("", data) 399 428 self.paintscores() 400 429 401 430 def setTestData(self, data): 402 431 """handle test data set""" … … 436 465 def setLearner(self, learner, id=None): 437 466 """add/remove a learner""" 467 print "setLearner" 438 468 if learner: # a new or updated learner 439 469 if id in self.learners: # updated learner … … 450 480 if id in self.learners: 451 481 res = self.learners[id].results 452 if res and res.number OfLearners > 1:482 if res and res.number_of_learners > 1: 453 483 indx = [l.id for l in res.learners].index(id) 454 484 res.remove(indx) … … 481 511 # and remove this set from the list of result sets 482 512 rlist = dict([(l.results,1) for l in self.learners.values() if l.scores]).keys() 483 rlen = [r.number OfLearners for r in rlist]513 rlen = [r.number_of_learners for r in rlist] 484 514 results = rlist.pop(rlen.index(max(rlen))) 485 515 … … 548 578 a.exec_() 549 579 550 data1 = orange.ExampleTable(r'../../doc/datasets/ voting')551 data2 = orange.ExampleTable(r'../../ golf')552 datar = orange.ExampleTable(r'../../ auto-mpg')553 data3 = orange.ExampleTable(r'../../ sailing-big')554 data4 = orange.ExampleTable(r'../../ sailing-test')555 556 l1 = orange.MajorityLearner(); l1.name = '1 - Majority'580 data1 = orange.ExampleTable(r'../../doc/datasets/multidata') 581 data2 = orange.ExampleTable(r'../../doc/datasets/glass') 582 datar = orange.ExampleTable(r'../../doc/datasets/adult') 583 data3 = orange.ExampleTable(r'../../doc/datasets/balance-scale') 584 data4 = orange.ExampleTable(r'../../doc/datasets/bridges') 585 586 l1 = Orange.multilabel.BinaryRelevanceLearner(); l1.name = '1 - BR' 557 587 558 588 l2 = orange.BayesLearner() … … 570 600 r5 = r.LinearRegressionLearner(name="0 - lin reg") 571 601 572 testcase = 4602 testcase = 3 573 603 574 604 if testcase == 0: # 1(UPD), 3, 4 … … 597 627 ow.setLearner(None, 1) 598 628 if testcase == 3: # regression first 599 ow.setData(data r)600 ow.setLearner( r5, 5)629 ow.setData(data1) 630 ow.setLearner(l1, 1) 601 631 if testcase == 4: # separate train and test data 602 632 ow.setData(data3) 603 ow.setTestData(data 4)604 ow.setLearner(l2, 5)633 ow.setTestData(data1) 634 ow.setLearner(l2,1) 605 635 ow.setTestData(None) 606 636
Note: See TracChangeset
for help on using the changeset viewer.
