def produceScore(self, analyzedDatasets: Dataset, currentScore: ClassificationResults, completeDataset: Dataset, oa: OperatorAssignment, candidateAttribute) -> float: if candidateAttribute != None: analyzedDatasets.addColumn(candidateAttribute) evaluationResults = self.runClassifier( Properties.classifier, analyzedDatasets.generateSet(True), analyzedDatasets.generateSet(False)) # in order to deal with multi-class datasets we calculate an average of all AUC scores (we may need to make this weighted) auc = self.CalculateAUC(evaluationResults, analyzedDatasets, evaluationResults.actualPred) if currentScore != None: return auc - currentScore.getAuc() else: return auc
def GenerateAndAddColumnToDataset(self, dataset: Dataset, oaList: List[OperatorAssignment]): for oa in oaList: ci = OperatorsAssignmentsManager.generateColumn(dataset, oa, True) dataset.addColumn(ci)