2
respostas

ConvergenceWarning

Pessoal, estou com esse problema e não consigo resolver, alguém tem alguma dica?

SEED = 20 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(random_state = SEED) modelo.fit(treino_x, treino_y)

/usr/local/lib/python3.7/dist-packages/sklearn/svm/_base.py:1208: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.

ConvergenceWarning,

LinearSVC(random_state=20)

2 respostas

Olá Guilherme, tudo bem? Espero que sim!

Esse aviso está dizendo que o método LinearSVC não conseguiu convergir e pode não encontrar um bom resultado decorrente disso.

Isso acontece devido ao número máximo de iterações que serão executadas pelo algoritmo. O padrão da função é executar 1000 iterações mas você pode alterar para um valor maio para tentar resolver o problema.

No momento de instanciar o modelo, utilize o parâmetro max_iter e coloque um valor maior e teste para ver se o modelo convergiu. No exemplo abaixo, coloquei o parâmetro com um valor de 2000 iterações máximas.

modelo = LinearSVC(max_iter = 2000, random_state = SEED) modelo.fit(treino_x, treino_y)

Caso o valor de 2000 não seja suficiente, você pode aumentar ainda mais. Mas tenha em mente que ao aumentar o número de iterações, o tempo de execução irá aumentar, necessitando de mais processamento computacional.

Sinta-se a vontade para mudar outros parâmetros também da função, conferindo a documentação.

Bons estudos!

Olá, João.

Eu fiz o que você indicou, porém o problema também aparece pra mim.

Eu até cheguei a colocar a variável max_inter em 100000 e mesmo trazendo uma maior acurácia o erro mencionado acima continua vindo

modelo = LinearSVC(max_iter = 10000, random_state = SEED)
modelo.fit(treino_x,treino_y)
previsoes = modelo.predict(teste_x)

/usr/local/lib/python3.7/dist-packages/sklearn/svm/_base.py:1208: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations. ConvergenceWarning,