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)