Локальная переменная, указанная перед ошибкой присваивания в Python - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь найти смещение данных. Но я поражен следующей ошибкой. Можете ли вы помочь мне?

Мой код

total_bias = 0
error = [0]*len(y_train)
def bias(train_label , predicted_label):
    for i in range(0,len(train_label)):
        error[i] = train_label[i]-predicted_label[i]
        total_bias+=error[i]
        print("Bias of the data is\n",total_bias)

Итак, когда я вызвал эту функцию, я получил ошибку следующим образом

UnboundLocalError                         Traceback (most recent call last)
<ipython-input-116-bd69154610c9> in <module>
----> 1 bias(y_train , y_train_pred )

<ipython-input-115-9efa292295d6> in bias(train_label, predicted_label)
  4     for i in range(0,len(train_label)):
  5         error[i] = train_label[i]-predicted_label[i]
  ----> 6         total_bias+=error[i]
  7         print("Bias of the data is\n",total_bias)

 UnboundLocalError: local variable 'total_bias' referenced before assignment

1 Ответ

0 голосов
/ 10 февраля 2020

Просто измените свой код таким образом, чтобы total_bias выглядел как global

total_bias = 0
error = [0]*len(y_train)

def bias(train_label, predicted_label):
    global total_bias #has to be defined global, otherwise it is seen as in a local scope
    for i in range(0,len(train_label)):
        error[i] = train_label[i] - predicted_label[i]
        total_bias += error[i]
        print("Bias of the Data is \n",total_bias)
...