2
respostas

Number of interations

Nesse terceiro projeto de machine learning apareceu uma mensagem: C:\lib\site-packages\sklearn\svm_base.py:947: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations. "the number of iterations.", ConvergenceWarning) já vi outros tópicos sobre o mesmo erro, mas mesmo assim não consegui entender ao certo esse problema, vi o caso que aumentou a quantidade de interações, resolve o erro, mas pode também mascarar o problema, então não sei bem o que fazer. O meu código está assim: 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)

taxa_de_acerto = accuracy_score(teste_y, previsoes) * 100 print("A taxa de acerto foi %.2f%%" % taxa_de_acerto)

2 respostas

Coloquei assim, mas continua aparecendo a mensagem de numero de interações

modelo = LinearSVC(max_iter=1000)

Olá Natasha.

Sua preocupação se isso afetaria de alguma manira o resultado é pertinente, mas fiz alguns testes e vi que o resultado do professor teve a acurácia de 57.88% enquanto a nossa, que aparece o ConvergenceWarning , ficou em 58.00%. Então afirmo que esse Warning que é apenas um aviso, não afeta seu aprendizado de nenhuma maneira.

Quanto ao Warning, ele não apareceu na aula e aprece agora porque a biblioteca sklearn sofreu modificações desde que o curso foi gravado. Essa modificação foi incluir uma aviso caso o modelo não convergisse.

modelo = LinearSVC(max_iter=1000)

Aumentar o numero de interações talvez possa fazer que o modelo convirja, porem não consegui encontrar um numero de interações que faça isso no nosso exemplo e no caso aumentar o máximo para 1000 é ineficaz já que pela documentação esse numero já é por padrão 1000.

Espero ter ajudado, mas se tiver alguma duvida mais profunda em relação a esse conceito fique a vontade em perguntar.

Bons Estudos.