Invalid syntax in python 2 creating a simple Naive Bayes classifie
创建简单的朴素贝叶斯分类器的最后一步是编写一个类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | class Classifier: def __init__(self, *nbclasses): self.nbclasses = nbclasses def prob(self, *d, best_only=True): nbclasses = self.nbclasses probability_list = [] for nbclass in nbclasses: ftrs = nbclass.features prob = 1 for i in range(len(ftrs)): prob *= nbclass.probability_value_given_feature(d[i], ftrs[i]) probability_list.append( (prob, nbclass.name) ) prob_values = [f[0] for f in probability_list] prob_sum = sum(prob_values) if prob_sum==0: number_classes = len(self.nbclasses) pl = [] for prob_element in probability_list: pl.append( ((1 / number_classes), prob_element[1])) probability_list = pl else: probability_list = [ (p[0] / prob_sum, p[1]) for p in probability_list] if best_only: return max(probability_list) else: return probability_list |
// File"", line 7
def prob(self, *d, best_only=True):
^
SyntaxError: invalid syntax
型
翻转
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | class Classifier: def __init__(self, *nbclasses): self.nbclasses = nbclasses def prob(self, best_only=True, *d): nbclasses = self.nbclasses probability_list = [] for nbclass in nbclasses: ftrs = nbclass.features prob = 1 for i in range(len(ftrs)): prob *= nbclass.probability_value_given_feature(d[i], ftrs[i]) probability_list.append( (prob, nbclass.name) ) prob_values = [f[0] for f in probability_list] prob_sum = sum(prob_values) if prob_sum==0: number_classes = len(self.nbclasses) pl = [] for prob_element in probability_list: pl.append( ((1 / number_classes), prob_element[1])) probability_list = pl else: probability_list = [ (p[0] / prob_sum, p[1]) for p in probability_list] if best_only: return max(probability_list) else: return probability_list |