def select_optimal_features_set_using_univariate_feature_selection( self, classes): print "SELECTING OPTIMAL FEATURES SET USING RECURSIVE FEATURE ELIMINATION" print reduce( lambda result, class_name: update_and_return_json( result, class_name, adjust_optimal_features_using_recursive_feature_elimination( class_name, self.mongoCollection.get_all_records())), classes, {})
def select_optimal_features_set_using_univariate_feature_selection(self, classes): print "SELECTING OPTIMAL FEATURES SET USING RECURSIVE FEATURE ELIMINATION" print reduce(lambda result, class_name: update_and_return_json(result, class_name, adjust_optimal_features_using_recursive_feature_elimination(class_name, self.mongoCollection.get_all_records())), classes, {})
def benchmark(self, classes, classification_method, fields): all_records = self.mongoCollection.get_all_records() if all_records < 2: return print reduce( lambda res, class_name: update_and_return_json( res, class_name, self.create_accuracy_ranking(all_records, fields, class_name, classification_method)), classes, {})
def benchmark(self, classes, classification_method, fields): all_records = self.mongoCollection.get_all_records() if all_records < 2: return print reduce( lambda res, class_name: update_and_return_json( res, class_name, self.create_accuracy_ranking(all_records, fields, class_name, classification_method) ), classes, {}, )
def create_accuracy_ranking(self, records, features_to_benchmark, class_name, delivered_classification_method): def increment_if_successful_classified(score, record, feature): if record['classes'][ class_name] == delivered_classification_method( record, class_name, feature, [x for x in records if x != record]): score += 1 return score return reduce( lambda result, feature: update_and_return_json( result, feature, reduce( lambda score, record: increment_if_successful_classified( score, record, feature), records, 0) / (len(records) - 1)), features_to_benchmark, {})
def create_accuracy_ranking(self, records, features_to_benchmark, class_name, delivered_classification_method): def increment_if_successful_classified(score, record, feature): if record["classes"][class_name] == delivered_classification_method( record, class_name, feature, [x for x in records if x != record] ): score += 1 return score return reduce( lambda result, feature: update_and_return_json( result, feature, reduce(lambda score, record: increment_if_successful_classified(score, record, feature), records, 0) / (len(records) - 1), ), features_to_benchmark, {}, )