3
respostas

Taxa de acerto baixa

Vamos ver se deu um pouco certo. No entanto, a taxa de acerto foi baixa, e não entendi o que foi que eu errei aqui.
#features [1 sim, 0 não]
#acao
#comedia
#fantasia
#longo
#curto
#mediano
#europeu
#asiatico
#americano

filme1 = [1, 1, 1]
filme2 = [1, 1, 1]
filme3 = [0, 0, 0]
filme4 = [1, 0, 1]

#1 -> gostou, 0 -> nao gostou

treino_x = [filme1, filme2, filme3, filme4]
treino_y = [1, 1, 0, 0]

from sklearn.svm import LinearSVC

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


filme_misterioso = [1, 0, 1]
modelo.predict([filme_misterioso])


array([1, 0, 1])


import numpy as np
acertos = (previsoes == np.array(teste_y)).sum()
print(f"núemero de acertos: {acertos}")


núemero de acertos: 1


corretos = (previsoes == teste_y).sum()
total = len(testes)
taxa_de_acertos = corretos / total
print("taxa de acerto: %.2f" % (taxa_de_acertos * 100))


taxa de acerto: 33.33


3 respostas

Oi Roberta, tudo bem?

Para entender melhor o problema que está se referindo, peço que me compartilhe o link da aula que está tentando reproduzir os passos.

Fico no aguardo!

Refiz a atividade criando outra realidade, e agora consegui que o treinamento retornasse 100% de aproveitamento. Talvez eu tenha me perdido na quantidade de variáveis que criei da primeira vez?

features [1 sim, 0 nao ]

morango

maça

banana

filho1 = [1, 0, 1]
filho2 = [0, 1, 0]
filho3 = [1, 1, 1]
filha1 = [1, 0, 0]
filha2 = [0, 0, 1]
filha3 = [0, 0, 0]

classes = 1 -> filho, 0 -> filha

classes = [1, 1, 1, 0, 0, 0] # Assuming order: filho1, filho2, filho3, filha1, filha2, filha3
dados = [filho1, filho2, filho3, filha1, filha2, filha3]

from sklearn.svm import LinearSVC
modelo = LinearSVC()

modelo.fit(dados, classes)

resultado = modelo.predict([[1, 1, 1]])
print(resultado)
[1]

filho_misterioso = [0, 0, 1]
modelo.predict([filho_misterioso])
array([0])

misterio1 = [1, 1, 1]
misterio2 = [0, 0, 0]
misterio3 = [1, 0, 0]

testes = [misterio1, misterio2, misterio3]
previsoes = modelo.predict(testes)
testes_classes = [1, 0, 0]

previsoes == testes_classes

array([ True, True, True])

corretos = (previsoes == testes_classes).sum()
total = len(testes)
taxa_de_acerto = corretos / total

print("taxa_de_acerto %.2f" % (taxa_de_acerto * 100))
taxa_de_acerto 100.00

print(f"Acurácia de {taxa_de_acerto * 100:.2f}%")
#
Acurácia de 100.00%