2
respostas

ConvergenceWarning - Porque o do professor não da esse erro?

quando rodo o código onde separamos treino e teste utilizando a função train_test_split nao sai o valor igual do professor e o random ainda permanece ativado mesmo que eu tenha colocado o SEED certinho.

em outras publicações aqui no forúm foi dito que é só um aviso etc. Mas, porque então o professor não tem esse erro? e porque a gente não consegue parar o efeito randômico? porque toda vez que rodar esse codigo sai um valor diferente como se eu nao tivesse definido o radom_state.

Mas o do professor sai certinho, por quê?

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, 
                                                        stratify = y, 
                                                        test_size = 0.25)

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)

output:

Treinaremos com 1617 elementos e testaremos com 540 elementos
A acurácia foi 69.07%
/usr/local/lib/python3.6/dist-packages/sklearn/svm/_base.py:947: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
  "the number of iterations.", ConvergenceWarning)
2 respostas

Na verdade acabei de ver que a dúvida é respondida na aula 04.

Olá Afonso, tudo bem com você??

É possível também verificar aqui nesse POST mais detalhado =)

Caso tenha alguma dúvida é só retornar aqui! Blz?

Bons estudos!