1
resposta

unsupported operand type(s) for -: 'str' and 'str'

Mesmo alterando o "tamanho_de_treino" e "tamanho_de_teste" para int, aparece a mensagem de erro do título. Segue o código:

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

X_df=df[['home', 'busca', 'logado']]
Y_df=df['comprou']

Xdummies_df= pd.get_dummies(X_df)
Ydummies_df= Y_df

X= Xdummies_df.values
Y= Ydummies_df.values

porcentagem_de_treino= 0.9
tamanho_de_treino= int(porcentagem_de_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= total_de_acertos/total_de_elementos*100

print(taxa_de_acerto)
print(total_de_elementos)

Mensagem de erro:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-38-2f200400e352> in <module>
     25 
     26 resultado=modelo.predict(teste_dados)
---> 27 diferencas= resultado-teste_marcacoes
     28 
     29 acertos= [d for d in diferencas if d==0]

TypeError: unsupported operand type(s) for -: 'str' and 'str'

onde estaria o erro neste caso ?

1 resposta

Executei aqui na minha máquina, sem nenhuma modificação, e imprimiu 82.0 e 100.

Ubuntu 20.04 Python 3.8.5 pandas 1.2.4 sklearn 0.24.2