def test_attribute_infogain(self): dict_list = excel_to_dictionary('Commute.xlsx') out = attribute_infogain(dict_list, 'Commute') result = { 'Accident': 6.454231881430971, 'Hour': 9.989838434720816, 'Stall': 3.23495093255735, 'Weather': 1.6993443792675045, } self.assertEquals(out, result)
def try_naive_bayes(filename, target_attribute, case): data = excel_to_dictionary(filename) model = Naive_Bayes(data, target_attribute) values = set(d[target_attribute] for d in data) likelihoods = defaultdict(list) for v in values: likelihood = 1 for attr in case: likelihood *= model[(attr, case[attr], v)] likelihoods[v] = likelihood result = max(likelihoods.items(), key=lambda x: likelihoods[x[0]]) return (result[0], result[1] / float(sum(likelihoods.values())) * 100)
def try_naive_bayes(filename,target_attribute,case): data = excel_to_dictionary(filename) model = Naive_Bayes(data,target_attribute) values = set(d[target_attribute] for d in data) likelihoods = defaultdict(list) for v in values: likelihood = 1 for attr in case: likelihood *= model[(attr,case[attr],v)] likelihoods[v] =likelihood result = max(likelihoods.items(),key = lambda x : likelihoods[x[0]]) return (result[0],result[1]/float(sum(likelihoods.values()))*100)
def decision_tree(filename, target_attribute): data = excel_to_dictionary(filename) attributes = data[0].keys() attributes.remove(target_attribute) return decision_tree_helper(data, target_attribute, attributes)