Boa tarde a todos!
Estive fazendo os exercícios quando me deparei com o seguinte problema,
/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py:515: 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_acesso.py", line 18, in <module>
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()
Eu não sou programador Python e, coincidentemente estou tento problemas com a instrução for
filtrada dentro de um array
para conter somente os valores 2
, e acabei pensando claro que eu tô errado! Eu nem programo Python! Daí resolvi copiar a risca o código exemplo e ver se ele executava, mas aí me deparei com o mesmo problema no trecho:
acertos = [d for d in diferencas if d == 0]
Segue o fonte completo, sim eu copiei tudo pra testar:
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)
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)
Grato desde já!