作者:手机用户2502907451 | 来源:互联网 | 2022-12-02 18:28
我试图通过10倍交叉验证找到加性平滑的最佳平滑参数.我写了以下代码:
alphas = list(np.arange(0.0001, 1.5000, 0.0001))
#empty list that stores cv scores
cv_scores = []
#perform k fold cross validation
for alpha in alphas:
naive_bayes = MultinomialNB(alpha=alpha)
scores = cross_val_score(naive_bayes, x_train_counts, y_train, cv=10, scoring='accuracy')
cv_scores.append(scores.mean())
#changing to misclassification error
MSE = [1 - x for x in cv_scores]
#determining best alpha
optimal_alpha = alphas[MSE.index(min(MSE))]
我收到以下错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in ()
18
19 #determining best alpha
---> 20 optimal_alpha = alphas[MSE.index(min(MSE))]
21 print('\nThe optimal value of alpha is %f' % optimal_alpha)
22
TypeError: 'int' object is not callable
我为arange()和K(交叉验证)的不同参数值运行了相同的代码.这是我第一次遇到这个错误.为什么?
1> Eduardo Soar..:
代码中的其他地方你有一些看起来像这样的东西:
min = 10
然后你写这个:
optimal_alpha = alphas[MSE.index(min(MSE))]
因此,min()
被解释为函数调用.
完全正确,除了索引是列表的功能,因此您没有命名空间冲突.它必须是分钟.