Python 如何修复以下错误?属性错误:';ID3DecisionTreeClassifer&x27;对象没有属性'_ID3DecisionTreeClassifer_uu-fit';

Python 如何修复以下错误?属性错误:';ID3DecisionTreeClassifer&x27;对象没有属性'_ID3DecisionTreeClassifer_uu-fit';,python,jupyter-notebook,data-science,Python,Jupyter Notebook,Data Science,我收到以下错误:AttributeError:'ID3DDecisionTreeClassifer'对象没有属性'\u ID3DDecisionTreeClassifer\u' 我的成绩一定很好 0 一, 0 0 一, 一, 一, 但是我得到了一个错误。我正在尝试构建一个决策树API。我已经实现了一个_遍历方法,它将递归遍历make_树函数生成的决策树字典 class ID3DecisionTreeClassifer(object): def __init__(self):

我收到以下错误:AttributeError:'ID3DDecisionTreeClassifer'对象没有属性'\u ID3DDecisionTreeClassifer\u'

我的成绩一定很好 0

一,

0

0

一,

一,

一,

但是我得到了一个错误。我正在尝试构建一个决策树API。我已经实现了一个_遍历方法,它将递归遍历make_树函数生成的决策树字典

class ID3DecisionTreeClassifer(object): 
   
def __init__(self):
       
pass
   
def fit(self, X, y):
    
self.splits_ = make_tree(X,y)# YOUR CODE to generate the decision tree 
dictionary 
 
def _majority_vote(self, label_array):
  
counter = counter(lable_array)
   
 max_vote = max(counter.values())
    
counter = {v:k for k, v in counter.items()}
   
 return counter[max_vote]# YOUR CODE
  
def _traverse(self, x, d):
    
if isinstance(d, np.ndarray):
        
return d 
     
for key in d:
      
  name, value = key.split(' = ') 
       
 feature_idx = int(name.split('_')[-1])
       
 value = int(value)
         
 if x[feature_idx] == value:
           
 return self._traverse(x, d[key]) 
   
def predict(self, x):
       
label_array = self._traverse(x,self.__fit) # YOUR CODE to get class 

labels from the 

target node 
       
return self._majority_vote(label_array)#YOUR CODE to predict the class 
label via 
 majority voting
                #from label_array

 # DO NOT EDIT OR DELETE BELOW CELL

 tree = ID3DecisionTreeClassifer() 

 tree.fit(X, y)

 print(tree.predict(np.array([0, 0]))) 

 print(tree.predict(np.array([0, 1]))) 

 print(tree.predict(np.array([1, 0]))) 

 print(tree.predict(np.array([1, 0]))) 

 print(tree.predict(np.array([1, 1]))) 

 print(tree.predict(np.array([2, 0]))) 

 print(tree.predict(np.array([2, 1])))

这看起来像是一个缩进问题。当我以适当的缩进运行代码时,我可以调用fit()函数

class ID3DecisionTreeClassifer(object): 
   
def __init__(self):
       
pass
   
def fit(self, X, y):
    
self.splits_ = make_tree(X,y)# YOUR CODE to generate the decision tree 
dictionary 
 
def _majority_vote(self, label_array):
  
counter = counter(lable_array)
   
 max_vote = max(counter.values())
    
counter = {v:k for k, v in counter.items()}
   
 return counter[max_vote]# YOUR CODE
  
def _traverse(self, x, d):
    
if isinstance(d, np.ndarray):
        
return d 
     
for key in d:
      
  name, value = key.split(' = ') 
       
 feature_idx = int(name.split('_')[-1])
       
 value = int(value)
         
 if x[feature_idx] == value:
           
 return self._traverse(x, d[key]) 
   
def predict(self, x):
       
label_array = self._traverse(x,self.__fit) # YOUR CODE to get class 

labels from the 

target node 
       
return self._majority_vote(label_array)#YOUR CODE to predict the class 
label via 
 majority voting
                #from label_array

 # DO NOT EDIT OR DELETE BELOW CELL

 tree = ID3DecisionTreeClassifer() 

 tree.fit(X, y)

 print(tree.predict(np.array([0, 0]))) 

 print(tree.predict(np.array([0, 1]))) 

 print(tree.predict(np.array([1, 0]))) 

 print(tree.predict(np.array([1, 0]))) 

 print(tree.predict(np.array([1, 1]))) 

 print(tree.predict(np.array([2, 0]))) 

 print(tree.predict(np.array([2, 1])))
由于fit()是ID3DecisionTreeClassifer类的函数,缩进应该如下所示:

class ID3DecisionTreeClassifer(object): 
   
 def __init__(self):
       
  pass
   
 def fit(self, X, y):
    
  self.splits_ = make_tree(X,y)
 
 def _majority_vote(self, label_array):
 ...

我的缩进id在代码中是正确的。你能得到以下结果吗?1 0 0 1 1 1