1
resposta

esta ignorando o seed do random state

eu gostaria de saber o que estou fazendo de errado para ele nao considerar o seed do random state

import pandas as pd
import seaborn as sns
import numpy as np





uri = "https://gist.githubusercontent.com/guilhermesilveira/1b7d5475863c15f484ac495bd70975cf/raw/16aff7a0aee67e7c100a2a48b676a2d2d142f646/projects.csv"
dados = pd.read_csv(uri)

e_renomear = {
        "expected_hours" : "horas_esperadas",
        "price" : "preco",
        "unfinished" : "nao_finalizado"
        }

troca = {
        0 : 1,
        1 : 0 }

dados = dados.rename(columns = e_renomear)

dados['finalizado'] = dados.nao_finalizado.map(troca)

#sns.relplot(x="horas_esperadas", y="preco", hue="finalizado",col="finalizado", data=dados)

x = dados[["horas_esperadas", "preco"]]
y = dados["finalizado"]

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

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)))

one = np.ones(len(teste_x))

acuracia_dummy = accuracy_score(teste_y, one) * 100


modelo = LinearSVC()
modelo.fit(treino_x, treino_y)

previsoes = modelo.predict(teste_x)

acuracia = accuracy_score(teste_y, previsoes) * 100

print("a acuracia foi de %.2f%%" % acuracia_dummy)

print("a acuracia foi de %.2f%%" % acuracia)
1 resposta

Olá Jardel,

Se você quiser evitar a variação da acurácia do modelo, além de aplicar o random_state ao train_test_split você também tem que aplicar ao LinearSVC, pois internamente também é utilizado um valor aleatório no LinearSVC para misturar/embaralhar os dados.

modelo = LinearSVC(random_state=SEED)