1
resposta

'ConvergenceWarning' no algoritmo da Aula 3

Estou recebendo o seguinte warning:

/usr/local/lib/python3.6/dist-packages/sklearn/svm/base.py:931: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations. "the number of iterations.", ConvergenceWarning)

quando faço essa linha de código no COLAB, idêntica à mostrada no vídeo referente à aula 3:

from sklearn.model_selection import train_test_split from sklearn.svm import LinearSVC from sklearn.metrics import accuracy_score

SEED = 20

treino_x, teste_x, treino_y, teste_y = train_test_split(x, y, random_state = SEED, test_size = 0.25, stratify = y) print("Treinaremos com %d elementos e testaremos com %d elementos" % (len(treino_x), len(teste_x)))

modelo = LinearSVC() modelo.fit(treino_x, treino_y) previsoes = modelo.predict(teste_x)

acuracia = accuracy_score(teste_y, previsoes) * 100 print("A acurácia foi %.2f%%" % acuracia)

O que significa?

1 resposta

Oi Rafael, tudo bom?

Falamos que um algoritmo de Machine learnig converge quando ele consegue reconhecer alguns padrões dentro dos dados que passamos para ele e com isso ele consegue ter uma melhor taxa de acerto.

Se um algoritmo tem dificuldades para achar esses padrões dentro dos dados ele precisa de mais tempo para treinar e convergir.

Acontece que o LinearSVC do Sklearn possui um número máximo de iterações possíveis e quando o algoritmo não converge até esse número de iterações a lib lança esse aviso.

Vc pode tentar mudar o parâmetro max_iter e colocar um número maior de iterações. Acho que o default desse parâmetro é 1000.