Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

taxa de acertos incerta

eu n sei se tem algo errado com o codigo ou se o meu prosesador esta trabalhando mais e piora o desempenho mas o codigo é

import pandas as pd
from sklearn.naive_bayes import MultinomialNB
from collections import Counter
dados = pd.read_csv('busca.csv')
A = ['home','bus','logado']
x = dados[A]
y = dados['comprou']

X_df = pd.get_dummies(x)
Y_df = y
X = X_df.values
Y = Y_df.values
pdt = 0.9
dollynho_seu_amiginho = MultinomialNB()
mde = int(pdt*len(Y))
mdt = len(Y) - mde

mm = X[:mde]
mt = Y[:mde]
nn = X[-mdt:]
nt = Y[-mdt:]

dollynho_seu_amiginho.fit(mm,mt)

bu = dollynho_seu_amiginho.predict(nn)
c1 = max(Counter(nt).values())

c3 = 100.0*float(c1)/len(nt)
r = bu == nt

acertos  = [d for d in r if d == 0]
total_de_acertos = len(acertos)
total_de_elementos = len(nn)

taxa_de_acerto = 100.0 * total_de_acertos / total_de_elementos

print(f'us control is {c3} for the result of {taxa_de_acerto}')
print(total_de_elementos)

a resposta é

us control is 82.0 for the result of 18.0
100

agora o resultado era para ser (ou no professor ou o meu desempenho normal) era para ser

us control is 82.0 for the result of 82.0
100

n sei se eu errei o codigo ou se foi desempenho então pf me esclaresam

6 respostas

Hum, você copiou e colou o código, copiou manualmente digitando ou copiou e alterou parte do código?

Digrei mas n testei o copi-cola. Mas na hora de copiar e colar a lista eu copiei no ex do prof. A lista com os sins e nãos (busca). Mas vou testar no final de semana algo. Aguarde

Blz, qualquer novidade tamo aí.

o do prof deu erro

import pandas as pd
from collections import Counter

df = pd.read_csv('busca.csv')
X_df = df[['home', 'bus', 'logado']]
Y_df = df['comprou']

Xdummies_df = pd.get_dummies(X_df).astype(int)
Ydummies_df = Y_df

X = Xdummies_df.values
Y = Ydummies_df.values

porcentagem_treino = 0.9

tamanho_de_treino = porcentagem_treino * len(Y)
tamanho_de_teste = len(Y) - tamanho_de_treino

treino_dados = X[:tamanho_de_treino]
treino_marcacoes = Y[:tamanho_de_treino]

teste_dados = X[-tamanho_de_teste:]
teste_marcacoes = Y[-tamanho_de_teste:]

from sklearn.naive_bayes import MultinomialNB
modelo = MultinomialNB()
modelo.fit(treino_dados, treino_marcacoes)

resultado = modelo.predict(teste_dados)

acertos = resultado == teste_marcacoes

total_de_acertos = sum(acertos)
total_de_elementos = len(teste_dados)

taxa_de_acerto = 100.0 * total_de_acertos / total_de_elementos

print("Taxa de acerto do algoritmo: %f" % taxa_de_acerto)
print(total_de_elementos)

acerto_base = max(Counter(teste_marcacoes).itervalues())
taxa_de_acerto_base = 100.0 * acerto_base / len(teste_marcacoes)
print("Taxa de acerto base: %f" % taxa_de_acerto_base)

eis o erro

Traceback (most recent call last):
   line 19, in <module>
    treino_dados = X[:tamanho_de_treino]
TypeError: slice indices must be integers or None or have an __index__ method
solução!

treino_dados = X[:int(tamanho_de_treino)]

Tenta fazer assim nessa linha que dá erro pra converter float para integer

resultado do codigo do professor

Taxa de acerto do algoritmo: 82.000000
100
Taxa de acerto base: 82.000000