Olá,
estou com o seguinte erro na hora de chamar minha função onde retorna as 3 métricas (Silhouette, Davies-Bouldin e Calinski-Harabasz):
TypeError: 'numpy.float64' object is not callable
Chamando as métricas fora da função elas funcionam perfeitamente.
Por exemplo, antes de definir a função, chamei o silhouette dessa forma:
from sklearn.metrics import silhouette_score
silhouette_score = silhouette_score(valores, labels, metric='euclidean')
print(silhouette_score)
saída: 0.364439277430815
Definindo a função:
def KMeans_with_metrics(qtd_clusters, valores):
kmeans = KMeans(n_clusters = qtd_clusters, n_init = 10, max_iter = 300)
kmeans.fit_predict(valores)
labels = kmeans.labels_
s = silhouette_score(valores, labels, metric='euclidean')
db = davies_bouldin_score(valores, labels)
ch = calinski_harabasz_score(valores, labels)
return s, db, ch
Chamada:
silhouete, davies_bouldin, calinski_harabasz = KMeans_with_metrics(3, valores)
Temos o erro:
<ipython-input-103-2fd2b99512cd> in KMeans_with_metrics(qtd_clusters, valores)
6 labels = kmeans.labels_
7
----> 8 s = silhouette_score(valores, labels, metric='euclidean')
9 db = davies_bouldin_score(valores, labels)
10 ch = calinski_harabasz_score(valores, labels)
**TypeError: 'numpy.float64' object is not callable**
Segue o link do meu notebook no Colab: https://colab.research.google.com/drive/1agyRyb7rGv5LIvBjcxX9zD5nuQCm5nfY?usp=sharing
Exportei o .py para meu PC e rodei no terminal também, mas com o mesmo erro. Talvez seja alguma coisa boba, mas não estou conseguindo ver o que é.
Obs: O SciKit Learn está na versão 0.24.2.
Muito obrigado :)