def noiserank(input_dict): """Widget NoiseRank :param input_dict: :return: """ allnoise = {} data = u.convert_dataset_from_scikit_to_orange(input_dict['data']) for item in input_dict['noise']: det_by = item['name'] for i in item['inds']: if not allnoise.has_key(i): allnoise[i] = {} allnoise[i]['id'] = i allnoise[i]['class'] = data[int(i)].getclass().value allnoise[i]['by'] = [] allnoise[i]['by'].append(det_by) print allnoise[i]['by'] from operator import itemgetter outallnoise = sorted(allnoise.values(), key=itemgetter('id')) outallnoise.sort(compareNoisyExamples) output_dict = {} output_dict['allnoise'] = outallnoise output_dict['selection'] = {} return output_dict
def classification_filter(input_dict, widget): import cf_noise_detection.noiseAlgorithms4lib as nalg output_dict = {} # output_dict['noise_dict']= noiseAlgorithms4lib.cf_decide(input_dict, widget) orange_dataset = u.convert_dataset_from_scikit_to_orange(input_dict['data']) output_dict['noise_dict']= nalg.cf_decide(input_dict['learner'], orange_dataset, int(input_dict['k_folds']), widget=None) return output_dict
def saturation_filter(input_dict, widget): import cf_noise_detection.noiseAlgorithms4lib as nalg orange_dataset = u.convert_dataset_from_scikit_to_orange(input_dict['data']) if not(input_dict['satur_type'] in ['normal', 'prune']): raise Exception("Only 'normal' or 'prune' allowed for 'satur_type'.") output_dict = {} output_dict['noise_dict']= nalg.saturation_type(orange_dataset, input_dict['satur_type'], widget) return output_dict
def classification_filter(input_dict, widget): import cf_noise_detection.noiseAlgorithms4lib as nalg output_dict = {} # output_dict['noise_dict']= noiseAlgorithms4lib.cf_decide(input_dict, widget) orange_dataset = u.convert_dataset_from_scikit_to_orange( input_dict['data']) output_dict['noise_dict'] = nalg.cf_decide(input_dict['learner'], orange_dataset, int(input_dict['k_folds']), widget=None) return output_dict
def saturation_filter(input_dict, widget): import cf_noise_detection.noiseAlgorithms4lib as nalg orange_dataset = u.convert_dataset_from_scikit_to_orange( input_dict['data']) if not (input_dict['satur_type'] in ['normal', 'prune']): raise Exception("Only 'normal' or 'prune' allowed for 'satur_type'.") output_dict = {} output_dict['noise_dict'] = nalg.saturation_type(orange_dataset, input_dict['satur_type'], widget) return output_dict
def add_class_noise(input_dict): """Widget Add Class Noise """ data_scikit = input_dict['data'] if not(d.is_target_nominal(data_scikit)): raise Exception("Widget Add Class Noise accepts only datasets with nominal class!") data = u.convert_dataset_from_scikit_to_orange(data_scikit) import cf_noise_detection.noiseAlgorithms4lib as nalg noise_indices, orange_data = nalg.add_class_noise(data, input_dict['noise_level'], input_dict['rnd_seed']) data = u.convert_dataset_from_orange_to_scikit(orange_data) output_dict = {'noise_inds':noise_indices, 'noisy_data': data} return output_dict
def noiserank_select(postdata,input_dict, output_dict): try: output_dict['indices']= outselection = [int(i) for i in postdata['selected']] # data = input_dict['data'] data = u.convert_dataset_from_scikit_to_orange(input_dict['data']) selection = [0]*len(data) for i in outselection: selection[i] = 1 outdata = data.select(selection, 1) data_scikit = u.convert_dataset_from_orange_to_scikit(outdata) output_dict['selection'] = data_scikit except KeyError: output_dict['selection'] = None return output_dict
def add_class_noise(input_dict): """Widget Add Class Noise """ data_scikit = input_dict['data'] if not (d.is_target_nominal(data_scikit)): raise Exception( "Widget Add Class Noise accepts only datasets with nominal class!") data = u.convert_dataset_from_scikit_to_orange(data_scikit) import cf_noise_detection.noiseAlgorithms4lib as nalg noise_indices, orange_data = nalg.add_class_noise( data, input_dict['noise_level'], input_dict['rnd_seed']) data = u.convert_dataset_from_orange_to_scikit(orange_data) output_dict = {'noise_inds': noise_indices, 'noisy_data': data} return output_dict
def noiserank_select(postdata, input_dict, output_dict): try: output_dict['indices'] = outselection = [ int(i) for i in postdata['selected'] ] # data = input_dict['data'] data = u.convert_dataset_from_scikit_to_orange(input_dict['data']) selection = [0] * len(data) for i in outselection: selection[i] = 1 outdata = data.select(selection, 1) data_scikit = u.convert_dataset_from_orange_to_scikit(outdata) output_dict['selection'] = data_scikit except KeyError: output_dict['selection'] = None return output_dict