1
resposta

Acurácia fixa mas diferente do resultado da aula

executei o código conforme a aula, inclusive acrescentando o "random_state=SEED" pra fixar a acurácia:

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(random_state=SEED)
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)

mas o resultado deu 47,41%, e não 52,59%, como na aula

1 resposta

Oi, Antoniel! Tudo bem?

Peço desculpas pela demora em te responder.

O modelo LinearSVC() pode encontrar resultados diferentes caso um random_state não seja especificado. Como neste contexto você utilizou random_state=SEED e na videoaula este procedimento não foi realizado, as acurácias obtidas por você e pelo instrutor podem variar!

Para obter o valor de 52,59%, que representa nossa linha de base (baseline), é necessário desenvolver o seguinte trecho de código:

import numpy as np
previsoes_de_base = np.ones(540)
acuracia = accuracy_score(teste_y, previsoes_de_base) * 100
print("A acurácia do algoritmo de baseline foi %.2f%%" % acuracia)

A partir disso, obteremos o valor de 52,59%, o qual será utilizado para avaliar o nosso resultado anterior (47,41%) e, consequentemente, identificar pontos de melhoria para elevar a nossa acurácia.

Antoniel, espero ter ajudado. Fico à disposição caso novas dúvidas surjam.

Um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!