首页 > 解决方案 > KNN AUC 分数列表对象错误的循环

问题描述

我正在编写一个循环来计算 K 值在 1 到 30 之间的 KNN AUC 分数,但是我在这一行“auc.append(auc(false_positive_rate, true_positive_rate)) 上得到了“TypeError: 'list' object is not callable” ”。当代码在循环之外并且 K 设置为 1 时,它可以工作。

auc = []
for k in range(1, 31, 1):
    knn = KNeighborsClassifier(n_neighbors = k)
    knn.fit(X_train, y_train)
    adaboost = AdaBoostClassifier(n_estimators = 100, base_estimator = None, random_state = 1)
    adaboost.fit(X_train, y_train)
    y_pred = adaboost.predict(X_test)
    false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_pred, pos_label = 1)
    auc.append(auc(false_positive_rate, true_positive_rate))


TypeError                                 Traceback (most recent call last)
<ipython-input-54-95504c894a2f> in <module>()
      7     y_pred = adaboost.predict(X_test)
      8     false_positive_rate, true_positive_rate, thresholds = roc_curve(y_test, y_pred, pos_label = 1)
----> 9     auc.append(auc(false_positive_rate, true_positive_rate))

TypeError: 'list' object is not callable

标签: pythonmachine-learningknnauc

解决方案


解决了,我在列表中使用了与 auc 库中的函数相同的名称。更改列表变量名称修复了它。


推荐阅读