2
respostas

Níveis de acurácias diferentes

Boa noite. Ao executar a aula 03, seção 02 ("Testando em duas dimensões"), executei train_test_Split utilizando o parâmetro random_state. No entanto, ainda assim obtive valores diferentes de acurácia em cada iteração.

Utilizando o random_state igual a um valor fixo (nesse caso usei o valor 20), a acurácia obtida não deveria ser sempre a mesma? (considerando uma mesma base de dados)

Ex:

import pandas as pd 
from sklearn.model_selection import train_test_split
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score 

#Projetos finalizados: 1
#Projetos não finalizados: 0

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

mapa = {
    "unfinished":"nao_finalizados",
    "expected_hours":"horas_esperadas",
    "price":"preco"
}

troca = {
    0 : 1,
    1 : 0
}

dados = dados.rename(columns = mapa)
dados['finalizados'] = dados.nao_finalizados.map(troca)

SEED = 20 
x = dados[['horas_esperadas', 'preco']]
y = dados['finalizados']

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 %.2f%%" % acuracia)

Atenciosamente,

2 respostas

Respondendo o item anterior:

No código acima o random_state = SEED está sendo utilizado apenas no train_test_split(), porém a aleatoridade ainda está sendo mantida no LinearSVC. Para solucionar esse problema insira o random_state = SEED como parâmetro do LinearSVC().

Fonte: Aula 04. Support Vector Machine e a não linearidade / Seção 02 - Estimadores não lineares.

Oii Leonardo, tudo bem?

Isso ai mesmo!! Que bom que conseguiu solucionar e ainda colocou aqui pra gente, pode ajudar muitos alunos e alunas nessa dúvida.

Sempre que precisar, pode nos chamar!

Bons estudos ^^