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

Erro raise ValueError("bad input shape {0}".format(shape)) ValueError: bad input shape (900, 2)

Surgiu este erro ao rodar:

D:\Treinamentos Alura\Python Machine Learning>python buscas.py Traceback (most recent call last): File "buscas.py", line 25, in modelo.fit(treino_dados, treino_marcacoes) File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\naive_bayes.py", line 579, in fit X, y = check_X_y(X, y, 'csr') File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 547, in check_X_y y = column_or_1d(y, warn=True) File "C:\ProgramData\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 583, in column_or_1d raise ValueError("bad input shape {0}".format(shape)) ValueError: bad input shape (900, 2)

Código:

import pandas as pd

df = pd.read_csv('buscas.csv')

x_df = df[['home', 'busca', 'logado']] y_df = df['comprou']

xdumies_df = pd.get_dummies(x_df) ydumies_df = pd.get_dummies(y_df)

X = xdumies_df.values Y = ydumies_df.values

tamanho_treino = int(0.9 len(Y)) tamanho_teste = int(0.1 len(Y))

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

teste_dados = X[-tamanho_teste:] teste_marcacoes = Y[-tamanho_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)

percentual_acertos = 100.0 * (total_de_acertos/total_de_elementos)

print(resultado) print(percentual_acertos)

2 respostas

Resolvido:

Quem tiver o problema parecido, no erro informa que minha variável Y (treino_marcacoes) possui 2 colunas e não apenas 1 como deveria ser. Por isto o algoritmo não compreende a solução.

solução!

Boa Felipe, o que precisar pode abrir uma nova dúvida :D