Boa tarde, estou rodando o seguinte programa passado pelo professor, na aula 02 do curso Machine Learning: Introdução a Classificação
from ML_acessos 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)
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)
Contudo, estou tendo o seguinte retorno no prompt:
C:\Users\oggui\OneDrive\Área de Trabalho\Alura\Machine Learning>python classifica_acessos.py
C:\Users\oggui\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\utils\validation.py:761: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().
y = column_or_1d(y, warn=True)
Traceback (most recent call last):
File "classifica_acessos.py", line 18, in <module>
acertos = [d for d in diferencas if d == 0]
File "classifica_acessos.py", line 18, in <listcomp>
acertos = [d for d in diferencas if d == 0]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Estou rodando exatamente o mesmo programa que o professor fez na aula, não entendo o por que do erro. Previamente quebrei o "for" e o "if", e o erro está aparentemente no "if d ///==0" mas não consigo entender o motivo.
Obs.: Professor está rodando no MAC e no python 2.7, eu estou rodando no W10 e no python 3.6, mas o "if" não era para apresentar diferença, ou é esse o problema?