Ola, executei os codigos da aula 3, tudo funcionou como esperado, inclusive o resultado da precisão do algoritmo, mas ao analisar os dados que o modelo previu percebe-se que ele previu '1' (comprou) para todas as linhas inclusive se fizer o teste com os dados de treino.
Gostaria de saber se seria isso msm
def calcula_precisao(marcacoes_testes, resultados):
diferencas = marcacoes_testes - resultados
acertos = 0
for d in diferencas:
if d == 0:
acertos = acertos + 1
pass
pass
total_de_elementos = len(marcacoes_testes)
precisao = (acertos / total_de_elementos) * 100.0
return precisao
pass
import pandas as pd
df = pd.read_csv('busca.csv')
X_df = df[['home', 'busca', 'logado']]
Y_df = df['comprou']
Xdummies_df = pd.get_dummies(X_df)
Ydummies_df = Y_df
X = Xdummies_df.values
Y = Ydummies_df.values
porcentagem_treino = 0.9
tamanho_de_treino = int(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:]
analise = df[-tamanho_de_teste:]
from sklearn.naive_bayes import MultinomialNB
modelo = MultinomialNB()
modelo.fit(treino_dados, treino_marcacoes)
previsao = modelo.predict(teste_dados)
analise['Previsao'] = previsao
analise['Correto'] = analise['comprou'] == analise['Previsao']
analise = analise.sort_values(['Correto','comprou','busca'])
precisao = calcula_precisao(teste_marcacoes, previsao)
print(analise)
print(precisao)
print(previsao)
Resultado do cod:
home busca logado comprou Previsao Correto
932 0 algoritmos 0 0 1 False
939 1 algoritmos 0 0 1 False
981 0 algoritmos 0 0 1 False
992 1 algoritmos 0 0 1 False
915 0 ruby 0 0 1 False
919 1 ruby 0 0 1 False
930 1 ruby 0 0 1 False
931 1 ruby 0 0 1 False
935 1 ruby 0 0 1 False
973 1 ruby 1 0 1 False
976 1 ruby 0 0 1 False
977 1 ruby 0 0 1 False
978 0 ruby 0 0 1 False
980 1 ruby 0 0 1 False
985 1 ruby 1 0 1 False
994 0 ruby 1 0 1 False
995 0 ruby 0 0 1 False
999 0 ruby 1 0 1 False
902 1 algoritmos 1 1 1 True
904 1 algoritmos 1 1 1 True
905 1 algoritmos 1 1 1 True
908 0 algoritmos 0 1 1 True
910 1 algoritmos 1 1 1 True
911 1 algoritmos 0 1 1 True
912 0 algoritmos 1 1 1 True
913 1 algoritmos 0 1 1 True
914 0 algoritmos 1 1 1 True
916 1 algoritmos 1 1 1 True
922 1 algoritmos 1 1 1 True
924 1 algoritmos 1 1 1 True
...
[100 rows x 6 columns]
82.0
[1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]