Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro no código: TypeError: slice indices must be intergers or None

Utilizando o código abaixo, ao rodar aparece o seguinte erro Type Error: slide indices must be integers or None or have an index_ method

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).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)

diferencas = resultado - teste_marcacoes

acertos = [d for d in diferencas if d == 0] total_de_acertos = len(acertos) total_de_elementos = len(teste_dados)

taxa_de_acerto = 100.0 * total_de_acertos / total_de_elementos

print(taxa_de_acerto) print(total_de_elementos)

1 resposta
solução!

Olá,

Peguei o seu código e testei na minha máquina, verifiquei que ocorreu erro no trecho abaixo:

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

Quando você faz isso, a variável tamanho_de_treino é do tipo float, porém para o código funcionar corretamente, é necessário que o valor seja do tipo int, então você pode fazer o seguinte:

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]

Observação: você não precisa de fazer a conversão na variável tamanho_de_teste, pois ela está recebendo uma operações com número inteiros.

At., Mateus