numpy.float64' 对象在 auc(recall, precision) 中不可调用

Cag*_*nar 2 python machine-learning object

['numpy.float64' object is not callable]当我运行时程序抛出错误:

auc(recall, precision)
Run Code Online (Sandbox Code Playgroud)

直到今天,我才能成功运行它。我很感激这方面的任何帮助,谢谢!我也用 () 尝试过,但没有用。

fit_logreg = LogisticRegression(class_weight='balanced', verbose=0)

fit_logreg.set_params(penalty = 'l2',
                  C = 0.00001, 
                  n_jobs=-1,
                  verbose=0
                  )
###########################################################
###4#TRAIN THE FITTING MODEL ON THE TRAINING DATASET###
###########################################################
# fit a model
fit_logreg.fit(trainX, trainy)

# score the test dataset

predictions_logreg = fit_logreg.predict(testX)
#predictions_logreg = predictions_logreg.values.ravel() 

###########################################################
###5#OOB ERROR AND CLASSIFICATION SUCCESS METRICS###
###########################################################

##ROC AUC SCORE
roc_auc_score(testy, predictions_logreg,average='macro')

##RECALL-PRECISION CURVE

# predict probabilities
probs = fit_logreg.predict_proba(testX)
# keep probabilities for the positive outcome only
probs = probs[:, 1]
# predict class values
yhat = predictions_logreg
# calculate precision-recall curve
precision, recall, thresholds = precision_recall_curve(testy, probs)
# calculate F1 score
f1 = f1_score(testy, yhat)

# calculate precision-recall AUC
auc(recall, precision)
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

TypeErrorTraceback (most recent call last)
<ipython-input-1-74f87a22f33a> in <module>()
     68 # calculate precision-recall AUC
     69 #auc = auc(recall, precision)
---> 70 auc(recall, precision)

TypeError: 'numpy.float64' object is not callable
Run Code Online (Sandbox Code Playgroud)

fog*_*rit 9

当您运行以下行时(在回溯中注释掉):

auc = auc(recall, precision)
Run Code Online (Sandbox Code Playgroud)

您用aucnumpy 对象替换了命名空间中的函数。auc再次调用抛出错误。

  • 通常,您可以避免任何将重新分配已使用的变量的语句。这样,命名空间中的所有内容都有一个不变的定义。 (2认同)