import pandas as pd
uri = "https://gist.githubusercontent.com/guilhermesilveira/1b7d5475863c15f484ac495bd70975cf/raw/16aff7a0aee67e7c100a2a48b676a2d2d142f646/projects.csv"
dados = pd.read_csv(uri)
mapa = {"unfinished" : "inacabado",
"expected_hours" : "horas_esperadas",
"price" : "preco"}
dados = dados.rename(columns=mapa)
troca = {0 : 1,
1 : 0}
dados['finalizado'] = dados.inacabado.map(troca)
x = dados[['horas_esperadas', 'preco']]
y = dados['finalizado']
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 de %.2f%%" % acuracia)
Após rodar o código acima tive o seguinte retorno:
Treinaremos com 1617 elementos e testaremos com 540 elementos
A acurácia foi de 57.41%
/usr/local/lib/python3.7/dist-packages/sklearn/svm/_base.py:947: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
"the number of iterations.", ConvergenceWarning)
Mesmo tendo aplicado o stratify continuo tendo resultados dinâmicos, mudando a cada vez que executo o treino e o teste. Queria saber se alguém pode me ajudar com o motivo disto estar acontecendo.