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

Python lista

no exemplo do video o meu eixo y ou marcacoes aparace como lista e não com inteiro como mostra no video, para a atividade eu tive que converter usando o numpy para inteiro para depois calcular a taxa de acerto e erro, estou fazendo alguma coisa de errada?

[[0], [0], [0], [0], [0], [1], [0], [1], [0], [1], [1], [1], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [1], [1], [1], [1], [0], [0], [0], [1], [0], [1], [1], [1], [1], [0], [0], [1], [0], [0], [0], [1], [0], [0], [1], [1], [0], [0], [0], [0], [1], [0], [1], [0], [1], [0], [1], [0], [1], [0], [0], [0], [1], [1], [0], [1], [1], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [1], [0], [0], [0], [1], [1], [0], [0], [0], [0], [1], [1], [0], [0], [0], [0], [1], [0], [0], [0]]

3 respostas
solução!

Opa Jardel, tudo bem?

Você pode mandar seu código para eu dar uma olhada?

Bom dia Yuri, segue

import csv

def carregar_acessos():

    x = []
    y = []

    arquivo = open('acesso.csv', 'rb')
    leitor = csv.reader(arquivo, delimiter=';')

    leitor.next()

    for acessou_home,acessou_como_funciona,acessou_contato,comprou in leitor:
        x.append([int(acessou_home),int(acessou_como_funciona),int(acessou_contato)])
        y.append([int(comprou)])
    return x,y

def carregar_buscas():

    x = [];
    y = [];

    arquivo = open('busca.csv', 'rb')
    leitor = csv.reader(arquivo)
    leitor.next()

    for home,busca,logado,comprou in leitor:
        dado = [int(home), busca, int(logado)]
        x.append(dado)
        y.append(int(comprou))

    return x,y

---------------//----------------------

import numpy as np

acertos = 0

from dados import carregar_acessos
x,y = carregar_acessos()

treino_dados = x[:90]
treino_marcacoes = y[:90]

teste_dados = x[-9:]
teste_marcacoes = y[-9:]

from sklearn.naive_bayes import MultinomialNB

modelo = MultinomialNB()
modelo.fit(treino_dados, treino_marcacoes)

#print(modelo.predict([[1,0,1],[0,1,0],[1,1,1]]))

resultado_marcacoes = np.asarray(teste_marcacoes)             #transformando a lista em inteiros para depois subtrair

resultado = modelo.predict(teste_dados)                     #predizer com os ultimos 9 numeros

#diferencas = resultado - treino_marcacoes

for inteiros in range(9):
    diferenca = resultado[inteiros] - resultado_marcacoes[inteiros]
    if diferenca == 0 :                             #se for igual a 0 é pq esta certo com o que foi previsto
        acertos += 1

total_de_acertos = acertos
total_de_elementos = len(teste_dados)

taxa_de_acertos = 100.0 * total_de_acertos/total_de_elementos

print(resultado)
print(total_de_acertos)
print(taxa_de_acertos)
print(total_de_elementos)

Oi Jardel, tudo bem?

Vi seu código aqui. Você está colocando a variável comprou na lista Y como se ela fosse membro de uma lista (y.append([int(comprou)])). Por conta dos colchetes, os dados são retornados como listas.

Para resolver isso basta remover os [], ficando assim sua função:

import csv

def carregar_acessos():

    x = []
    y = []

    arquivo = open('acesso.csv', 'rb')
    leitor = csv.reader(arquivo, delimiter=';')

    leitor.next()

    for acessou_home,acessou_como_funciona,acessou_contato,comprou in leitor:
        x.append([int(acessou_home),int(acessou_como_funciona),int(acessou_contato)])
        y.append(int(comprou))
    return x,y